#66 Add uncontrolled-builds
Merged 4 years ago by ralph. Opened 4 years ago by ralph.

@@ -0,0 +1,19 @@ 

+ {

+     "contact": {

+         "name": "Beefy Miracle",

+         "team": "Beefy Miracle Team",

+         "docs": "https://beefymiracle.org/history.html",

+         "email": "wwoods@fedoraproject.org"

+     },

+     "artifact": {

+         "type": "uncontrolled-build",

+         "id": "sha256@745d58b54b4f800cd75a0c507bb3f2f7ff98045d62b4c3bcd4a8d04788aa2a52",

+         "url": "https://wwoods.fedorapeople.org/hot-dog/plymouth-theme-hot-dog-0.4-1.fc16.noarch.rpm",

+         "mime_type": "application/x-rpm",

+         "descriptor": "plymouth-theme-hot-dog-0.4-1.fc16",

+         "name": "plymouth-theme-hot-dog",

+         "issuer": "wwoods"

+     },

+     "generated_at": "2018-05-10 08:58:31.222602",

+     "version": "0.2.2"

+ }

@@ -0,0 +1,42 @@ 

+ {

+   "contact": {

+     "name": "Wizard Zone CI",

+     "team": "Wizard Zone",

+     "docs": "http://wizard.zone/",

+     "email": "help@wizard.zone"

+   },

+   "run": {

+     "url": "http://wizard.zone/job/hot-dog/1337",

+     "log": "http://wizard.zone/job/hot-dog/1337/console"

+   },

+   "artifact": {

+     "type": "uncontrolled-build",

+     "id": "sha256@745d58b54b4f800cd75a0c507bb3f2f7ff98045d62b4c3bcd4a8d04788aa2a52",

+     "url": "https://wwoods.fedorapeople.org/hot-dog/plymouth-theme-hot-dog-0.4-1.fc16.noarch.rpm",

+     "mime_type": "application/x-rpm",

+     "descriptor": "plymouth-theme-hot-dog-0.4-1.fc16",

+     "name": "plymouth-theme-hot-dog",

+     "issuer": "wwoods"

+   },

+   "test": {

+     "category": "functional",

+     "docs": "https://wizard.zone/docs/hot-dog-test",

+     "label": [ "fast", "aarch64" ],

+     "namespace": "wizard.ci",

+     "note": "The mustard indicates progress.",

+     "result": "failed",

+     "type": "tier1"

+   },

+   "pipeline": {

+       "id": "087a46d8-0398-49cc-8d8c-69498f6a5719",

+       "name": "Hot Dog Pipeline"

+   },

+   "system":

+      [{

+         "os": "fedora-16-x86_64",

+         "architecture": "x86_64",

+         "provider": "openstack"

+      }],

+   "generated_at": "2018-05-10 08:58:31.222602",

+   "version": "0.2.1"

+ }

@@ -0,0 +1,24 @@ 

+ $id: https://pagure.io/fedora-ci/messages/uncontrolled-build.build.complete

+ $schema: http://json-schema.org/draft-07/schema#

+ 

+ description:

+     Build of an uncontrolled uncontrolled artifact is complete and is

+     published to some accessible url.

+ 

+ properties:

+     contact:

+         $ref: contact.json

+     artifact:

+         $ref: uncontrolled-build.json

+     generated_at:

+         $ref: common.json#properties/generated_at

+     version:

+         $ref: common.json#properties/version

+ 

+ required:

+     - contact

+     - artifact

+     - generated_at

+     - version

+ 

+ type: object

@@ -0,0 +1,41 @@ 

+ $id: https://pagure.io/fedora-ci/messages/uncontrolled-build.test.complete

+ $schema: http://json-schema.org/draft-07/schema#

+ 

+ description:

+     Testing of an uncontrolled, uncontrolled build has been completed.

+ 

+ properties:

+     contact:

+         $ref: contact.json

+     run:

+         $ref: run.json

+     artifact:

+         $ref: uncontrolled-build.json

+     pipeline:

+         $ref: pipeline.json

+     test:

+         allOf:

+           - $ref: test-common.json

+           - $ref: test-complete.json

+     notification:

+         $ref: notification.json

+     system:

+         type: array

+         items:

+             $ref: system.json

+     generated_at:

+         $ref: common.json#properties/generated_at

+     version:

+         $ref: common.json#properties/version

+ 

+ required:

+     - contact

+     - run

+     - artifact

+     - pipeline

+     - test

+     - system

+     - generated_at

+     - version

+ 

+ type: object

@@ -0,0 +1,76 @@ 

+ $id: https://pagure.io/fedora-ci/messages/uncontrolled-build

+ $schema: http://json-schema.org/draft-07/schema#

+ 

+ description:

+     Details about an uncontrolled build.

+ 

+     An "uncontrolled" build is a build which is done in some uncontrolled

+     location (as opposed to in koji or another well known build

+     system).  A challenge with these builds is that they do not

+     have a higher level identifier (like a build id) that can be

+     guaranteed unique by some other system.  Instead, we will use

+     the sha256 digest of the content itself as a unique identifier.

+ 

+ properties:

+     type:

+         description:

+             Artifact type, in this case 'uncontrolled-build' always.

+         enum:

+             - uncontrolled-build

+         type: string

+     id:

+         description:

+             The sha256 digest of the content, prefixed with 'sha256@'

+         examples:

+             - sha256@ec5bfaa77f60861428ecf8db9b87f7e160f11e0bb97dfc8c0a77bdaf74b33d6b

+         type: string

+         minLength: 71

+         maxLength: 71

+     mime_type:

+         description:

+             A mime type of the artifact.

+         examples:

+             - application/x-rpm

+             - application/tar+gzip

+             - application/vnd.docker.distribution.manifest.list.v2+json

+     url:

+         description:

+           An URL where the artifact can be obtained

+         examples:

+             - https://wwoods.fedorapeople.org/hot-dog/plymouth-theme-hot-dog-0.4-1.fc16.noarch.rpm

+             - https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz

+         type: string

+         format: uri

+     descriptor:

+         description:

+             A human-readable identifier for the artifact.

+         examples:

+             - plymouth-theme-hot-dog-0.4-1.fc16

+             - openshift-origin-client-tools-v3.11.0-0cbc58b

+         type: string

+     name:

+         description:

+             Name of the component in question.

+         examples:

+             - plymouth-theme-hot-dog

+             - openshift-origin-client-tools

+         type: string

+     issuer:

+         description:

+             Username responsible for producing the artifact.

+         examples:

+             - ovasik

+         type: string

+     source:

+         description:

+             A link to a scm repository with a reference, delimited with the '#' sign.

+         examples:

+             - git+https://github.com/openshift/origin#271d61c

+         type: string

+ 

+ required:

+     - type

+     - id

+     - url

+ 

+ type: object

This is for #64. For some teams, we need a way to represent "generic" or
uncontrolled pieces of software that get built and produced.

Metadata Update from @mvadkert:
- Pull-request tagged with: review-needed

4 years ago

@odockal, @okotek - how does this look for a start?

rebased onto 8a5854c64a46e127ea99054293a2711db2f6ba3e

4 years ago

2 new commits added

  • Add test.complete examples.
  • Add an example for an ad-hoc build.
4 years ago

Can we use properties from other artifacts to unify the language a bit? For example, can we use "name" in this case?

We would also use something like "scm" property with properties like { "type": "git", "url": "http://git.....git", "revision": "origin/7.3.0" }

For our purposes, we are able to construct a unique identifier. Can this one be less strict please? A property with checksum(s) would be also useful.

Yes, that works for me. Will change!

Ah, I think I need the identifier to be unique globally - not just in your systems.

This way, a third party system (one of my own) can refer to your results without colliding with those from any other ad hoc build.

3 new commits added

  • Add a source properties, for scm.
  • Not necessarily tested.
  • Rename component as name.
4 years ago

I tried adding a source one just now in 8f540fa which I made into a single string in order to mimic what is done int he rpm-build artifact type. WDYT?

Thanks, LGTM, I have no other suggestions.

I agree with the definition of the artifact. Mandatory fields are just three so it is general enough for any need and optional fields could be used to specify the object well if needed.

What I am not pretty sure about the name "ad-hoc-build". It is evoking that something was built in an adjusted time manner. Not a place (different build system) which is used in description and what would make more sense to me. But I am not opposing its usage, just name does not sound right to me. I do no have better suggestion, though...

Unless you want to change the name, I am giving +1. Nice work.

Thanks. You're right that the name incorrectly ascribes some temporal meaning to the build. Will rename it, but no good ideas yet. Will think.

Nice work @ralph !

Considering that a developer machine is out of sight of anyone that could consume the build it creates, in addition to the developer itself, I have some suggestion:

  • nest build
  • mucky build
  • grimy build
  • stained build

how's that? :)

The ancient Greeks were well aware that a paradox can take us outside our usual way of thinking. They combined the prefix para- ("beyond" or "outside of") with the verb dokein ("to think"), forming paradoxos, an adjective meaning "contrary to expectation."

paradox build
para build

A couple of options how we can look at THE build itself:
Made of one piece
- elementary, basic, fundamental, primary (I do not like these), maybe base-build?
- one-build, any-build

From what it is made of:
- source-build (not exact, but general enough)

What it represents, like elementary whole piece of software that can live by itself
- individual, distinctive, solid

Going further with wording basic, fundamental, source - the most simple piece of software is artifact, so 'artifact-build'?

OK - this has languished long enough.

I have renamed ad-hoc-build to uncontrolled-build. Thanks everyone for the ideas.

Any objections before we merge this? It is blocking #65 which is blocking other work.

1 new commit added

  • Rename ad-hoc build to uncontrolled build.
4 years ago

Fair enough! I am good to go with uncontrolled-build.

rebased onto b07c3b9

4 years ago

Pull-Request has been merged by ralph

4 years ago