This is a testing repository for new features of Xournal
This is a mirror of the git repository of Xournal (http://xournal.sourceforge.net) and contains experimental code that is not yet in the official repo. Its purpose is to help in the development of new features
It should not be used for code intended for further distribution.
The latest official version of xournal can always be found at http://xournal.sourceforge.net/
Where to find the code
The official repository of xournal is managed under git. It can be found in sourceforge at: git://git.code.sf.net/p/xournal/code xournal-code
For compatibility reasons a CVS repo is still maintained and it mirrors the git repository, but its use is deprecated.
The Xournal development team has an experimental repository where new features of Xournal are tested before they are incorporated into the official version. These features are not considered to be stable enough for wider distributions and should be considered as unstable and prone to crash.
The experimental repository is hosted at github in the following repository https://github.com/dmgerman/xournal
Currently this repository contains the following branches:
- Master. DO NOT use this branch as the basis of your code.
- upstream. Its purpose is to mirror the official repository. Use this branch as the basis to develop your new features.
- for-denis. This branch is expected to be merged into the official repository. It contains features that are ready to be included in his repository.
- next. This branch is for integration of several features that have been considered solid, but not yet incorporated into the official repository.
- gtk3. It is an advanced effort towards porting xournal to gtk3+. Currently Xournal uses gtk2+
- Other experimental branches. They will contain features that are being tested before they are deployed to a wider audience.
The repository is likely to contain other branches with other experimental features.
Summary of experimental branches
These branches are reliable and do not break compatibility with Xournal:
|Name||Purpose||Rebased to head||Integrated into next|
|Master||Identical to upstream except for this file||<2016-04-20 Wed>||yes|
|Upstream||Identical to Denis repo||<2016-04-20 Wed>||yes|
|fix-update-width||Fixes annoyance: when rest the width of selected strokes, keep their variable width||<2016-04-20 Wed>||yes|
|glade||Uses XML glade interface for configuration files||<2016-04-20 Wed>||yes|
|horizontal-scroll-lock||Option to Lock the scroll horizontally||<2016-04-20 Wed>||yes|
|layers||Option to see layers above the current one||<2016-04-20 Wed>||yes|
|message||Add a pop up warning that you are using my code (used by next, useless stand alone)||<2016-04-20 Wed>||yes|
|mru||Update the Most-Recently-Used list with the currently opened page||<2016-04-20 Wed>||yes|
|popupmenu||Add a menu to right click on next/prev page to improve stylus navigation||<2016-04-20 Wed>||yes|
|snap-to-grid||Defines a grid to which any annotation is snapped to.||<2016-04-20 Wed>||yes|
|quick-zoom||Quickly zoom-in/zoom-out to a predefined zoom factor||<2016-04-20 Wed>||yes|
|next||This branch integrates all the branches above plus current xournal code||<2016-04-20 Wed>|
|cl-options||Command line options management||<2016-04-20 Wed>||NO|
|snap-to-grid||Any annotation snaps to grid||<2016-04-20 Wed>||NO|
Some experimental branches, they are incomplete or break compatibility:
|bookmarks||Tries to implement bookmarks||Code is a bit outdated|
|cmake||Replaces autogen/automake with cmake||Problems detecting glade|
|dot-paper-style||Implements dotted paper style, breaks XOJ compatibility||Fully implemented|
|gtk3||Attempts to replace gtk2 with gtk3||Performance issues|
How to contribute
One of the features that characterizes Xournal is its robustness. Features that make it to the official repository should be rock-solid and error-free (to the extent that this is feasible). In order to guarantee this we propose the following workflow:
- New ideas should be posted as a short proposal to the mailing list (email@example.com, you can subscribe here http://sourceforge.net/p/xournal/mailman/). Xournal developers will be able to comment whether the idea fits within the vision of xournal. They might also provide valuable comments and advice, and direct to existing code (such as experimental branches).
- Make a clone of the upstream branch of the github repo https://github.com/dmgerman/xournal/tree/upstream
- Develop your feature, test it.
- When it is ready, submit a pull-request to Daniel (github user dmgerman). Make sure your commits are rebased to the upstream branch to facilitate integration. Submit only one feature per request.
- If the feature aligns with the short and long term goals of Xournal, Daniel will incorporate your changes as a branch, where they will be tested by others. At this point it becomes an experimental feature. The name of the branch will reflect the feature. Ideally each independent feature should be incorporated into a separate branch. That will facilitate testing and code review. Daniel will make sure the feature is continuously rebased to the front of official.
- Daniel will evaluate the feature for inclusion into next, where it can be used along many other features not yet in official (and further tested).
- Simultaneously, Denis will evaluate the feature for inclusion in official. If he accepts the feature, it will be submitted to him via the for-denis branch.
- Once the feature is merged into official (and hence into next) the branch is removed.