ASCEND source code repository

From ASCEND
Jump to navigation Jump to search

ASCEND source code and documentation files are maintained in a Subversion repository hosted by CMU.

Checking out a copy of the code

To check out a local copy of the ASCEND source code, use your subversion client (see About Subversion below) to checkout from the repository URL http://ascendsvn.cheme.cmu.edu/ascend/code/trunk. To do this with the command-line client, you would typically use the following commands:

# we assume you want a folder called 'ascend' right there in your home directory
cd ~

# check out the trunk of the repository to a new subdirectory called 'ascend'
svn co https://svn.ascend4.org/trunk/ ascend

Note that if you are behind a proxy, you may not be able to access our Subversion repository. Some proxies prevent access via the 'svn:' protocol. You may find some useful information in the Subversion FAQ.

You can also browse the repository online via ViewVC.

See BuildingAscend for information on how to build ASCEND from the source code you have checked out.

Please try to read our coding style guidelines.

Notifications

To receive email notifications about changes to the trunk ASCEND code branch, this page on Launchpad.

Working on the documentation and website

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,

Invalid language.

You need to specify a language like this: <source lang="html">...</source>

Supported languages for syntax highlighting:

a4c, abap, abc, abnf, actionscript, ada, agda, alan, algol, ampl, amtrix, applescript, arc, arm, as400cl, ascend, asciidoc, asp, aspect, assembler, ats, autohotkey, autoit, avenue, awk, ballerina, bat, bbcode, bcpl, bibtex, biferno, bison, blitzbasic, bms, bnf, boo, c, carbon, ceylon, charmm, chill, chpl, clean, clearbasic, clipper, clojure, clp, cmake, cobol, coffeescript, coldfusion, conf, cpp2, critic, crk, crystal, cs_block_regex, csharp, css, d, dart, delphi, diff, dockerfile, dts, dylan, ebnf, ebnf2, eiffel, elixir, elm, email, erb, erlang, euphoria, exapunks, excel, express, factor, fame, fasm, felix, fish, fortran77, fortran90, frink, fsharp, fstab, fx, gambas, gdb, gdscript, go, graphviz, haml, hare, haskell, haxe, hcl, html, httpd, hugo, icon, idl, idlang, inc_luatex, informix, ini, innosetup, interlis, io, jam, jasmin, java, javascript, js_regex, json, jsp, jsx, julia, kotlin, ldif, less, lhs, lilypond, limbo, lindenscript, lisp, logtalk, lotos, lotus, lua, luban, makefile, maple, markdown, matlab, maya, mercury, meson, miranda, mod2, mod3, modelica, moon, ms, msl, mssql, mxml, n3, nasal, nbc, nemerle, netrexx, nginx, nice, nim, nix, nsis, nxc, oberon, objc, ocaml, octave, oorexx, org, os, oz, paradox, pas, pdf, perl, php, pike, pl1, plperl, plpython, pltcl, po, polygen, pony, pov, powershell, pro, progress, ps, psl, pure, purebasic, purescript, pyrex, python, q, qmake, qml, qu, r, rebol, rego, rexx, rnc, rpg, rpl, rst, ruby, rust, s, sam, sas, scad, scala, scilab, scss, shellscript, slim, small, smalltalk, sml, snmp, snobol, solidity, spec, spn, sql, squirrel, styl, svg, swift, sybase, tcl, tcsh, terraform, tex, toml, tsql, tsx, ttcn3, txt, typescript, upc, vala, vb, verilog, vhd, vimscript, vue, wat, whiley, wren, xml, xpp, yaiff, yaml, yaml_ansible, yang, zig, znn

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

Invalid language.

You need to specify a language like this: <source lang="html">...</source>

Supported languages for syntax highlighting:

a4c, abap, abc, abnf, actionscript, ada, agda, alan, algol, ampl, amtrix, applescript, arc, arm, as400cl, ascend, asciidoc, asp, aspect, assembler, ats, autohotkey, autoit, avenue, awk, ballerina, bat, bbcode, bcpl, bibtex, biferno, bison, blitzbasic, bms, bnf, boo, c, carbon, ceylon, charmm, chill, chpl, clean, clearbasic, clipper, clojure, clp, cmake, cobol, coffeescript, coldfusion, conf, cpp2, critic, crk, crystal, cs_block_regex, csharp, css, d, dart, delphi, diff, dockerfile, dts, dylan, ebnf, ebnf2, eiffel, elixir, elm, email, erb, erlang, euphoria, exapunks, excel, express, factor, fame, fasm, felix, fish, fortran77, fortran90, frink, fsharp, fstab, fx, gambas, gdb, gdscript, go, graphviz, haml, hare, haskell, haxe, hcl, html, httpd, hugo, icon, idl, idlang, inc_luatex, informix, ini, innosetup, interlis, io, jam, jasmin, java, javascript, js_regex, json, jsp, jsx, julia, kotlin, ldif, less, lhs, lilypond, limbo, lindenscript, lisp, logtalk, lotos, lotus, lua, luban, makefile, maple, markdown, matlab, maya, mercury, meson, miranda, mod2, mod3, modelica, moon, ms, msl, mssql, mxml, n3, nasal, nbc, nemerle, netrexx, nginx, nice, nim, nix, nsis, nxc, oberon, objc, ocaml, octave, oorexx, org, os, oz, paradox, pas, pdf, perl, php, pike, pl1, plperl, plpython, pltcl, po, polygen, pony, pov, powershell, pro, progress, ps, psl, pure, purebasic, purescript, pyrex, python, q, qmake, qml, qu, r, rebol, rego, rexx, rnc, rpg, rpl, rst, ruby, rust, s, sam, sas, scad, scala, scilab, scss, shellscript, slim, small, smalltalk, sml, snmp, snobol, solidity, spec, spn, sql, squirrel, styl, svg, swift, sybase, tcl, tcsh, terraform, tex, toml, tsql, tsx, ttcn3, txt, typescript, upc, vala, vb, verilog, vhd, vimscript, vue, wat, whiley, wren, xml, xpp, yaiff, yaml, yaml_ansible, yang, zig, znn

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.