Committing to the RKWard repository
===================================

This is a very short guideline, primarily for those who have KDE developer access, and are wondering whether, and how to commit to the RKWard repository, directly.

If you do not have KDE developer access, contact us on the mailing list (rkward-devel@kde.org), or submit patches invent.kde.org (see below).

Library dependencies
====================

It is important to note that RKWard makes a point of _not_ requiring the latest KDE / QT libraries. If you want to use the latest and greatest, be sure to use #ifdef's, and make a best
effort to support features for older versions of libraries, too. Generally we aim to support the two most recent Ubunut LTS releases.

Of course, with the switch to KF6, we made a clean cut, thus, currently the minimum requirements are:

* Qt: 6.6.0
* KDE: 6.0.0
* R: 3.4.4

Note: This is not set in stone, may change according to whatever is included in important distributions.

Branches and policies
=====================

* master: 
  Most development happens in master. For the time being master is always open for commits, although you are encouraged to develop more elaborate new features in a separate branch. Do try to keep this branch compilable and functional at all times (some rough edges are allowed, though). For more disruptive work, use a "work" branch (see below).
* releases/*
  These branches are more restricted. In general you should:
  * not add any new features (only fixes) to these
  * monitor the mailing list for any (string) freezes in these branches, before doing any work, there
  * merge your commit to master, unless it is really specific to the release-branch (or unless you cherry-picked it from master)
* released:
  This will be updated for each new stable release, but _only_ for each new stable release. Meant to allow tracking released versions. In general, please don't commit / push anything, here, unless you are the release manager.
* devel/*
  For longer, experimental, or disruptive work, consider creating a branch named "devel/feature_description". Do let us know, when the feature is merged (or discarded), and the branch can be removed.
* work/*
  The KDE git infrastructure special-cases branches under the prefix "work". Among other things these will allow history-rewrites, and will not produce commit notifications, i.e. the rules are much like for a personal fork.
  If you want other people to pariticipate on the branch, please use a "devel" branch (see above), instead of a "work" branch, as this allows better collaboration.
* kde4:
  The latest KDE4 based development version of RKWard. There may or may not be future bugfix releases for KDE4, but no active development is expected on this branch.

Testing
=======

Only some of RKWard (mostly: the plugins) is currently covered by automated tests. To run these, use
  make plugintests
More elaborate documentation is available at https://rkward.kde.org/Automated_Plugin_Testing . Running tests is particularly important when making changes to the "plugin" and "plugins"
subdirectories.

Note that there are some false positives or unstable tests (failing in some locales, for instance). Check the diffs to find out, exactly how the test failed, or run tests before
and after your changes. If in any doubt, ask on the mailing list rkward-devel@kde.org .

Review
======

There is no strict policy on code reviews. It is never wrong to ask for review on https://invent.kde.org/education/rkward
