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

adds rfc for scaffolding guidelines #1033

Closed
wants to merge 2 commits into
base: master
from

Conversation

Projects
None yet
5 participants
@nellshamrell
Contributor

nellshamrell commented Nov 30, 2017

Signed-off-by: Nell Shamrell nellshamrell@gmail.com

adds rfc for scaffolding guidelines
Signed-off-by: Nell Shamrell <nellshamrell@gmail.com>

@nellshamrell nellshamrell requested a review from habitat-sh/habitat-core-plans-maintainers as a code owner Nov 30, 2017

@thesentinels

This comment has been minimized.

Show comment
Hide comment
@thesentinels

thesentinels Nov 30, 2017

Contributor

Thanks for the pull request! Here is what will happen next:

  1. Your PR will be reviewed by the maintainers
  2. If everything looks good, one of them will approve it, and your PR will be merged.

Thank you for contributing!

Contributor

thesentinels commented Nov 30, 2017

Thanks for the pull request! Here is what will happen next:

  1. Your PR will be reviewed by the maintainers
  2. If everything looks good, one of them will approve it, and your PR will be merged.

Thank you for contributing!

Show outdated Hide outdated _RFCs/0002-scaffolding-rfc.md Outdated
corrects wording around unresolved questions
Signed-off-by: Nell Shamrell <nellshamrell@gmail.com>
@nellshamrell

This comment has been minimized.

Show comment
Hide comment
@nellshamrell

nellshamrell Dec 11, 2017

Contributor

@eeyun - just pushed a change addressing your comment

Contributor

nellshamrell commented Dec 11, 2017

@eeyun - just pushed a change addressing your comment

@stevendanna

@nellshamrell Thanks for taking the time not just to write this RFC but for participating in discussions across a number of PRs on these topics. Such discussions are not always easy, especially when they ride along with other valuable improvements.

I haven't marked "Approve" simply because I haven't used scaffoldings enough to have a strong opinion, but nothing here seems objectionable to me.

I've left a couple of inline comments hat might improve the RFC, but they aren't blocking.

Looking at the history, one of the contentious points appears to be whether a runtime is /required/ for apps such as javascript projects that can be built and later deployed by any HTTP server. For me, this is handled well by:

If an advanced user prefers to use only the packaged application they can override or ignore the runtime functionality - but the default functionality will always include a runtime

This will tip the appeal of scaffoldings toward beginner users, rather than advanced users. It will take additional work to establish documentation and patterns of more advanced uses of scaffolding. We will also need to communicate clearly what Habitat features we do and don't officially support for use with scaffoldings.
This may also require re-working of some of our scaffoldings.

This comment has been minimized.

@stevendanna

stevendanna Dec 13, 2017

Contributor

Since we don't currently have that many scaffoldings:

> ls -ld scaffolding-*/
drwxr-xr-x  4 sdanna  staff  136 Oct 29 11:31 scaffolding-base/
drwxr-xr-x  5 sdanna  staff  170 Dec  6 23:01 scaffolding-go/
drwxr-xr-x  5 sdanna  staff  170 Dec  6 23:01 scaffolding-go17/
drwxr-xr-x  7 sdanna  staff  238 Dec  6 23:01 scaffolding-gradle/
drwxr-xr-x  7 sdanna  staff  238 Dec 11 09:40 scaffolding-node/
drwxr-xr-x  9 sdanna  staff  306 Dec 11 09:40 scaffolding-ruby/

could we list which scaffoldings don't currently meet the standard set by this RFC?

@stevendanna

stevendanna Dec 13, 2017

Contributor

Since we don't currently have that many scaffoldings:

> ls -ld scaffolding-*/
drwxr-xr-x  4 sdanna  staff  136 Oct 29 11:31 scaffolding-base/
drwxr-xr-x  5 sdanna  staff  170 Dec  6 23:01 scaffolding-go/
drwxr-xr-x  5 sdanna  staff  170 Dec  6 23:01 scaffolding-go17/
drwxr-xr-x  7 sdanna  staff  238 Dec  6 23:01 scaffolding-gradle/
drwxr-xr-x  7 sdanna  staff  238 Dec 11 09:40 scaffolding-node/
drwxr-xr-x  9 sdanna  staff  306 Dec 11 09:40 scaffolding-ruby/

could we list which scaffoldings don't currently meet the standard set by this RFC?

# Rationale and alternatives
[alternatives]: #alternatives
I had originally [proposed splitting the node scaffolding](https://github.com/habitat-sh/core-plans/pull/1009). Through vigorous debate and discussion, we determined that splitting may not be necessary - clarifying of the purpose and intended use of scaffolding was. These guidelines should apply to all scaffoldings, not just the node scaffolding.

This comment has been minimized.

@stevendanna

stevendanna Dec 13, 2017

Contributor

I think it would be good RFC form to summarize the reasoning here rather than linking to the pull request. Such a summary might also help refine the core reasoning for the shape of scaffoldings.

@stevendanna

stevendanna Dec 13, 2017

Contributor

I think it would be good RFC form to summarize the reasoning here rather than linking to the pull request. Such a summary might also help refine the core reasoning for the shape of scaffoldings.

Additionally, scaffoldings should not require the use of alpha features - features should be out of alpha and beta to be required by scaffoldings. Although users are welcome to experiment with combining alpha features and scaffolding, they are not officially supported by the core-plans maintainers.
# Reference-level explanation

This comment has been minimized.

@stevendanna

stevendanna Dec 13, 2017

Contributor

I'm trying to think about what I might be looking for out of this RFC if I were to start a new scaffolding. Currently, this section seems to set down 3 requirements:

  • A scaffolding must include an application runtime
  • A scaffolding cannot depend on alpha or beta features
  • A scaffolding must be easy to use (able to package within 1 hour with minimal experience)

The third one is a bit more subjective from an implementors perspective, but does feel useful to include.

I'm wondering: are there any other requirements? What do the existing scaffoldings do that we've found successful enough to standardize.

Put another way, this RFC focuses on the recently contentious behavior, but since this is an RFC that people might look to when implementing scaffoldings, it might be good to also list any other criteria that we generally agree on.

@stevendanna

stevendanna Dec 13, 2017

Contributor

I'm trying to think about what I might be looking for out of this RFC if I were to start a new scaffolding. Currently, this section seems to set down 3 requirements:

  • A scaffolding must include an application runtime
  • A scaffolding cannot depend on alpha or beta features
  • A scaffolding must be easy to use (able to package within 1 hour with minimal experience)

The third one is a bit more subjective from an implementors perspective, but does feel useful to include.

I'm wondering: are there any other requirements? What do the existing scaffoldings do that we've found successful enough to standardize.

Put another way, this RFC focuses on the recently contentious behavior, but since this is an RFC that people might look to when implementing scaffoldings, it might be good to also list any other criteria that we generally agree on.

@johnjelinek

LGTM -- after there are some volunteers to adhere the remaining scaffoldings, I'll Approve.

@nellshamrell

This comment has been minimized.

Show comment
Hide comment
@nellshamrell

nellshamrell Mar 27, 2018

Contributor

Closing this for now due to age, will revisit this when necessary.

Contributor

nellshamrell commented Mar 27, 2018

Closing this for now due to age, will revisit this when necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment