annotate TODO.txt @ 158:ff1f41a18da9

more TODO
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 30 Jul 2013 11:08:01 -0700
parents a7a7c364568a
children 1a7ed3c940b9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
3 Planned features:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
4
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
5 - Have a filepath or URL as the basic thing that gets "filled". (These
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
6 should be files, directories, entry_points, or URLs)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
7
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
8 - There'd be hooks, so you could define a Python file in the control
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
9 config, and have stuff like:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
10
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
11 def wrap(filename, rendered_content, vars)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
12 def conflict(filename, prev_content, new_content, vars) # Could do prepend here, for instance
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
13 def some_helper_func()
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
14
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
17 makeitso -t my/template/ var1=value var2=value
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
18
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
19 Then you can easily rerun the command
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
20
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
21 - ability to specify delimeters (both for file interpolation and
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
22 filename interpolation); normally, i'd want '${' + '}', but this
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
23 works poor with, say, bash scripts, and not having this makes it
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
46
158
ff1f41a18da9 more TODO
Jeff Hammel <jhammel@mozilla.com>
parents: 156
diff changeset
47 - ability to make a python package from a python file
ff1f41a18da9 more TODO
Jeff Hammel <jhammel@mozilla.com>
parents: 156
diff changeset
48
ff1f41a18da9 more TODO
Jeff Hammel <jhammel@mozilla.com>
parents: 156
diff changeset
49 - ability to have a pre-hook and pluggable setup; e.g. setup a repo
ff1f41a18da9 more TODO
Jeff Hammel <jhammel@mozilla.com>
parents: 156
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
54
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
55 makeitso --save-variables=myvars.txt mytemplate
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
56
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
57 - ability to have executing script files (for packaged tests or via a shebang)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
58
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
59 - a dotfile for metadata (e.g. ~/.makeitso)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
60
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
61 - hooks for things to do after creation (licensing, uploading
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
62 somewhere, creating a repository, etc)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
63
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
64 - not having to name template files 'foo_tmpl'; it is better not to
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
65 munge the file extension at all and have other mechanisms for
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
66 denoting files to be interpolated
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
67
156
a7a7c364568a note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
68 - ability to use python in interpolation
8
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
69
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
70 - backwards compatability with pastescript templates
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
71
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
72 - a web interface (or a few)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
73
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
74 - Like pastescript currently does, the ability to apply templates
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
75 sequentially.
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
76
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
77 Directories:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
78
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
79 - a file like makeitso.ini (in that directory) can control stuff
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
80
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
81 Nice-to-haves:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
82
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
83 - ability to munge files (e.g. combining setup.py from several
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
84 packages) [HARD]
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
85
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
86 - ability to push changes from a downstream instance to a template [HARD]
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
87
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
88 - It would also be nice (but not required) to be able to control how
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
89 things get put together. That is, for a setup.py or a README, what
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
90 do you do? For the latter, you probably mostly want append. For
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
91 the former you want to do various things : e.g. add dependencies,
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
92 add entry points, etc. So we should figure out a way to write a
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
93 template like that and have each template applied e.g. increment
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
94 dependencies. So the latter are like variables.
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
98 Tempita:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
99
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
100 - Parsing variables out of tempita should be workable. Even if a
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
101 couple are missed, you could possibly put some in config.ini and
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
102 have the rest detected (so you don't worry about forgetting new variables)