Mercurial > hg > MakeItSo
annotate TODO.txt @ 172:740c1f2315f2
setup.py
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Wed, 11 Dec 2013 04:56:53 -0800 |
parents | ff1f41a18da9 |
children | 1a7ed3c940b9 |
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?)`` |
8 | 26 |
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
27 - 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
|
28 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
|
29 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
|
30 maximum of the product of flexibility and legibility |
8 | 31 |
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
32 - 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
|
33 portability |
8 | 34 |
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
35 - 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
|
36 absolutely critical. In PasteScript, this isn't there (unless you |
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
37 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
|
38 templates programmatically. If you do allow things, like |
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
39 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
|
40 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
|
41 will list the template variables. |
8 | 42 |
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
43 - ability to import templates: |
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
44 ability to make existing directory structures or files into |
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
45 templates |
8 | 46 |
158 | 47 - ability to make a python package from a python file |
48 | |
49 - ability to have a pre-hook and pluggable setup; e.g. setup a repo | |
50 | |
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
51 - ability to use defaults (--use-defaults) when they are specified |
8 | 52 |
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
53 - ability to save variables used in a run into a file: |
8 | 54 |
55 makeitso --save-variables=myvars.txt mytemplate | |
56 | |
57 - ability to have executing script files (for packaged tests or via a shebang) | |
58 | |
59 - a dotfile for metadata (e.g. ~/.makeitso) | |
60 | |
61 - hooks for things to do after creation (licensing, uploading | |
62 somewhere, creating a repository, etc) | |
63 | |
64 - not having to name template files 'foo_tmpl'; it is better not to | |
65 munge the file extension at all and have other mechanisms for | |
66 denoting files to be interpolated | |
67 | |
156
a7a7c364568a
note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents:
44
diff
changeset
|
68 - ability to use python in interpolation |
8 | 69 |
70 - backwards compatability with pastescript templates | |
71 | |
72 - a web interface (or a few) | |
73 | |
74 - Like pastescript currently does, the ability to apply templates | |
75 sequentially. | |
76 | |
77 Directories: | |
78 | |
79 - a file like makeitso.ini (in that directory) can control stuff | |
80 | |
81 Nice-to-haves: | |
82 | |
83 - ability to munge files (e.g. combining setup.py from several | |
84 packages) [HARD] | |
85 | |
86 - ability to push changes from a downstream instance to a template [HARD] | |
87 | |
88 - It would also be nice (but not required) to be able to control how | |
89 things get put together. That is, for a setup.py or a README, what | |
90 do you do? For the latter, you probably mostly want append. For | |
91 the former you want to do various things : e.g. add dependencies, | |
92 add entry points, etc. So we should figure out a way to write a | |
93 template like that and have each template applied e.g. increment | |
94 dependencies. So the latter are like variables. | |
95 | |
44
6e08cca7d656
do API variable reading and stubbing a bit for control flow
Jeff Hammel <jhammel@mozilla.com>
parents:
8
diff
changeset
|
96 - 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
|
97 |
8 | 98 Tempita: |
99 | |
100 - Parsing variables out of tempita should be workable. Even if a | |
101 couple are missed, you could possibly put some in config.ini and | |
102 have the rest detected (so you don't worry about forgetting new variables) |