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
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?)``
a7a7c364568a note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
26 -
8
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
51
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
52 makeitso --save-variables=myvars.txt mytemplate
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
53
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
54 - 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
55
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
56 - a dotfile for metadata (e.g. ~/.makeitso)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
57
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
58 - hooks for things to do after creation (licensing, uploading
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
59 somewhere, creating a repository, etc)
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 - 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
62 munge the file extension at all and have other mechanisms for
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
63 denoting files to be interpolated
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
64
156
a7a7c364568a note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
65 - ability to use python in interpolation
8
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
66
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
67 - backwards compatability with pastescript templates
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
68
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
69 - a web interface (or a few)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
70
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
71 - Like pastescript currently does, the ability to apply templates
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
72 sequentially.
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 Files:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
75
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
76 - ability to interpolate single files (or strings)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
77
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
78 Directories:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
79
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
80 - a file like makeitso.ini (in that directory) can control stuff
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
81
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
82 Nice-to-haves:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
83
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
84 - ability to munge files (e.g. combining setup.py from several
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
85 packages) [HARD]
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
86
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
87 - ability to push changes from a downstream instance to a template [HARD]
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
88
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
89 - 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
90 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
91 do you do? For the latter, you probably mostly want append. For
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
92 the former you want to do various things : e.g. add dependencies,
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
93 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
94 template like that and have each template applied e.g. increment
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
95 dependencies. So the latter are like variables.
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
99 Tempita:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
100
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
101 - Parsing variables out of tempita should be workable. Even if a
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
102 couple are missed, you could possibly put some in config.ini and
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
103 have the rest detected (so you don't worry about forgetting new variables)