ASCEND source code repository: Difference between revisions
No edit summary |
No edit summary |
||
| (33 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
ASCEND source code and documentation files are maintained in a ''' | ASCEND source code and documentation files are maintained in a '''Github''' repository. | ||
cd ~ | |||
git clone https://github.com/ascend4/ascend4.git ascend | |||
You can also '''[http://{{codeserver}}/ascend4/ascend4 browse the repository]''' online via Github. | |||
See [[Building ASCEND]] for information on how to build ASCEND from the source code you have checked out. | |||
Please read our [[coding style]] guidelines. | |||
=== Notifications === | |||
{{colorbox|#ffdddd|The rest of this page is in need of an update (Jul 2025).}} | |||
To receive email notifications about changes to the trunk ASCEND code branch, use [https://code.launchpad.net/~jdpipe/ascend/trunk this page] on Launchpad. | |||
== Working on the documentation and website == | |||
''The 'web' repository of ASCEND is no longer online, and has been replaced by the present Mediawiki site.'' | |||
The documentation is available as part of the source distribution above. We do this so that we can link in sample code directly when compiling the documentation. | The documentation is available as part of the source distribution above. We do this so that we can link in sample code directly when compiling the documentation. | ||
| Line 22: | Line 23: | ||
The source material for the [http://ascend.cheme.cmu.edu public website] (as opposed to this wiki) hosted is a separate part of the Subversion repository however. You can check out the website files using: | The source material for the [http://ascend.cheme.cmu.edu public website] (as opposed to this wiki) hosted is a separate part of the Subversion repository however. You can check out the website files using: | ||
svn co {{svnroot}}/web/trunk ascend-web | |||
We don't currently have an automated publishing script; you will need to manually update the webserver if you make changes there in the repository. | We don't currently have an automated publishing script; you will need to manually update the webserver if you make changes there in the repository. | ||
| Line 30: | Line 31: | ||
When making a commit to Subversion, you should be able to enter special strings like "fixes bug NNN", and those messages will be processed by the [http://ascendbugs.cheme.cmu.edu/ ASCEND Bug Tracker] and used to modify the status of a bug which is relevant to your changes. (Need confirmation that this is still operating correctly). | When making a commit to Subversion, you should be able to enter special strings like "fixes bug NNN", and those messages will be processed by the [http://ascendbugs.cheme.cmu.edu/ ASCEND Bug Tracker] and used to modify the status of a bug which is relevant to your changes. (Need confirmation that this is still operating correctly). | ||
If you use the the [http:// | If you use the the [http://{{bugserver}}/ ASCEND Bug Tracker], then anytime you write comments containing text like "changeset 345", the text will be converted into a hyperlink that will allow you to click through to review the relevant code changes on ViewVC. | ||
== Branches == | == Branches == | ||
| Line 38: | Line 39: | ||
To create a new branch, | To create a new branch, | ||
svn cp {{svntrunk}} {{svnroot}}/branches/mynewbranchname | |||
then in the editor that pops up, give a description of your branch, eg "creating a new branch from trunk r3233 for dev of new code for boundary switching with IDA", save, exit. | then in the editor that pops up, give a description of your branch, eg "creating a new branch from trunk r3233 for dev of new code for boundary switching with IDA", save, exit. | ||
| Line 44: | Line 45: | ||
To switch from one branch to another | To switch from one branch to another | ||
# make sure you're in the top level working directory | |||
# make sure you're in the top level working directory | cd ~/ascend | ||
cd ~/ascend | |||
# update: sometimes it makes the switch cleaner to update your working code first | |||
# update: sometimes it makes the switch cleaner to update your working code first | svn up | ||
svn up | |||
# do the switch | |||
# do the switch | svn switch {{svnroot}}/branches/mynewbranchname | ||
svn switch | |||
You will then see the branch that you are working in if you type <tt>svn info</tt>. If anything goes wrong with the switch, you can check where by running <tt>svn st</tt>. | You will then see the branch that you are working in if you type <tt>svn info</tt>. If anything goes wrong with the switch, you can check where by running <tt>svn st</tt>. | ||
| Line 67: | Line 66: | ||
For '''MacOS X''', a recommended GUI client is [http://scplugin.tigris.org/ scplugin]. It allows you to access Subversion functionality for the context menu in the Finder. Alternatively, there is also a command-line version available for use from the Terminal. | For '''MacOS X''', a recommended GUI client is [http://scplugin.tigris.org/ scplugin]. It allows you to access Subversion functionality for the context menu in the Finder. Alternatively, there is also a command-line version available for use from the Terminal. | ||
== Special requests for new developers == | |||
If you're a new developer on ASCEND, such as via [[GSOC]], we'll normally grant you a username and password so that you can commit code to our repository. While you're starting out working with us, we'd make the following requests: | |||
* make sure all your changes are committed to your personal branch, which you can normally checkout using <tt>svn co <nowiki>svn://ascend4.org/code/branches/</nowiki>''username'' ascend</tt>. Please DO NOT commit code directly to the 'trunk'. | |||
* familiarise yourself with our [[coding style]]. | |||
* avoid making unneeded changes (eg formatting) where it can be avoided, except where discussed with your mentor. | |||
* only add flat text files to our repository. Don't upload big documents, images or binary data files without discussing with us first. | |||
* try to avoid committing multiple versions of the same file, eg "myfile1.c", "myfile2.c", "myfile3_broken.c", etc. Try to keep the development linear as far as possible. | |||
* if you have got multiple independent areas of work you may wish to request an additional branch. | |||
* when your work is at a stable and well-tested juncture, you can ask to have it merged into trunk. | |||
[[Category:Development]] | [[Category:Development]] | ||
Latest revision as of 12:59, 14 July 2025
ASCEND source code and documentation files are maintained in a Github repository.
cd ~ git clone https://github.com/ascend4/ascend4.git ascend
You can also browse the repository online via Github.
See Building ASCEND for information on how to build ASCEND from the source code you have checked out.
Please read our coding style guidelines.
Notifications
To receive email notifications about changes to the trunk ASCEND code branch, use this page on Launchpad.
Working on the documentation and website
The 'web' repository of ASCEND is no longer online, and has been replaced by the present Mediawiki site.
The documentation is available as part of the source distribution above. We do this so that we can link in sample code directly when compiling the documentation.
The source material for the public website (as opposed to this wiki) hosted is a separate part of the Subversion repository however. You can check out the website files using:
svn co https://svn.ascend4.org/web/trunk ascend-web
We don't currently have an automated publishing script; you will need to manually update the webserver if you make changes there in the repository.
Some Subversion automation
When making a commit to Subversion, you should be able to enter special strings like "fixes bug NNN", and those messages will be processed by the ASCEND Bug Tracker and used to modify the status of a bug which is relevant to your changes. (Need confirmation that this is still operating correctly).
If you use the the ASCEND Bug Tracker, then anytime you write comments containing text like "changeset 345", the text will be converted into a hyperlink that will allow you to click through to review the relevant code changes on ViewVC.
Branches
We have a number of active branches in our repository. Mostly these are related to student projects (eg GSOC2009 or GSOC2010) or else experimental forays that we don't want messing up things for others in the team.
To create a new branch,
svn cp https://svn.ascend4.org/trunk/ https://svn.ascend4.org/branches/mynewbranchname
then in the editor that pops up, give a description of your branch, eg "creating a new branch from trunk r3233 for dev of new code for boundary switching with IDA", save, exit.
To switch from one branch to another
# make sure you're in the top level working directory cd ~/ascend # update: sometimes it makes the switch cleaner to update your working code first svn up # do the switch svn switch https://svn.ascend4.org/branches/mynewbranchname
You will then see the branch that you are working in if you type svn info. If anything goes wrong with the switch, you can check where by running svn st.
About Subversion
Subversion is the version management software we are using.
For Linux, most distributions come with command-line subversion (command svn) already installed. GUI clients are also available. See the links on [1]. There is also now a useful Nautilus extension called RabbitVCS.
For Windows, you will need to download and install a Subversion client. A recommended GUI client for Windows is TortoiseSVN. The command-line client can also be run conveniently via cygwin.
For MacOS X, a recommended GUI client is scplugin. It allows you to access Subversion functionality for the context menu in the Finder. Alternatively, there is also a command-line version available for use from the Terminal.
Special requests for new developers
If you're a new developer on ASCEND, such as via GSOC, we'll normally grant you a username and password so that you can commit code to our repository. While you're starting out working with us, we'd make the following requests:
- make sure all your changes are committed to your personal branch, which you can normally checkout using svn co svn://ascend4.org/code/branches/username ascend. Please DO NOT commit code directly to the 'trunk'.
- familiarise yourself with our coding style.
- avoid making unneeded changes (eg formatting) where it can be avoided, except where discussed with your mentor.
- only add flat text files to our repository. Don't upload big documents, images or binary data files without discussing with us first.
- try to avoid committing multiple versions of the same file, eg "myfile1.c", "myfile2.c", "myfile3_broken.c", etc. Try to keep the development linear as far as possible.
- if you have got multiple independent areas of work you may wish to request an additional branch.
- when your work is at a stable and well-tested juncture, you can ask to have it merged into trunk.