just/notes

91 lines
3.3 KiB
Plaintext
Raw Normal View History

2016-09-29 21:45:53 -07:00
notes
-----
2016-10-27 09:44:07 -07:00
- need to actually produce recipe lines
- test rendered recipe lines
2016-10-23 21:25:37 -07:00
- assignment
. add tokenizing test that covers interpolation
2016-10-23 21:25:37 -07:00
. use the same rules as rust: https://doc.rust-lang.org/reference.html#string-literals
2016-10-23 23:49:57 -07:00
. \xHH, \u{HHHHHH}, \n, \r, \t, \0, \\, \{ no other escapes
2016-10-23 21:25:37 -07:00
. '' strings with no escapes
2016-10-23 23:49:57 -07:00
. run interpolated instead of lines
. make quine use assignment and interpolation
. make strings more than one character
.re-order evaluate assignment
- do proper handling of the state stack at EOF
- disallow unused arguments and variables
- allow exporting environment variables
2016-10-23 21:25:37 -07:00
- write some tests to test the binary itself and all command line flags
- test that run runs first recipe by default
2016-10-23 21:25:37 -07:00
- parse arguments on command line:
. ugly but conservative: j build --set a=hello
. by export: A=HELLO j build
. by export 2: BUILD.A=HELLO j build
. by name: j build a=hello
. by position: j build hello
. with marker: j build hello : clean hello :
. after -- : j build -- foo baz
2016-10-23 23:40:16 -07:00
. fast errors when arguments are missing
2016-10-23 17:13:06 -07:00
. could also allow this to override variables
although maybe only after a '--': j build -- a=hello
2016-10-23 21:25:37 -07:00
. sub arguments into recipes
2016-10-23 17:13:06 -07:00
- change error messages to underline problem token
- 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
- this is going to be hard. should a single recipe with a slash
require that all recipes have slashes?
or should non-slash recipes still run in this directory?
will need to change things a great deal
- indentation is line continuation
- should i disallow a shebang recipe where the shebang isn't on the first line?
- add insane borrow checker issue to issue tracker
- add context to unexpected_token error
"while parsing a recipe"
"while parsing an expression"
2016-10-23 21:25:37 -07:00
- add post requirements:
# do c then a then b
a: c b~
2016-10-16 18:59:49 -07:00
- rewrite grammar.txt
2016-10-23 17:13:06 -07:00
- change name back to 'just'
. suggest j as alias
2016-10-23 17:32:18 -07:00
- create some kind of group feedback forum:
. email list, reddit
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
. 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)
- split up code into modules for easier reading
. parsing
. tokenizing
. executing
- make sure there isn't any unused code
2016-10-26 22:04:12 -07:00
- ask users to contribute their justfiles
2016-10-16 18:59:49 -07:00
2016-10-23 17:13:06 -07:00
- try to get some users
. facebook friends
. irc
. r/rust