just/notes

105 lines
3.8 KiB
Plaintext
Raw Normal View History

2016-09-29 21:45:53 -07:00
notes
-----
2016-10-29 21:51:39 -07:00
- all assignments are evaluated before running anything
- for shebang recipes, all expressions are evaluated first
- for non-shebang recipes, lines are evaluated one by one and executed
- later we can decide to not evaluate assignments that aren't referenced
by any recipe
2016-10-29 13:44:23 -07:00
- deferred evaluation, even though it's good for testing, is a bad idea
i should have a resolve assignments phase which just checks,
an evaluate assignments phase which runs before any recipe
and a evaluate recipe phase that runs when a recipe is run
and produces the evaluated lines
2016-10-29 20:39:21 -07:00
- --debug tests that:
- should consider renaming it to --evaluate if it actually evaluates stuff
- test values of assignments
- test values of interpolations
2016-10-29 21:51:39 -07:00
- test results of concatination
- test string escape parsing
2016-10-29 20:39:21 -07:00
- remove evaluated_lines field from recipe
- change unknown variable to undefined variable
- save result of commands in variables
. backticks: `echo hello`
2016-10-29 11:50:54 -07:00
. backticks in assignments are evaluated before the first recipe is run
. backticks in recipes are evaluated before that recipe is run
. should i do deferred evaluation for everything and just resolve initially?
. should i merge evaluator into Justfile?
. backtick evaluation returns None initially
. justfile.run() evaluates all backticks in assignments
. should i have a resolve step and an deval step? should they be different code?
. when you run the recipe, then you execute it
. eval shebang recipes all at once, but plain recipes line by line
. we want to avoid executing backticks before we need them
2016-10-29 00:14:41 -07:00
2016-10-29 20:39:21 -07:00
- --debug mode will evaluate everything and print values after assignments and interpolation expressions
2016-10-29 13:44:23 -07:00
- nicely convert a map to option string to a map to string
2016-10-29 00:55:47 -07:00
- set variables from the command line:
. j --set build linux
. j build=linux
2016-10-29 00:14:41 -07:00
2016-10-27 10:11:42 -07:00
- before release:
2016-10-16 18:59:49 -07:00
2016-10-29 00:55:47 -07:00
- where can users get help?
- irc, email, github, mailing list
- rewrite grammar.txt
2016-10-28 19:56:33 -07:00
- start with an example justfile
- then installation instructions
- then a long guide
2016-10-28 15:25:59 -07:00
- make it clear it's beta, mention that, as a command runner
there is probably a higher than normal chance of disaster
2016-10-27 10:11:42 -07:00
- change name back to 'just', suggest j as alias
2016-10-23 17:13:06 -07:00
- change description to "a polyglot command runner"?
2016-10-23 17:32:18 -07:00
- update readme
2016-10-23 17:13:06 -07:00
- document all code, including private stuff
(can this be enforced with a lint?)
#![deny(missing_docs)]
- note that shell is invoked with -cu, explain -c and -u
- document all features with example justfiles
(also make them runnable as tests)
. update tarball dep
. check version string
2016-10-16 18:59:49 -07:00
. clean
. update logs (repetitive git flow)
- full documentation
2016-10-23 23:52:06 -07:00
. talk about why the syntax is so unforgiving
easier to accept a program that you once rejected than to
no longer accept a program or change its meaning
2016-10-16 18:59:49 -07:00
. habit of using clever commands and writing little scripts
2016-10-29 20:39:21 -07:00
. debugging with --debug or --evaluate
2016-10-16 18:59:49 -07:00
. very low friction to write a script (no new file, chmod, add to rcs)
. make list of contributors, include travis
2016-10-23 21:25:37 -07:00
. alias .j='just --justfile ~/.justfile --working-directory ~'
2016-10-23 23:52:06 -07:00
. lay out the structure of the code, mention tests, give tips
for contributing
2016-10-23 17:13:06 -07:00
- vim and emacs syntax hilighting (use makefile syntax hilighting for now)
- make sure there isn't any unused code
2016-10-28 15:25:59 -07:00
- ask users to contribute their justfiles as tests
2016-10-23 17:13:06 -07:00
- try to get some users
. facebook friends
. irc
. r/rust
2016-10-27 10:11:42 -07:00
enhancements:
2016-10-29 13:44:23 -07:00
- use cow strings where we currently use String
2016-10-28 19:56:33 -07:00
- colored error messages
- multi line strings (maybe not in recipe interpolations)
2016-10-29 00:14:41 -07:00
- raw strings with ''
2016-10-28 15:25:59 -07:00
- iteration: {{x for x in y}}
2016-10-27 10:11:42 -07:00
- allow calling recipes in a justfile in a different directory:
. just ../foo # ../justfile:foo
. just xyz/foo # xyz/justfile:foo
. just xyz/ # xyz/justfile:DEFAULT
- allow setting and exporting environment variables
2016-10-29 00:14:41 -07:00
- indentation or slash for line continuation in plain recipes