On 03/13/2012 08:40 AM, Vincent van Ravesteijn wrote:
You, the lyx developers, have to agree on process, but the git repo has been open for writing since sunday evening.

I propose the following:

I don't disagree with any of what is below, but I guess I'd prefer to see us move more slowly. Many people are going to have to get used to using git locally, on their own machine, and making too many changes to the workflow now, while people are just trying to figure out how to use git at all, makes even me feel overwhelmed. So, for the first couple months, I'd suggest we start using git, but pretty much the way we've been using svn. And then, when people are comfortable with that, then we start introducing a new way of working. So far as I can see, there is no disadvantage to doing this, and the advantage is substantial: It eases the learning curve for everyone.

Richard


Goal:

Do not merge any new features into lyx.git until
- they are truly finished,
- well commented and understandable by others,
- have good commit messages,
- there are no more doubts by other developers,
- the style and cosmetics are ok,
- they have been tested,
- (all automatic tests are fullfilled or tests have been created, if we ever do have tests).
This means history can get rewritten until it appears in lyx.git.

Repos and Branches:

* developers/<developer>/personal.git or local git clone: Developers develop based on the trunk-stable or 2.0.x branch.

    git checkout -b <developer>/my-feature trunk-stable
or
    git checkout -b <developer>/my-feature 2.0.x

* lyx-staging.git: Developers pull/push their feature branch into/to this repo.

    git remote add lyx-staging g...@git.lyx.org:lyx-staging.git
    git push lyx-staging my-feature

Either a feature is merged with trunk-devel by the developer, or it will be done automatically, or by a maintainer (who just runs the script manually and checks that things don't go wrong until everyone is comfortable with the workflow).

No direct commits onto trunk-devel are allowed. This trunk-devel branch represents the bleeding edge repo. Do not base your work onto this branch, because history might be rewritten. If your features depends on another feature, base your feature onto that feature and indicate this.

git checkout -b developer/my-feature other-developer/depending-feature

* lyx.git: From time to time, features will get merged into or rebased onto the trunk-stable and/or 2.0.x branch in this repo. This repo consists only of long-lived branches.

I think this is how me and Abdel want to see the workflow ? Any other comments or questions ? Please do ask any git related questions as well when unsure.

If not, Lars, can you create a lyx-staging.git repo and give access to all developers. And maybe restrict access to lyx.git to the maintainers to prevent accidental commits (at least until everyone is used to the process).

Now it is the time to agree on the basic structure of the workflow.

Vincent

Reply via email to