Mercurial > hg > MakeItSo
annotate TODO.txt @ 156:a7a7c364568a
note on importing; cleanup
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Thu, 04 Jul 2013 18:24:13 -0700 |
| parents | 6e08cca7d656 |
| children | ff1f41a18da9 |
| rev | line source |
|---|---|
|
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
1 = MakeItSo! TODO = |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
2 |
| 8 | 3 Planned features: |
| 4 | |
| 5 - Have a filepath or URL as the basic thing that gets "filled". (These | |
| 6 should be files, directories, entry_points, or URLs) | |
| 7 | |
| 8 - There'd be hooks, so you could define a Python file in the control | |
| 9 config, and have stuff like: | |
| 10 | |
| 11 def wrap(filename, rendered_content, vars) | |
| 12 def conflict(filename, prev_content, new_content, vars) # Could do prepend here, for instance | |
| 13 def some_helper_func() | |
| 14 | |
| 15 - An option to display this at the end of the run: | |
|
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
16 |
| 8 | 17 makeitso -t my/template/ var1=value var2=value |
| 18 | |
| 19 Then you can easily rerun the command | |
| 20 | |
| 21 - ability to specify delimeters (both for file interpolation and | |
| 22 filename interpolation); normally, i'd want '${' + '}', but this | |
| 23 works poor with, say, bash scripts, and not having this makes it | |
| 24 difficult to write templates that make other templates | |
|
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
25 ``(This is done in tempita; can we use it?)`` |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
26 - |
| 8 | 27 |
|
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
28 - should be able to contain as much information as possible in a |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
29 single file. Since most often I want to give someone (possibly |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
30 myself) a single file to run, it would be nice to have some local |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
31 maximum of the product of flexibility and legibility |
| 8 | 32 |
|
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
33 - the ability to create a self-executing script from a file for easy |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
34 portability |
| 8 | 35 |
|
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
36 - ability to find the variables used in templates; I find this |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
37 absolutely critical. In PasteScript, this isn't there (unless you |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
38 use cheetah) and it is problematic if you want to deal with |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
39 templates programmatically. If you do allow things, like |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
40 single-file templates, then this becomes mandatory. This is to say, |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
41 amongst other things, there should be a command-line option that |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
42 will list the template variables. |
| 8 | 43 |
|
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
44 - ability to import templates: |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
45 ability to make existing directory structures or files into |
|
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
46 templates |
| 8 | 47 |
|
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
48 - ability to use defaults (--use-defaults) when they are specified |
| 8 | 49 |
|
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
50 - ability to save variables used in a run into a file: |
| 8 | 51 |
| 52 makeitso --save-variables=myvars.txt mytemplate | |
| 53 | |
| 54 - ability to have executing script files (for packaged tests or via a shebang) | |
| 55 | |
| 56 - a dotfile for metadata (e.g. ~/.makeitso) | |
| 57 | |
| 58 - hooks for things to do after creation (licensing, uploading | |
| 59 somewhere, creating a repository, etc) | |
| 60 | |
| 61 - not having to name template files 'foo_tmpl'; it is better not to | |
| 62 munge the file extension at all and have other mechanisms for | |
| 63 denoting files to be interpolated | |
| 64 | |
|
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
65 - ability to use python in interpolation |
| 8 | 66 |
| 67 - backwards compatability with pastescript templates | |
| 68 | |
| 69 - a web interface (or a few) | |
| 70 | |
| 71 - Like pastescript currently does, the ability to apply templates | |
| 72 sequentially. | |
| 73 | |
| 74 Files: | |
| 75 | |
| 76 - ability to interpolate single files (or strings) | |
| 77 | |
| 78 Directories: | |
| 79 | |
| 80 - a file like makeitso.ini (in that directory) can control stuff | |
| 81 | |
| 82 Nice-to-haves: | |
| 83 | |
| 84 - ability to munge files (e.g. combining setup.py from several | |
| 85 packages) [HARD] | |
| 86 | |
| 87 - ability to push changes from a downstream instance to a template [HARD] | |
| 88 | |
| 89 - It would also be nice (but not required) to be able to control how | |
| 90 things get put together. That is, for a setup.py or a README, what | |
| 91 do you do? For the latter, you probably mostly want append. For | |
| 92 the former you want to do various things : e.g. add dependencies, | |
| 93 add entry points, etc. So we should figure out a way to write a | |
| 94 template like that and have each template applied e.g. increment | |
| 95 dependencies. So the latter are like variables. | |
| 96 | |
|
44
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
8
diff
changeset
|
97 - ability to output to a POST request to a URL |
|
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
8
diff
changeset
|
98 |
| 8 | 99 Tempita: |
| 100 | |
| 101 - Parsing variables out of tempita should be workable. Even if a | |
| 102 couple are missed, you could possibly put some in config.ini and | |
| 103 have the rest detected (so you don't worry about forgetting new variables) |
