annotate TODO.txt @ 214:1a7ed3c940b9

note to self
author Jeff Hammel <k0scist@gmail.com>
date Fri, 04 Dec 2015 11:05:16 -0800
parents ff1f41a18da9
children
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
214
1a7ed3c940b9 note to self
Jeff Hammel <k0scist@gmail.com>
parents: 158
diff changeset
3 Bugs:
1a7ed3c940b9 note to self
Jeff Hammel <k0scist@gmail.com>
parents: 158
diff changeset
4
1a7ed3c940b9 note to self
Jeff Hammel <k0scist@gmail.com>
parents: 158
diff changeset
5 - Perhaps a `MANIFEST.in` should be used in order to package?
1a7ed3c940b9 note to self
Jeff Hammel <k0scist@gmail.com>
parents: 158
diff changeset
6 https://docs.python.org/2/distutils/sourcedist.html
1a7ed3c940b9 note to self
Jeff Hammel <k0scist@gmail.com>
parents: 158
diff changeset
7
8
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
8 Planned features:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
9
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
10 - 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
11 should be files, directories, entry_points, or URLs)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
12
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
13 - 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
14 config, and have stuff like:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
15
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
16 def wrap(filename, rendered_content, vars)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
17 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
18 def some_helper_func()
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
19
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
22 makeitso -t my/template/ var1=value var2=value
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
23
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
24 Then you can easily rerun the command
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
25
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
26 - ability to specify delimeters (both for file interpolation and
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
27 filename interpolation); normally, i'd want '${' + '}', but this
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
28 works poor with, say, bash scripts, and not having this makes it
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
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 - 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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
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 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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
51
158
ff1f41a18da9 more TODO
Jeff Hammel <jhammel@mozilla.com>
parents: 156
diff changeset
52 - ability to make a python package from a python file
ff1f41a18da9 more TODO
Jeff Hammel <jhammel@mozilla.com>
parents: 156
diff changeset
53
ff1f41a18da9 more TODO
Jeff Hammel <jhammel@mozilla.com>
parents: 156
diff changeset
54 - 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
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
59
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
60 makeitso --save-variables=myvars.txt mytemplate
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
61
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
62 - 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
63
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
64 - a dotfile for metadata (e.g. ~/.makeitso)
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
65
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
66 - hooks for things to do after creation (licensing, uploading
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
67 somewhere, creating a repository, etc)
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 - 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
70 munge the file extension at all and have other mechanisms for
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
71 denoting files to be interpolated
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
72
156
a7a7c364568a note on importing; cleanup
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
73 - ability to use python in interpolation
8
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
74
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
75 - backwards compatability with pastescript templates
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 - a web interface (or a few)
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 - Like pastescript currently does, the ability to apply templates
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
80 sequentially.
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 Directories:
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 - a file like makeitso.ini (in that directory) can control stuff
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 Nice-to-haves:
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 - ability to munge files (e.g. combining setup.py from several
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
89 packages) [HARD]
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
90
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
91 - ability to push changes from a downstream instance to a template [HARD]
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
92
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
93 - 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
94 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
95 do you do? For the latter, you probably mostly want append. For
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
96 the former you want to do various things : e.g. add dependencies,
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
97 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
98 template like that and have each template applied e.g. increment
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
99 dependencies. So the latter are like variables.
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
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
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
103 Tempita:
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
104
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
105 - Parsing variables out of tempita should be workable. Even if a
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
106 couple are missed, you could possibly put some in config.ini and
157df8d1c3ed add a TODO
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
107 have the rest detected (so you don't worry about forgetting new variables)