Mercurial > hg > MakeItSo
annotate TODO.txt @ 240:08a0a178286f
version bump = release
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Thu, 28 Jan 2016 12:25:38 -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) |
