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

Beta release 6.0.x #4721

Merged
merged 233 commits into from
Jan 23, 2020
Merged

Beta release 6.0.x #4721

merged 233 commits into from
Jan 23, 2020

Conversation

clarafu
Copy link
Contributor

@clarafu clarafu commented Nov 6, 2019

This PR contains a number of different features that will be the beta 6.0.x release.

The major features included in this PR are:

Contributor Checklist

Are the following items included as part of this PR? Please delete checkbox items that don't apply.

Reviewer Checklist

This section is intended for the core maintainers only, to track review progress. Please do not
fill out this section.

  • Code reviewed
  • Tests reviewed
  • Documentation reviewed
  • Release notes reviewed
  • PR acceptance performed
  • New config flags added? Ensure that they are added to the BOSH
    and Helm packaging; otherwise, ignored for the integration tests (for example, if they are Garden configs that are not displayed in the --help text).

vito and others added 30 commits May 15, 2019 15:35
Signed-off-by: Alex Suraci <suraci.alex@gmail.com>
Co-authored-by: Joshua Winters <jwinters@pivotal.io>
Signed-off-by: Alex Suraci <suraci.alex@gmail.com>
Co-authored-by: Joshua Winters <jwinters@pivotal.io>
Signed-off-by: Alex Suraci <suraci.alex@gmail.com>
Co-authored-by: Joshua Winters <jwinters@pivotal.io>
the one that's "failing" is actually failing because the algorithm
successfully computed inputs, and the test asserts that it can't. but
that's kind of suspect - it's seems possible that I was never able to
get the old algorithm to compute a result in the first place so that I
could verify it, and I just assumed it was correct and had the test
assert against it. (all regression tests are performance, where we
initially do not expect a particular result, only that it succeeds at
all.)

Signed-off-by: Alex Suraci <suraci.alex@gmail.com>
Co-authored-by: Joshua Winters <jwinters@pivotal.io>
Signed-off-by: Alex Suraci <suraci.alex@gmail.com>
Co-authored-by: Joshua Winters <jwinters@pivotal.io>
we still keep an interval for each pipeline, but now it will spawn of
separate go routines for each job and have individual scheduling for
each job.

Signed-off-by: Clara Fu <cfu@pivotal.io>
Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Mark Huang <mhuang@pivotal.io>
add ordering of passed jobs
drop cache index on pipelines
add first occurrence to build inputs

Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Mark Huang <mhuang@pivotal.io>
indepdendent build inputs are removed and replaced with partially filled
out next build inputs. Next build inputs can also contain resolve
errors, which will be shown to the users as to why the input cannot be
resolved. The algorithm will also stop at the first input that it is
unable to resolve. Inputmapper and transformer packages were removed and
condensed into the algorithm.

[#3602]

Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Joshua Winters <jwinters@pivotal.io>
Signed-off-by: Clara Fu <cfu@pivotal.io>
make AlgorithInput a pointer because sometimes it will be nil when the
input failed to resolve or did not resolve yet.

Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Rui Yang <ryang@pivotal.io>
Also deterministically order the build outputs

Signed-off-by: Clara Fu <cfu@pivotal.io>
Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
this is useful for branch pipelines where we really don't care about the
version number

Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
we really need to sync up these ci folders :/

Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
...otherwise this fails for any existing data

Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
not sure if we want to do it this way yet or if we want to actually set
appropriate data for existing records

This reverts commit 17e281d.

Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
...also rename the input back to linux-rc; input mapping should be used
when a more specific input is to be given. for this task it doesn't
really matter if it's ubuntu.

Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Alex Suraci <suraci.alex@gmail.com>
By resolving the pinned version to IDs earlier, we can run those queries
only once before the algorithm rather than having to run the query
multiple times if we put it in the algorithm.

[#3602]

Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Rui Yang <ryang@pivotal.io>
taylorsilva and others added 20 commits January 22, 2020 12:23
I forgot to update this test and then it failed, like a good test

Signed-off-by: Taylor Silva <tsilva@pivotal.io>
I was looking for usages of time.Duration and found this variable.
Checked to see where it was not being used and found out it was being used
at all.

Signed-off-by: Taylor Silva <tsilva@pivotal.io>
- Consolidated the DB interface to three functions: SetWall, GetWall,
Clear. Set and Get take in and return atc.Wall
- Renamed atc.Wall.ExpiresIn to `TTL` which is readily recognized across
the industry
- Removed expiry API endpoints
- Removed `wall_message` from info endpoint
- Changed `TTL` in `atc.Wall` to time.Duration

Signed-off-by: Taylor Silva <tsilva@pivotal.io>
Signed-off-by: Taylor Silva <tsilva@pivotal.io>
Most of the specs in the tests had 4-6 asserts. This refactor reduces
the number of asserts to 1-3 per test. Makes the tests more unit-y and
(hopefully) individually easier to reason about without reducing
coverage.

Signed-off-by: Taylor Silva <tsilva@pivotal.io>
Signed-off-by: Taylor Silva <tsilva@pivotal.io>
the tracing package is responsible for providing a thin wrapper on top
of opentelemetry[1].

by having this wrapper, we're able to protect ourselves from the
underlying changes that `opentelemetry` has been going through as it
goes through the process of getting ready for a final release.

the package is meant to be used in a two step fashion:

1. an exporter is configured (initializing the SDK to not use a noop
   tracer) through `tracing.ConfigureTracer`

2. spans are then created
  - tracing.StartSpan() & span.End()

so that code can be instrumented in no more than ~3 lines of code.

[1]: https://opentelemetry.io/

Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
this commit makes the tracing functionality available by allowing operators to
specify `--tracing-*` flags to the `concourse web` command to leverage the
tracing infrastructure put in place.

with it, support for submitting the traces to a jaeger collector is configured
like so:

	--tracing-jaeger-endpoint=<>
	--tracing-jaeger-service=<>

and, stackdriver:

	--tracing-stackdriver-projectid=<>

ps.: these can also be configured via environment variables
pps.: only 1 trace exporter can be initialized

refs:
  - jaeger: https://www.jaegertracing.io/
  - stackdriver trace: https://cloud.google.com/trace/

Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
building upon the tracing package, this commit adds tracepoints to the
steps that end up in the execution of an executable.

support for other steps that are particular to flow control can be added
later, using the same constructs applied here.

ps.: these tracepoints are not completely zero-cost - a
`map[string]string` ends up being allocated to pass parameters to the
spans, although in the case of no exporter being configured, no span
being actually submitted / created.

Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
adding a tracepoint right after ATC acquires the lock to track that
build, we're able to capture the duration of the entiire build as seen
by this ATC who's keeping track of it.

as the context propagates further down to other steps, we can correlate
the the entire build with its steps.

ps.: this commit DOES NOT address the case of an ATC being phased out in
the middle of the build tracking and having the work picked up by
another installation (although this should be possible if we own our
traceIDs).

Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
as a trace collector needs to be set up for one to consume the distr
tracing functionality, here I add a docker-compose override[1] that's
supposed to be merged together with our base `docker-compose.yml` to add
`jaeger` and tie `web` with it, so that one can visualize the traces in
the Jaeger UI.

[1]: https://docs.docker.com/compose/extends/

Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
the last version of `lib/pq` is actually 1.3.0 (not 1.2.0)

Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
when wrapping the old `Run` methods, I end up making the comments
pertaining to the private methods, not making them visible anymore.

this commit reverts that

Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
¯\_(ツ)_/¯

Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
this way, we can more easily filter down the builds by their ids (which
are globally unique), rather than having to go with the combination of
team, pipeline, and build name.

Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
whops

Signed-off-by: Ciro S. Costa <cscosta@pivotal.io>
Signed-off-by: Clara Fu <cfu@pivotal.io>
Co-authored-by: Taylor Silva <tsilva@pivotal.io>
@clarafu clarafu marked this pull request as ready for review January 23, 2020 18:42
@clarafu clarafu requested review from a team January 23, 2020 18:42
Copy link
Member

@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.

All of the work on this branch has been accepted incrementally on the 6.0 branch, so there's nothing to additionally review here. 👍 SHIPIT :shipit:

@clarafu clarafu merged commit e3a5020 into master Jan 23, 2020
@vito vito deleted the release/6.0.x branch January 23, 2020 20:12
@kcmannem
Copy link
Member

reviewed it all, LGTM

@kcmannem
Copy link
Member

idk what this is https://github.com/concourse/concourse/blob/master/builds.sql

@clarafu clarafu added the release/undocumented This didn't warrant being documented or put in release notes. label Feb 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release/undocumented This didn't warrant being documented or put in release notes.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants