The intended public for this document is Ceylan developers, i.e. working on the library itself: Ceylan users ought to refer to the Ceylan User Guide.
See the ChangeLog corresponding to this release. Besides this document, Windows users should refer as well to our guide for Windows build.
Not depending on the build platform (i.e. the platform the build toolchain will run on), Ceylan sources must be retrieved from SVN
If you are performing a native build (not cross-compiling), the Autotools should be used for all UNIX platforms. The build will be then drived by Makefile.am files, and the ones that are generated from them (Makefile.in, Makefile).
If you are cross-compiling, then you should be on GNU/Linux and targeting the Nintendo DS (see our cross-compilation section).
In both cases (native/cross-compilation), for a clean and complete build, one should execute trunk/src/conf/build/autogen.sh, preferably run with the -f / --full-test option, as it builds and installs the library, and performs all available tests.
To request a cross-compilation targeting the Nintendo DS, the --nds switch should be added. To run interactively (i.e. without using autogen.sh) the build system, one could use for example:
|
In that case the fresh SVN sources are expected to be used with the Visual C++ 2005 Express toolchain.
The trunk/src/conf/build/autogen.sh script should be used with the --nds switch. This will pass to configure the relevant --host=arm-nintendo-ds specification and select the cross-compilation tools accordingly. For that the automatically downloaded config.sub is automatically patched to recognize the DS.
Classical preprocessor template to handle the Nintendo DS case:
|
svn propset svn:ignore myFile . or svn propset svn:ignore "*.log" logs/Read carefully first Sourceforge dedicated documentation and SVN one.
Then:
svn import ceylan https://ceylan.svn.sourceforge.net/svnroot/ceylan --username=MyUserName where ceylan is a directory containing only one directory, Ceylan, that itself contains the branches, tags, trunk directories.
Before reporting an error, please check you have upgraded following tools with their latest stable version available:
Some developing rules are to be enforced:
struct ceylan_mode_t ;HAVE_CTIME is to be replaced by CEYLAN_USES_CTIMEuse /bin/ls -1 *.h) in CeylanMODULE_NAMEIncludes.h (ex: CeylanMathsIncludes.h)'A specific message' to <A specific message>
--classicalPlug would use that layer for logging purpose otherwise. Use this latter classical plug to debug the log system, including the HTML aggregator. Finally, use --HTMLPlug for all other needs.test/interface/testCeylanLocatable.ccWe suppose here that, with the previous version, the current version has been setup, hence we will create a release for current version and then prepare the setup for the next one.
x.y designates here the version to release, which should be the in-development version once stabilized.
do_distcheck=0 in trunk/src/conf/build/autogen.sh) to ensure no distributed file is badly managed (note however that, at least for the moment, this checking cannot fully succeed, because in general tests cannot be configured without distcheck telling where the library was installed)trunk/src/conf/build/visual-express/Ceylan-x.(y-1).sln), rename it (right-click, still in IDE) with newer version, then do the same for the library in solution (trunk/src/conf/build/visual-express/Ceylan-x.y.vcproj), then save as that library project to a file numbered accordingly, then save all (the full solution) and stop Visual Express, then add these two files to SVN repository and check them in. Rebuild everything and check with cygwin that the test suite runs finetrunk/src/doc/basic/Ceylan-*-template.txt.in (including Ceylan-NEWS-template.txt.in), trunk/src/doc/web/main/News.html and, in trunk/src/conf/CeylanSettings.inc, CEYLAN_RELEASE_DATEtrunk/src/doc/basic, use make effective-changelog-creation html-changelog, under trunk/src/conf/build execute make -f MakeConfigure get-config-scripts, create trunk/src/doc/Ceylan-x.y-release-notes.txt and trunk/src/doc/Ceylan-x.y-changes.txt, etc.trunk/src/conf/build, use autogen.sh --chain-test to check everything is still working as expected: all the tests must always succeed, not depending on how many times they are run./autogen.sh --only-prepare-dist: it should produce an archive named trunk/ceylan-x.y.tar.bz2. Another approach is to use an already built Ceylan tree, and from the trunk to issue make dist-bzip2 and make dist (for tar.gz archive). Build the resulting package on as many other hosts as possible, at least one time on each supported platform. For example, scp ceylan-x.y.tar.bz2 $TOSFCF && sfcf to transfer the archive to Sourceforge's compile farm (if one day it comes back) and to log to their platform choosersrc/doc, make api toSF)
trunk/src/code/scripts/shell/toci script
svn copy https://ceylan.svn.sourceforge.net/svnroot/ceylan/Ceylan/trunk https://ceylan.svn.sourceforge.net/svnroot/ceylan/Ceylan/tags/release-0.7.0 -m "First release of the 0.7 series, with XML parser added and three newly supported platforms: Windows XP, Sun Solaris, OpenBSD."
|
ceylan-x.y.tar.bz2 thanks to cd trunk/src/conf/build; autogen.sh --only-prepare-dist and ceylan-x.y.tar.gz thanks to make dist from trunk
File releases, add a release to the Ceylan package (not the hidden ceylan package), name that release Ceylan-x.y, create it. Upload both release notes and ChangeLog from local tree (respectively from trunk/src/doc/Ceylan-x.y-release-notes.txt and from trunk/ChangeLog). Upload by anonymous FTP both archives to
upload.sourceforge.net in the incoming directory (delete first through the web form any alreay hidden release with the same name). Add the archives from the web interface (Processor: Platform-Independent), File Type: Source .bz2 or Source .gz). Send a notice. Check everything from a non-logged browser.
build-and-test-package.shceylan-announces@lists.sourceforge.net
Now x'.y' designates the next version.
trunk/src/conf/CeylanSettings.inc: CEYLAN_MAJOR_VERSION and/or CEYLAN_MINOR_VERSION and/or CEYLAN_RELEASE, and in trunk/src/code/CeylanConfigForWindows.h. Create a new trunk/src/conf/build/ceylan-x'.y'.pc.in file, possibly from the one of the previous version. Once updated if needed, register it in SVN (svn add ... && svn ci ...)src/doc/web/Ceylan-x'.y' directorytrunk/src/doc/web/main/documentation/DocMenu.html so that this new version is referencedtrunk/src/doc/web/main/News.html with the starting date of this new release
trunk/src/conf/generateBugReport.sh, it will generate a text file containing the report, and tell you what to do with itmake dist or, preferably, make dist-bzip2
|
If you have information more detailed or more recent than those presented in this document, if you noticed errors, neglects or points insufficiently discussed, drop us a line!