Document mercurial configuration for contributing
* how to use master/review repositories
* how to send the "Available at" command in patchbomb emails
* how to add the "cubicweb" flag in patchbomb emails
* how to use our "jenkins" mercurial extension
Closes #17243538
CubicWeb semantic web framework
===============================
CubicWeb is a entities / relations based knowledge management system
developped at Logilab.
This package contains:
- a repository server
- a RQL command line client to the repository
- an adaptative modpython interface to the server
- a bunch of other management tools
Install
-------
More details at https://cubicweb.readthedocs.io/en/3.26/book/admin/setup
Getting started
---------------
Execute::
python3 -m venv venv
source venv/bin/activate
pip install 'cubicweb[pyramid]' cubicweb-blog
cubicweb-ctl create blog myblog
# read how to create your ~/etc/cubicweb.d/myblog/pyramid.ini file here:
# https://cubicweb.readthedocs.io/en/latest/book/pyramid/settings/#pyramid-settings-file
# then start your instance:
cubicweb-ctl pyramid -D myblog
sensible-browser http://localhost:8080/
Details at https://cubicweb.readthedocs.io/en/3.26/tutorials/base/blog-in-five-minutes
You can also look at the latest builds on Logilab's jenkins:
https://jenkins.logilab.org/
Test
----
Simply run the `tox` command in the root folder of this repository:
tox
How to install tox: https://tox.readthedocs.io/en/latest/install.html
Documentation
-------------
Look in the doc/ subdirectory or read https://cubicweb.readthedocs.io/en/3.26/
CubicWeb includes the Entypo pictograms by Daniel Bruce — http://www.entypo.com
Contributing
------------
Patches should be submitted by email at the cubicweb-devel@lists.cubicweb.org
mailing list in order to get reviewed by project integrators or any community
member.
The simplest way of send patches is to use the ``hg email`` command available
through the *patchbomb* extension of Mercurial. Preferably, patches should be
*in the message body* of emails. When submitting a revised version of a patch
series, a prefix indicating the iteration number ``<n>`` of the series should
be added to email subject prefixes; this can be achieved by specifying a
``--flag v<n>`` option to ``hg email`` command. If needed you can also use the
--in-reply-to option.
Examples:
hg email --to cubicweb-devel@lists.cubicweb.org --intro -r <start>::<end>
hg email --flag V2 --to cubicweb-devel@lists.cubicweb.org -r <start>::<end>
If you have any questions you can also come on Logilab's public XMPP room using
a XMPP client: public@conference.jabber.logilab.org
Mailing list: https://lists.cubicweb.org/mailman/listinfo/cubicweb-devel
Patchbomb extension: https://www.mercurial-scm.org/wiki/PatchbombExtension
Good practice on sending email patches: https://www.mercurial-scm.org/wiki/ContributingChanges#Emailing_patches
Full .hg/hgrc example for contributors having ssh access to ``hg.logilab.org`` :
[paths]
default = https://hg.logilab.org/master/cubicweb
default-push = ssh://hg@hg.logilab.org/review/cubicweb
[email]
to = cubicweb-devel@lists.cubicweb.org
[patchbomb]
publicurl = https://hg.logilab.org/review/cubicweb
flagtemplate = "{separate(' ', 'cubicweb', flags)}"
[jenkins]
url = https://jenkins.logilab.org/
job = cubicweb-default
If you don't have ssh access to ``hg.logilab.org``, you can use your own Mercurial server and
change ``default-push`` and ``publicurl`` accordingly.
A list of services that provides hosting of Mercurial repositories is available
on https://www.mercurial-scm.org/wiki/MercurialHosting.
* ``hg pull`` will pull on master repo (public changesets).
* ``hg push`` will push on review repo using ssh.
* When sending an email to the list, it will add a "Available at" with command
to pull the draft series on the public repo.
* Using https://hg.logilab.org/master/logilab/devtools/file/tip/hgext/jenkins.py
mercurial extension, ``hg show jenkins`` display jenkins build status for
each changeset. Read https://www.mercurial-scm.org/wiki/UsingExtensions to learn how
to enable a new extension in mercurial.