Skip to content

Commit d410b97

Browse files
committed
Add HACKING file with guidelines on maintainence
1 parent a73f755 commit d410b97

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

HACKING

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
A couple basic rules about the maintainence of eg:
2+
3+
0) I'm a bloody horrible maintainer, sometimes going for months without
4+
responding to inquiries/patches. Yeah, I know, I deserve to be
5+
replaced. Sorry. Also, I turn down some good ideas. And some good
6+
ideas that I turn down I suddenly change my mind on a year later.
7+
8+
1) At any given time, all the tests should pass *if* running with
9+
corresponding git and eg versions (run 'eg --version' to check). To
10+
run the tests:
11+
12+
# See t/README for more details; note that the tests
13+
cd t/
14+
make -j2
15+
16+
2) Version numbers (appearing on or near lines 4 & 27 of eg)
17+
a) For a release, the version number of eg should match the version of
18+
git it was tested against, see below for more details. (New rule
19+
since v1.6.5.2)
20+
b) After a release of eg, the version string should have ".dev"
21+
appended to it.
22+
23+
3) Having eg be tested against a certain version of git means both that
24+
the given version of git was in the path, but also that the tests were
25+
merged with the given version of git.git's t/ subdirectory (and
26+
updated as needed for eg-specific changes). To merge with git.git's
27+
changes to t/:
28+
29+
# Preliminaries
30+
tempdir=~/temp # or whatever
31+
testversion=v1.6.5.2
32+
33+
# Make a "filtered" clone of git.git's tests (all tagged releases anyway)
34+
git init --bare $tempdir
35+
cd /path/to/git.git/clone
36+
git fast-export $(git tag | grep -e $'^v[0-9\.]*$') \
37+
--signed-tags=strip --tag-of-filtered-object=rewrite -- t/ \
38+
| (cd $tempdir && git fast-import --quiet --force)
39+
40+
# Fetch this test history into the local eg project
41+
cd /path/to/eg
42+
eg remote add testing $tempdir
43+
eg config remote.testing.fetch +refs/tags/*:refs/remotes/git/*
44+
eg fetch --no-tags testing
45+
46+
# Merge any new changes from the relevant version
47+
eg merge git/$testversion
48+
49+
# Then, fix up any tests (particularly the needed -b flag to commit)
50+
# as needed and test and commit.

0 commit comments

Comments
 (0)