Skip to content

Simple Project descriptor#25

Closed
jkutner wants to merge 11 commits intomasterfrom
project-descriptor-simple
Closed

Simple Project descriptor#25
jkutner wants to merge 11 commits intomasterfrom
project-descriptor-simple

Conversation

@jkutner
Copy link
Member

@jkutner jkutner commented Sep 26, 2019

jkutner and others added 8 commits July 24, 2019 07:44
Signed-off-by: Joe Kutner <jpkutner@gmail.com>

wip

wip

wip

wip
Signed-off-by: Joe Kutner <jpkutner@gmail.com>
Signed-off-by: Terence Lee <hone02@gmail.com>
Signed-off-by: Terence Lee <hone02@gmail.com>
Signed-off-by: Terence Lee <hone02@gmail.com>
Signed-off-by: Joe Kutner <jpkutner@gmail.com>
Signed-off-by: Joe Kutner <jpkutner@gmail.com>
Signed-off-by: Joe Kutner <jpkutner@gmail.com>
@jkutner jkutner changed the title Project descriptor simple Simple Project descriptor Sep 26, 2019
@jkutner jkutner mentioned this pull request Sep 26, 2019
Signed-off-by: Joe Kutner <jpkutner@gmail.com>
@jkutner
Copy link
Member Author

jkutner commented Oct 4, 2019

Updated based on discussion in working group. Changes include:

  • added value for env vars
  • changed processes.cmd to processes.command and included all other fields from launch.toml
  • Removed stack
  • Removed publish
  • Removed optional
  • Moved license, author, source, etc under [metadata]
  • Added [extensions]

@jkutner
Copy link
Member Author

jkutner commented Oct 4, 2019

There is an unresolved question regarding how to tag multiple [[images]] w/o:

  1. requiring developers to commit a registry URL/host to Git
  2. requiring developers to manually retag the image after building

One of the options, which I'm proposing as a solution, is to have a platform use two value to construct the full image tag: [[images]] id and a new --registry flag on pack build. Thus, you might see a project.toml containing this:

[[images]]
id = "myorg/gateway"

[[images]]
id = "myorg/service1"

A user could then run:

$ pack buildpack myimage --registry gcr.io --publish

Signed-off-by: Joe Kutner <jpkutner@gmail.com>
@jkutner jkutner force-pushed the project-descriptor-simple branch from 90d88e4 to 684f133 Compare October 22, 2019 13:37
@jkutner
Copy link
Member Author

jkutner commented Oct 22, 2019

I've added an example using image id prefix/suffix as discussed.

Signed-off-by: Joe Kutner <jpkutner@gmail.com>
@jkutner
Copy link
Member Author

jkutner commented Oct 30, 2019

@sclevine @nebhale @hone @ekcasey ready for re-review

@jkutner
Copy link
Member Author

jkutner commented Oct 30, 2019

I've moved the metadata keys in to [project] based on the precedent found in pom.xml and package.json.

I've added ref and suffix keys to [[images]] as described in WG. I chose ref because I was afraid tag too strongly referred to a complete tag. Happy to change that though.

exclude = ["<string>"]

[[images]]
ref = "<string>"
Copy link
Member

Choose a reason for hiding this comment

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

Small issue with ref vs tag: only tags are valid in this field, and other kinds of ref are not valid.
E.g., gcr.io/example/myapp@sha256:2342ab... is not valid, because it's not possible to know the digest ahead of time.

Copy link
Member Author

Choose a reason for hiding this comment

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

i'm fine with tag then


```toml
[project]
id = "<string>"
Copy link
Member

Choose a reason for hiding this comment

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

Were we going to replace id/version with ref (or tag, noting my comment below), and then combine it with the individual refs and suffixs?

Copy link
Member Author

Choose a reason for hiding this comment

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

i think i'm fine with that. i'd probably move to make it optional though (which means there's no required id or tag, which might be a problem).

```toml
[project]
id = "io.buildpacks.my-app"
version = "0.1"
Copy link
Member

Choose a reason for hiding this comment

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

Seems unusual to require a version to be checked into a git repo for project.toml to be valid. That breaks certain release strategies.


## Example: Monorepos

The `[[images]]` array of tables allows the buildpack lifecycle to generate more than one image per build. Each table in the array may contain configuration that defines a different image for different parts of the code. For example:
Copy link
Member

Choose a reason for hiding this comment

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

clarify per pack build, not lifecycle build

@hone
Copy link
Member

hone commented Oct 31, 2019

From @jonjohnsonjr, Julia also has a Project.toml.

@jkutner
Copy link
Member Author

jkutner commented Dec 5, 2019

Closing in favor of #32. We'll open a new RFC for [[images]], [[extensions]], buildpacks and other things.

@jkutner jkutner closed this Dec 5, 2019
nebhale added a commit that referenced this pull request Feb 6, 2020
[#43]

Signed-off-by: Ben Hale <bhale@pivotal.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants