forked from SebKuzminsky/pycam
-
Notifications
You must be signed in to change notification settings - Fork 1
/
release_info.txt
87 lines (71 loc) · 3.83 KB
/
release_info.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
1) update the version and the changelog
- in "Changelog" (version, release date, changes)
- in "src/pycam/__init__.py" (version)
- commit the changes
2) create the archives
- "make dist"
- carefully check the resulting content of the archives
3a) create an svn tag for the release (includes uploading the archive files)
- "make upload"
3b) create the Windows standalone binary
- see pyinstaller/pyinstall_info.txt for details
4) upload files to sourceforge
- https://sourceforge.net/project/admin/explorer.php?group_id=237831
- create a directory for the new release
- click at the icon to the left of the new directory and upload the new archives
- create a file called "release-notes-0.x" and upload it to the same directory
- first line: "PyCAM v0.x release notes:"
- second line: empty
- further lines: summary of changes (complete sentences)
- mark the release notes files as "Release notes" (see "Properties")
- set the release notes and the target operating systems for the archives
- zip: others
- exe: Windows
- tar.gz: Linux, Mac, BSD, Solaris
- standalone binary (Windows): no specific architecture
5) announcements
- run "python setup.py register" (for the PyPI package index)
- create a project news items at sourceforge
- create a new release at http://freshmeat.net
- post the new release at http://www.cnczone.com/forums/showthread.php?t=63716
- create a blog post at: http://fab.senselab.org
6) other stuff
- create a new release tag for the bug tracker:
https://sourceforge.net/tracker/admin/index.php?group_id=237831&atid=1104176&add_group=1
# Version numbers
If the user runs pycam out of a git working directory without
taking any special action with respect to versioning,
pycam determines the version dynamically each time it's
invoked. The algorithm is at the top of pycam/__init__.py.
When building Debian packages of pycam, the build system uses that code to
produce pycam/Version.py, which just sets the VERSION variable according
to the git working directory that the package was built from.
Version numbers are determined like this:
* Some commits correspond to actual releases, these are indicated by
special tags (like our "v0.5.1" tag, "v0.6.0", etc). The version
number of a commit with a release tag is just the release tag itself,
of course.
* The version number of a commit without a release tag is constructed in a
"git describe"-like way: the most recent release tag, followed by the
number of commits since then, followed by the SHA of the current commit,
followed by "dirty" if there are uncommitted, non-ignored changes in
the git working directory.
However, there's a complication needed to handle multiple branches. The
versioning code considers two kinds of branches:
* Long-lived branches like master (for current development) and stable
release branches (we don't have any yet, but imagine a "v0" branch,
"v1", etc). These branches are where the release tags live. We
want un-tagged commits in these branches to have the simple kind of
version number described above (tag, commits since tag, SHA). Example:
v0.6.1.345.gabc123 ("345 commits after v0.6.1").
* Short-lived temporary branches (for new features, bug fixes, etc). These
branches have more complicated version numbers. Version numbers here
should show which long-lived branch this temporary branch came from
(by having a version number from that long-lived branch), but should
be clearly differentiated from versions actually from that long-lived
branch, and should include the name of the short-lived branch. Example:
v0.6.1~deb.version.sumpfralle.86.g6789cc3 ("deb-version-sumpfralle
branch, 86 commits after v0.6.1"). The "~" tilde character there
is deliberate: it sorts as "older than" in Debian version numbers,
so debs from short-lived branches will not replace debs from stable
release branches by mistake.