Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 120 lines (95 sloc) 5.309 kb
c2e77d1 Mirroring
Michael Edgar authored
1 Here are the things we'd like to do. If you're looking to help out, read on.
d14df52 Mirroring the HG repo - we forgot to for a while. A lot of changes in th...
Michael Edgar authored
2 We have put them into several categories to trick^H^H^H^H^Hencourage you into
3 helping.
c2e77d1 Mirroring
Michael Edgar authored
4
7f4cfc3 mirroring hg. big update\!
Michael Edgar authored
5 **RULE NUMBER 1**: It's ok if you break amp. Go ahead and accidentally remove
6 every file, commit, and then push it. We're not worried; we have immutable history
7 and multiple copies of the repo and advanced knowledge of `amp/hg revert`. You
8 can't hurt us.
9
10 == Specifics
11
12 = Amp config
13 Write now we save config information is ~/.hgrc. Somebody, please, either
14 drown me or make this go the fuck away. Config information could (should?)
15 be saved in the top section of the ampfile. It can be a YAML object serialized
16 with comments prefixing each line, with the entire section ending with a series
17 of #s.
18
19 = Remote Repositories
20 They. All. Look. The. Same. At least as far as amp is concerned, at them moment.
21 We need to fix this shiznizzle because this means you cannot use a foreign
22 repository for anything other than Mercurial, really (based on how the files
23 are loaded). Be creative. Be awesome. Be daring. Few in millions can speak like us.
24 Show the world why you are a programmer. SOLVE THIS PROBLEM!
25
c2e77d1 Mirroring
Michael Edgar authored
26 == Maintenance
27
28 = Dependencies
29 We need these down to zero. Currently we DO need YARD, but flay and flog? We
30 haven't used these at all yet. Either remove these from the code (well, really
7f4cfc3 mirroring hg. big update\!
Michael Edgar authored
31 the Rakefiles) or add a way to fail gracefully. We also now need minitest, etc.
32 Development dependencies are ok, but dependencies for running? Kill them. Kill
33 them aaaaaaalllllllllllll.
c2e77d1 Mirroring
Michael Edgar authored
34
35 = Multitude of Tests
36 Tests. We need them. Moar and moar of them. We want every command to be tested
37 (at least generally), although if every option were also tested that'd be
38 superb.
39
40 = Organization of Tests
41 We currently have a gigantic test_functional.rb file that has most of the good
42 tests. However, if there's a failure in the very beginning, the rest of the
43 tests won't be run. It's true – some of the tests are dependent on each other,
44 but perjaps there's a way to split them up into clusters that make sense and
45 can be run independently.
46
47 = Code Cleaning
48 We have ugly code. We try to mark it with comments, we try to eliminate it in
49 the first place, but seriously, when it comes to programming or doing some
50 World Religions homework, I'm going to get the homework done first. And then
51 some girl will have IMed me, and, well, you get the point. If you see ugly
52 code, kill it. Hopefully it won't require any major architectural changes.
53
7f4cfc3 mirroring hg. big update\!
Michael Edgar authored
54 = API Adherence
55 Make the commands in the workflows stick to the API. If something doesn't adhere,
56 change the API and change the command until it works. **NOTU BONE (Esperanto)**:
57 Write a plethora of tests before changing a command, lest you break some
58 little-known feature of the command and in its stead add a new "feature".
59
c2e77d1 Mirroring
Michael Edgar authored
60 == Expansion
61
62 = Faster Bit Structs
63 We experimented with using bitstructs to represent objects in files. Although
7f4cfc3 mirroring hg. big update\!
Michael Edgar authored
64 this worked, it was MUCH slower than we could bare. We need a faster form of
c2e77d1 Mirroring
Michael Edgar authored
65 a bitstruct. A bitstruct is a standard C struct. If has a format, it has fields
66 with names, and you can easily read and write them to and from files. Writing
67 this alone is a task big enough for a young adult. We need these tested and
68 benchmarked against not using bitstructs. Also, try to keep these pure ruby if
69 you can.
70
71 = Incorporating Bit Structs
72 Take the bitstructs of the previous paragraph and incorporate them into
7f4cfc3 mirroring hg. big update\!
Michael Edgar authored
73 everything. If you can, fix up the mercurial revlog API to make it suck a
74 little less.
c2e77d1 Mirroring
Michael Edgar authored
75
76 = hg Extensions
77 Start porting over the Mercurial extensions. 'Nuff said.
78
79 = Expanding `amp serve`
80 We'd like it to be more like BitBucket and GitHub. Go crazy. One thing you
81 could do is implement other methods for storing users besides memory. There
82 are incomplete frameworks for Sequel and DataMapper storage that need TLC.
83
d14df52 Mirroring the HG repo - we forgot to for a while. A lot of changes in th...
Michael Edgar authored
84 == Help
85
86 = Pages of info
87 We need to have specific pages explaining amp-specific features, and helping
88 users get started using amp. Anything put into lib/amp/help/entries will be
89 loaded with its filename as the help entry's name. So, if you create a file
90 called "ampfiles.md", then "amp help ampfiles" will present the file you created.
91
92 == Insects (low-low-low-priority bugs)
93
94 = Test Reloading
7f4cfc3 mirroring hg. big update\!
Michael Edgar authored
95 Files get double-loaded when we run tests. Fix this. Kill the fucking insect.
d14df52 Mirroring the HG repo - we forgot to for a while. A lot of changes in th...
Michael Edgar authored
96
c2e77d1 Mirroring
Michael Edgar authored
97 == Documentation
98
99 = User guide
100 We need a guide that will tell new users how to install and use amp. It should
d14df52 Mirroring the HG repo - we forgot to for a while. A lot of changes in th...
Michael Edgar authored
101 explain what to do if you get a bug. Add this into the help system so it can be
7f4cfc3 mirroring hg. big update\!
Michael Edgar authored
102 CLI-accessible and browser-accessible. Add it to the man pages as well (see
103 tasks/man.rake).
c2e77d1 Mirroring
Michael Edgar authored
104
105 = Inline documentation
106 Go through to big ugly methods (or any method, no matter how dumb) and add
107 inline comments explaining what the method does and HOW IT INTERACTS WITH
108 THE REST OF THE SYSTEM. Comments should be formatted according to YARD
d14df52 Mirroring the HG repo - we forgot to for a while. A lot of changes in th...
Michael Edgar authored
109 documentation format (http://yardoc.org). Key questions to ask and answer:
7f4cfc3 mirroring hg. big update\!
Michael Edgar authored
110 Who (uses this), What (is passed in), Why (this exists), and How (this
d14df52 Mirroring the HG repo - we forgot to for a while. A lot of changes in th...
Michael Edgar authored
111 interacts with the rest of the system).
c2e77d1 Mirroring
Michael Edgar authored
112
113 = Wiki
d14df52 Mirroring the HG repo - we forgot to for a while. A lot of changes in th...
Michael Edgar authored
114 We need to expand out BitBucket wiki so that it is more appeasing and useful.
7f4cfc3 mirroring hg. big update\!
Michael Edgar authored
115
116 == Optimization
117
118 = StagingArea#file_status
119 This is called like a million times and it's unnecessary. We can use memoization
120 alleviate any pains. But be apprised: we have yet to feel any pains from it.
Something went wrong with that request. Please try again.