eiffel-community / eiffel-repository-template

A template repository to promote similar process and handling in Eiffel Community repositories.
Apache License 2.0
0 stars 7 forks source link

Something to signal the level of maturity of tools is needed #9

Closed sodero closed 2 years ago

sodero commented 4 years ago

Description

Something to signal the level of maturity of tools is needed. As it is now we have a mix of (more or less) abandoned repositories, experimental code and production grade code.

Motivation

Without this distinction it's more difficult than it should be for newcomers to get started. The overall impression of Eiffel suffers.

Exemplification

When deploying RemRem we ran into a number of unexpected problems. Refer to the issues filed in eiffel-remrem-generate and eiffel-remrem-publish.

Benefits

Having information about the status of projects upfront makes it easier for potential users to estimate the effort needed for deployment.

Possible Drawbacks

If we're not careful it might give the wrong impression and make users hesitant to try out, and contribute to, the development of new tools.

sodero commented 4 years ago

Perhaps some form of badge can be used, e.g https://shields.io/

k-hallen-ericsson commented 4 years ago

In the summit we also mentioned life cycle state. Can be mature and ok for production but not maintained anymore. Should we have that dimension too?

sodero commented 4 years ago

I think that dimension could do more harm than good. If people deploy something that is production ready, which is what we want of course, then the 'not maintained' label might lower the chances for contributions to that project. I'm afraid it will evoke very negative connotations.

I think we should distinguish between projects that aren't maintained, but we would like them to be, and projects that aren't maintained and we don't expect (or even want / care) them to ever be maintained again. I don't think it's a good idea with a 'not maintained' label for the first category. Instead of a label for projects in the second category, I think we should consider removing them instead.

k-hallen-ericsson commented 4 years ago

Good point. So focus should be more a scale from experiment/proof of concept to ready for large scale production. @fdegir you had some ideas on existing models that we could use?

fdegir commented 4 years ago

I'm sharing some of the examples from the foundations and communities followed by my thoughts.

I think there needs to be at least 3 stages to highlight important aspects for the projects with associated badges.

Having another stage after incubation (such as graduated) does not seem to be necessary at this point but it can be added later on if deemed necessary.

Another point I want to highlight is about the actual process projects and the community need to follow while proposing a new project or moving across stages. For sandbox, it is simple; the bar to entry could be very low with few points such as

When it comes to moving from Sandbox to Incubation. This could be simple as well but I've noticed it could become tricky as some of the requirements included by other communities could be subjective in some cases. To avoid that, there could be few metrics that could help projects to apply for incubation and get reviewed and promoted.

and so on.

The archived stage is also simple. If the project lead/maintainers think they don't have time and interest to continue with the project, they could first announce this intention on public maillist to see if anyone wants to take over and continue with the project. After certain amount of time (2 weeks eg) if noone steps up, the "committe" can move the project to archived stage.

[0] https://github.com/cncf/toc/tree/master/process#ii-stages---definitions--expectations [1] https://github.com/cdfoundation/toc/blob/master/PROJECT_LIFECYCLE.md#iii-stages---definitions--expectations [2] https://wiki.openstack.org/wiki/Governance/Foundation/OSFProjectConfirmationGuidelines

sodero commented 4 years ago

I think the suggestion of @fdegir is a good one. Don't we need graduated already though? Where would production grade projects that are actively developed end up?

k-hallen-ericsson commented 4 years ago

Let's start from Fatih's proposal. What is most important for us, is it to make the distinction between "we do not give any guarantee that this works" and "we are quite happy with this and it should work fine if you follow the documentation"? Then I think we should start with something simple and not to many stages. Could incubation be graduated instead? If we get more project and activity and we see a need for a middle step we can introduce it.

sodero commented 4 years ago

Agree, renaming incubation to graduated would make this a lot clearer to me. Otherwise I think Fatihs proposal is good.

fdegir commented 4 years ago

ok so i can start a document by copying one of the other communities document and include these three stages

there could be some additional paragraphs to list criterias for moving between different stages so people can comment on them + who does this - eiffel-community-maintainers.

fdegir commented 4 years ago

This issue is partly duplicate of this one: https://github.com/eiffel-community/community/issues/5

fdegir commented 4 years ago

As you've seen, the PR documenting project lifecycle has been merged: https://github.com/eiffel-community/community/pull/48

I generated the badges below on shields.io as a proposal.

Please let me know what you think since the next thing to do is to identify list of Eiffel projects and set their stages - probably all of them will be in sandbox to start with. In addition to that, the Eiffel repository template could be updated to include Sandbox badge by default.

sodero commented 4 years ago

Looks good.

fredjn commented 4 years ago

+1

fdegir commented 3 years ago

thanks for trying this out @t-persson!

@eiffel-community/eiffel-community-maintainers please look at the proposed badges and share your +1/-1 if you haven't done it already.

you can also check the updates @t-persson made to etos and other repos to see how it looks.

we will update the project lifecycle with the usage instructions, ask projects to apply badges, and modify the repository template so new repos get sandbox badge by default.

m-linner-ericsson commented 3 years ago

+1

d-stahl-ericsson commented 3 years ago

+1

m-linner-ericsson commented 3 years ago

I created a pull request to document how to do it in https://github.com/eiffel-community/community/pull/76

henning-roos commented 3 years ago

Is it OK if we close this issue?