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

RFC: Projects #32

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

RFC: Projects #32

wants to merge 3 commits into from

Conversation

vito
Copy link
Member

@vito vito commented Jul 16, 2019

Rendered

Please comment on individual lines, not at the top-level.

TODO:

  • flesh out cross-pipeline passed constraints - it's only mentioned in passing

vito added 2 commits July 16, 2019 11:28
Signed-off-by: Alex Suraci <suraci.alex@gmail.com>
Signed-off-by: Alex Suraci <suraci.alex@gmail.com>
032-projects/proposal.md Show resolved Hide resolved
032-projects/proposal.md Show resolved Hide resolved
```yaml
plan:
- task: foo
file: project-name/tasks/foo.yml

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd suggest the taskdir style: task: foo would be interpreted by default as project-name/tasks/foo/task.yml.

The basic reasons are that tasks can grow large and complex in their own right, so establishing subdirectories in advance saves messy top-level task directories. It's also easier to do things in bulk (eg, use xargs to update multiple task YAMLs simultaneously).

Signed-off-by: Alex Suraci <suraci.alex@gmail.com>
@vito vito changed the title RFC: projects RFC: Projects Jun 10, 2020
Copy link
Member Author

@vito vito left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Following the discussion in #31 (comment), I've added an open question: "Can Projects replace Teams?". Really interested in hearing feedback on this idea. 🙂

@@ -0,0 +1,330 @@
# Summary

A Concourse project is a namespace for resources, tasks, and pipelines. Projects are bootstrapped from a single resource definition and a build plan which executes when new versions of the resource are found. Projects bridge the gap between small-scale and large-scale CI workflows, helping to smoothen Concourse's learning curve.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I usually consider the phrase "project" to be as ambiguous as can be; it gives a vague sense of a user's underlying goals, though offers no indication of what they could be, and in many places and programs is used only to convey a sense that you can draw a clean boundary around a group of resources.

Accordingly - could you consider renaming the "project" idea, using "scope" or "namespace" (as you describe in this line). Perhaps "codebase" could do also, if they are usually to be tied to a git repository like the example suggests.

"Scope", "Namespace", "Space", "Codebase"... - also clearly indicate clean boundaries around your included resources and jobs, but they don't imply as much of an underlying goal as "project" seems to, which leaves room for them to change into a more flexible programming model.

As Naming is a hard problem, please use care in choosing a good, clearly-explained name for the ideas that this RFC introduces. As you say, this will likely be the opening concept by which new users learn the workings of Concourse; making a solid choice here could set you apart from similar programs, in terms of how you (and your users) organize mechanical jobs in general.

Nice proposal; much obliged.

@@ -255,6 +255,59 @@ Instead, these should be treated as two separate inputs. Your product code is an
TODO: finish this thought - wrap it up by suggesting that


# Open Questions

## Can Projects replace Teams?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't? 😄

We use the Teams concept to map onto our product teams. The term "project" is considered a legacy, non-agile term. As such, the first question replacing Teams by Projects would raise in our organization is: "It no longer supports agile organizations?" (I know, I know... still...) We barely convinced people that agile is good and barely got people used to product teams, etc.

I was kinda hoping Projects would become an organizational tool under Teams for housing related Pipelines. I.e. you'd have a Team like "Tasty Treats app" which could have Projects like "Strawberry Icecream", "Bubble Tea" and "Apple Pie" with Pipelines underneath those related to the various tasks and builds that need doing there.

But feel free to ignore my monologue. Just dropping my 2 cents. 😄

@clarafu clarafu removed their assignment May 16, 2022
@c4lliope
Copy link

I had a go renaming the ideas in your proposal as "pipeline plan",
each one undergoing a "build phase".
The idea really gains some legs, because the only required keys
inside your .yaml are name: and plan:.

Here is my copy rendered.
I keep all logical ideas in place and only change the proposal's project labels.

@fshuva
Copy link

fshuva commented Jan 21, 2023

Hi,
I was wondering if there are any plans to add variables in the set_pipeline name. If someone wants to use dynamically named pipelines, the only way to do it currently is using a shell script with fly. If we had vars support in the pipeline name, it would be easier to create dynamic pipelines based on passed variables.

@dR3b
Copy link

dR3b commented Jul 28, 2023

hi@all Are you still working on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
10 participants