eclipse-che / che

Kubernetes based Cloud Development Environments for Enterprise Teams
http://eclipse.org/che
Eclipse Public License 2.0
6.99k stars 1.19k forks source link

Provide documentation about Che development conventions #10174

Closed garagatyi closed 6 years ago

garagatyi commented 6 years ago

Description

Currently, we have some code that uses Feature toggle technique to add Workspace.Next flow support into the current version of workspace bootstrapping flow. In my recent PR I was told that our convention is to develop features in long-leaving feature branches. I couldn't find any development conventions in Che documentation, so decided to create this issue. There are some conventions that somewhat followed by contributors, but since they are not described anywhere it is hard for a contributor to follow them and for a maintainer to make sure they are followed.

garagatyi commented 6 years ago

@eivantsov @gazarenkov

gazarenkov commented 6 years ago

IMO it is not that much for documentation for the time but more about technical/architectural decisions, to make "good practices" and avoid "code uglification". It should be decoupled from application logic by design (that's exactly my point in the issue you mentioned).

garagatyi commented 6 years ago

If there are no docs in the project about conventions contributors would struggle to figure out how to make a contribution to the project that would be accepted by maintainers. Saying that something should be done in another manner should be supported by the documentation to provide an easier flow of contribution to the project. Especially it affects contributors that didn't spend years on the project and don't know all the implicit rules.

gazarenkov commented 6 years ago

@garagatyi sorry, I do not understand your point, is it about Feature Toggles or something else? Like what "something" should be done in what "another manner" :)

Feel free proposing wording you'd like to add to the project documentation.

garagatyi commented 6 years ago

I mean all the conventions project has, for example, feature branch/feature toggle, property/env vars naming, license headers, formatting, license compliance and everything else that maintainers use to analyze a contribution for any kind of standards compliance.

garagatyi commented 6 years ago

@dneary FYI

gazarenkov commented 6 years ago

@garagatyi well, I think most of the things you listed are somehow (no one said it is perfect though :) ) addressed in the project wiki (except probably mentioning feature branches practice).

Feel free proposing wording you'd like to add to the project documentation.

garagatyi commented 6 years ago

Indeed, https://github.com/eclipse/che/wiki contains some useful information. Thank you, I forgot about the wiki. It is kinda confusing having docs in 3 places:

But what about topic feature branch vs feature toggle, do you think I need to create a separate issue to discuss the topic there?

gazarenkov commented 6 years ago

yes, it would probably be a good idea to describe the problem to solve, initial direction and some practical references and discuss it. I just would not expect a "blitzkrieg", it sounds like a long way to go.

garagatyi commented 6 years ago

I created an issue for the discussion regarding feature toggle technique here.

Closing this issue since it seems other parts are present in the wiki. I'm welcoming other community members to comment or reopen the issue if you think that something related to the topic is still missing.