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