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) |