Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strategy for Contributing Contents #6

Closed
4 tasks done
tajmone opened this issue Aug 25, 2018 · 10 comments
Closed
4 tasks done

Strategy for Contributing Contents #6

tajmone opened this issue Aug 25, 2018 · 10 comments
Labels
📖 Alan Manual Issues relating to "The Alan Language Manual" 👮 contribution guidelines Policies: How to contribute to project and docs. 📝 NOTE Developers' Note (known issues, workarounds, etc.) ♻️ collaborative editing Joint effort issue

Comments

@tajmone
Copy link
Collaborator

tajmone commented Aug 25, 2018

  • Rename branch beta7-prep-contributingdev-contributing.
  • Rebase dev-contributing on master.
  • Update CONTRIBUTING.md to embody the new branches strategy (see discussion below).
  • Update manual/CONTRIBUTING.md to describe the new branches naming conventions and development and release strategies for official Manual release and Alpha dev/previews (see discussion below).

Currently working on the following documents on branch dev-contributing:


See also:

  • CONTRIBUTING.md (on master branch)
  • Issue #59 — discussion on ALAN Manual branches strategy for Beta vs Alpha.
  • Issue #71 — considerations on branching, merging/squashing, and committing strategies .

Ciao @thoni56,

I wanted to ask you about the way new contents should be proposed for the Manual (and any other doc in general). If it's OK with you, I was thinking that new content should be proposed in separate branches (created ad hoc for each new content submission), so there is a chance for you (or whoever will be appointed to supervise the documentation project) to discuss, revise, edit and approve (or reject) new contents.

Unlike fixing of typos and other minor changes, new contents are a bit of a delicate matter, and I think their addition should be supervised. This branch-based approach, on the other hand, allows freedom to anyone to at least propose contents vi pull requests. As for those with full access to the repository (like me), it boils down to separating what is editing work and contents changes.

For example, I feel I could write some contents on the internationalization/localization of Alan, since I'm fresh from the library translation, but I'd prefer to work on a separate branch where there is space to discuss and revise all the proposed contents before merging them.

What do you think about this?

@tajmone tajmone added 📖 Alan Manual Issues relating to "The Alan Language Manual" ♻️ collaborative editing Joint effort issue labels Aug 25, 2018
@thoni56
Copy link
Contributor

thoni56 commented Aug 26, 2018

I think this is an excellent approach. I've always thought branches was the "theoretically" correct choice, but often found that working directly on the master is less of a hazzle.

The division that you propose, sounds a natural combination. So let's go with that. Would you mind adding a line or two about that in the Readme, so that we remember it ;-)

@tajmone
Copy link
Collaborator Author

tajmone commented Aug 26, 2018

Would you mind adding a line or two about that in the Readme, so that we remember it ;-)

I will, definitely!

I'm also thinking of starting to use the Wiki as a "public notebook" to gather useful links, tips, and guidelines about editing and converting the documentation via AsciiDoc.

@tajmone
Copy link
Collaborator Author

tajmone commented Aug 26, 2018

I've created a first draft document on Contribution Guidelines:

It will get polished in time, but it should do for a start.

@tajmone tajmone added the 👮 contribution guidelines Policies: How to contribute to project and docs. label Sep 11, 2019
@tajmone
Copy link
Collaborator Author

tajmone commented Sep 11, 2019

Nightly vs Upcoming Beta

During our work on the Alan Manual I've come to realize that in the future we should adopt a dual strategy for its development:

  • Nightly Releases — contents updates relating to current official Alan Beta.
  • Upcoming Beta — contents updates pertaining the next Beta release (i.e. concerning features currently available only in Alpha dev snapshots).

The idea matured from the awareness that between each Beta release there's a rather lenghty time lapse, so me might want users to enjoy contents updates on nighlty releases without having to wait for the next Beta (which could take anything from 6 moths to a year).

This could be approached by using two different dev branches:

  • dev-manual for nightly releases preparatory work.
  • dev-manual-alpha for upcoming Beta releases preparatory work.

A Nightly Releases would be any version of the Manual which is merged into master branch — referred to as "nightly" because it's slighter up to date in respect to the version bundled with the various SDK zip files downloadable from the website.

In practical terms, we would work on branch dev-manual for all contents updates that are not specific to upcoming new features, and once in a while merge into master when there's a polished update ready for integration.

As for new features, these would be added on the dev-manual-alpha branch, to keep them separate from the Manual referring to the current Alan version. This dev branch should be rebased on dev-manual as often as possible, in order to keep it in synch with the base doc and avoid later merge conflicts.

This approach also simplifies the workflow for we have fixed branches name (as opposed to Beta7, Beta8, etc.). As usual, specific topics can be worked on in sub-branches like dev-manual-AppG, dev-manual-somefeature, dev-manual-alpha-newfeat, etc., which would then be merged in their respective base branches once ready and reviewed.

Do you think it makes sense? Any advise and better ideas?

@thoni56
Copy link
Contributor

thoni56 commented Sep 12, 2019

I think this is an excellent idea and strategy, leveraging the "normal" feature branch and release concept onto documentation! Great benefit of having a text-based format as the source.

So in principle documentation of new features are introduced in the dev-manual-alpha branch and evolving, adding and improving descriptions of things that's already in should go in dev-manual.

tajmone added a commit that referenced this issue Sep 12, 2019
Add new `manual/CONTRIBUTING.md` for guideline on the Git development
for the Alan Manual, and the strategies for keeping separated work on
the Manual for the current Alan version from work on new features due
with the next upcoming relase (i.e. "nighlty" vs "alpha").

For more info: See #6.
@tajmone tajmone added the 📝 NOTE Developers' Note (known issues, workarounds, etc.) label Sep 19, 2020
@thoni56
Copy link
Contributor

thoni56 commented Sep 19, 2020

Given the discussion in #59 we have now ameded this thinking a bit. Still a dual strategy, but more clearly:

  • master follows the official releases (which at this point is 3.0beta7)
  • dev-man branch which should follow the continuous snapshots

This means that documentation should as much as possible be updated for each feature or change that is made to the SDK, but also layout and tooling changes happen on the dev-man branch. (Perhaps after being tried out on a completely different branch, of course.)

This also means that documentation work means local merging/re-basing as with source code.

So, should we close this issue then? Probably ensure that CONTRIBUTION does not contradict this first. (CONTRIBUTION primarily addressing "external" contributions, I guess.)

@tajmone
Copy link
Collaborator Author

tajmone commented Sep 19, 2020

Agreed then.

So, should we close this issue then?
Probably ensure that CONTRIBUTION does not contradict this first. (CONTRIBUTION primarily addressing "external" contributions, I guess.)

Yes, I was actually working on the CONTRIBUTING.md doc locally, I'll rebase it and polish it as required. Then I'll close the issue.

@tajmone
Copy link
Collaborator Author

tajmone commented Sep 19, 2020

Renamed beta7-prep to dev-man!

Ok @thoni56, I've now renamed beta7-prep to dev-man, and deleted the old merged PR branches.

DON'T FORGE TO UPDATE YOUR LOCAL CLONE!

Bare in mind that the preview links in some Issues won't work anymore due to the branch renaming; but I'll try to edit all the links that I came across.

@tajmone tajmone pinned this issue Sep 19, 2020
tajmone added a commit that referenced this issue Sep 19, 2020
Add new `manual/CONTRIBUTING.md` for guideline on the Git development
for the Alan Manual, and the strategies for keeping separated work on
the Manual for the current Alan version from work on new features due
with the next upcoming relase (i.e. "nighlty" vs "alpha").

For more info: See #6.
tajmone added a commit that referenced this issue Sep 20, 2020
Edit the text of `manual/CONTRIBUTING.md` so mirror the new development
strategy and branches naming conventions. (See #6)
tajmone added a commit that referenced this issue Sep 20, 2020
Revise and improve contents of `CONTRIBUTING.md`, exposing the general
contributors' guidelines (See #6):

* Split paragraphs one-line-per-sentence.
* Provide general guidelines on usage of development branches for each
  document, their naming conventions, and merge and PR strategies.
* Add guidelines on adding a Glossary to new documents.
@tajmone
Copy link
Collaborator Author

tajmone commented Sep 20, 2020

Ok @thoni56, I've fixed the CONTRIBUTING docs (the existing one and the new one). They're ready to merge on master, but I'd like you to look at them before merging, just in case I left out something or they contain mistakes.

@tajmone
Copy link
Collaborator Author

tajmone commented Sep 20, 2020

Merged into master and deleted branch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📖 Alan Manual Issues relating to "The Alan Language Manual" 👮 contribution guidelines Policies: How to contribute to project and docs. 📝 NOTE Developers' Note (known issues, workarounds, etc.) ♻️ collaborative editing Joint effort issue
Projects
None yet
Development

No branches or pull requests

2 participants