-
-
Notifications
You must be signed in to change notification settings - Fork 639
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Roadmap to version 3 #195
Comments
/cc @smyrman @sheerun @jamestenglish @jaxxstorm @Evertras As you may have noticed, I've being very slow on implementing new stuff for this project. So don't expect this release to happen soon. This is mostly to grab feedback. |
Just a big +1 to the 'run a dependency with the same input only once' by default. That's my only pain point right now, so I'm a little biased. :) |
It's a great list, agree to all points; take your time:-) |
It would be great if there was a way of making variables part of the environment, as suggested on #181. |
Some things that are on our wish list.
cmds:
- sh: uname
export: UNAME
- sh: echo $UNAME
cmds:
- python: |
import os
print(os.getcwd()) We'll probably add some or all of these things as it becomes necessary to support our automation tasks. |
Hi @stephenprater,
🙂
We recently had some issues on running interactive commends that should have been fixed after #200. Are you still experiencing issues? If so, let me know.
This is an interesting idea. On the other hand, there are reasons why it isn't available today:
|
This isn't quite the same thing because you need to interpolate your task variables into the command line, plus you have a script that also does project automation so not all of your automation lives in one spot anymore. This is definitely our lowest priority item - and it's mostly because things like: service_status=$(nomad deployment status $deployment | grep "^services")
service_complete=$(echo -e "$service_status" | awk '{if($4==$7){print "1"}else{print "0"}}')
if [ $service_complete == "1" ]; then
echo $green
fi
echo -e "$service_status $(tput sgr0)" are harder to read (and write!) than the python equivalent. while True:
deployment = nomad.client.deployment("adf3ec3")
if (
deployment["TaskGroup"]["services"]["DesiredCanaries"]
== deployment["TaskGroup"]["services"]["HealthyCanaries"]
):
break
print("Services Deployed!") We tend to use Task as an automation tool and for scripting complex CI/CD workflows more than as a pure build dependency tool, so the scenario where people have different versions of an interpreter installed isn't really a concern for us, as it's handled by the language tooling for Python / Ruby. One of the things that's left out of my one-sentence description there is that the Taskfile itself would need to specify the interpreter. So at the top you'd do something like: interpreters:
python: /usr/bin/env python
ruby: bundle exec ruby Anyway - that's definitely pie-in-the-sky kind of stuff - we haven't even looked seriously at this as a feature yet - it's just that every time our devs have to write |
This makes me like it better, since it's generic and customizable. 🙂 Implementation-wise, it can be challenging to make YAML accept |
This is definitely not fixed for me on today's master. Filed an issue - #217. |
Things have been progressing slowly. From now on, I'll ask PR authors to target non-small new features to the v3 branch (bug fixes should target I'll make preview releases once in a while for people to use the new features and report bugs. This is the first one: v3.0.0-preview1. |
Any chance remote includes (#98) can be considered for this? |
Rather than a syntax like this:
Why not just use shebangs at the top of the tasks like the just tool does? |
@brandonkal That sounds like something worth considering. Thanks for the idea! |
Hey everybody, We just reached a great milestone for v3 which is refactoring variables, which will now be evaluated in the sequence of declaration. This means that Taskfiles like this will just work ™️ without having to set task/testdata/vars/v3/Taskfile.yml Lines 1 to 46 in 4b02772
This is not yet released, not even to the preview channel, so you need to manually build the v3 for now, but I'd really like feedback on whether it's working as expected and it's bug free. (Remember that to test this you need to change your Taskfile version to Completing this means we're now close to finally shipping v3. Since this issue is opened for more than a year already, I'll probably postpone some of the bulled points above to v3.1+, specially those who aren't breaking changes, so we can ship this sooner. Opinions are welcome! |
Would definitely prefer a V3 with the current set of (great) features, then subsequent fixes of whatever bugs has snug in. And maybe then go so far as to ping all the issues that are then scheduled for a V3.1 and evaluate whether they are still relevant? :) |
v3.0.0 is finally released! 🎉 As I said, it was not possible to address everything at once, but this release is already big enough, and I plan to add features in smaller releases from now on... If the feature you asked for doesn't have a an open issue, please open so it isn't forgotten. Thanks for everyone that helped in one way or another! |
Just wanted to 🎉 ! Thanks! :-) |
Yes, a thousand times 🎉 Thank for all the hard work! |
Did this Thanks for all your hard work either way 🎉 |
Hi @Nadock, Sorry, that just wasn't implemented. Maybe it's worth creating an separated issue about it. |
This is a general issue to track proposals with small or big breaking changes, that could be released in the next major version.
This list is a work in progress and can change at any time.
Development is happening on the v3 branch.
Cleanup
github.com/go-task/task/v2
tov3
Taskvars.yml
andTaskfile_{{OS}}.yml
. This was done before we had a generic inclusion of Taskfiles implemented. We should add options tovendor
directory? (Remove the vendor/ directory on v3 once the lasts 2 Go versions have modules enabled by default #214)Breaking changes
method:
option. Default changed fromtimestamp
tochecksum
(Add global "method:" option to allow setting a default for all tasks. Change default from "timestamp" to "checksum" #246)New stuff
.TIMESTAMP
and.CHECKSUM
tostatus:
(Expose timestamp and checksum to status #216)Documentation
method:
(shouldn't also check the main guide)There are more issues and feature request that could be added to this release.
The text was updated successfully, but these errors were encountered: