[RELENG-91] Create job to build dist of MR + unmanaged project Created: 12/Apr/18  Updated: 22/Nov/19  Resolved: 22/Nov/19

Status: Resolved
Project: releng
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Medium
Reporter: Daniel Farrell Assignee: Luis Gomez
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Link: Managed release tooling

 Description   

Luis has idea to make job parallel to autorelease (which will only build managed projects) that also adds some project, like an unmanaged project. This job could run all the time, like autorelease, to give feedback. It will give unmanaged projects feedback about their snapshot integration with managed projects. The job would just add the unmanaged project's snapshot artifact to the managed distro and serve up a resulting distro for projects to test. There would not be verifications on the RelMang side to take care of, it's up to the project to check if the resulting distro works.



 Comments   
Comment by Luis Gomez [ 12/Apr/18 ]

This job can use Managed distribution SNAPSHOT or Release, depending on whether we recommend Unmanaged projects to develop new code on Managed SNAPSHOT or Release. Lets see this in detail:

1) Unmanaged projects to develop on managed SNAPSHOT:

  • This means tight SNAPSHOT integration between managed and unmanaged during release cycle: unmanaged projects will suffer same turbulences as managed but after managed releases, unmanaged can release almost immediately after as there is no need of additional integration time.

The workflow could be something like this:

  • Unmanaged master branch will be based on managed master branch.
  • Unmanaged projects will cut stable branch (e.g. stable/fluorine) before they produce a major release based on Managed stable release (e.g. Fluorine or Fluorine SR1).
  • Unmanaged stable branch (e.g. stable/fluorine) will be based on Managed stable branch (e.g. stable/fluorine). SR creation is optional for Unmanaged projects.

2) Unmanaged projects to develop on managed Release:

  • This means release integration between managed and unmanaged during release cycle: unmanaged projects will develop on stable code but they will need additional integration time between managed release and unmanaged release.

The workflow could be something like this:

  • Unmanaged master branch will be based on latest stable release (e.g. Oxygen SR1 -> SR2 -> Fluorine).
  • Unmanaged projects will need an integration window by the end of release cycle to test major Managed release update (e.g. Oxygen SR3 -> Fluorine)
  • Unmanaged projects will cut stable branch (e.g. stable/fluorine) before they produce a major release based on Managed stable release (e.g. Fluorine or Fluorine SR1).
  • Unmanaged stable branch (e.g. stable/fluorine) will be based on Managed stable release (e.g. Fluorine SR1). SR creation is optional for Unmanaged projects.

What should we recommend 1) or 2)

Comment by Sam Hague [ 13/Apr/18 ]

For 2, could the UM project work against Fluorine much earlier? I would think we need a good release earlier in our cycle. Or do we think that release is going to be bad. In which case they really need to be building against snapshot's until the MR becomes stable?

I am thinking we need both 1 and 2 depending on what the UM's want to do and how quickly we can build a stable, current MR. I could see some more active UM's wanting to be closer to MR and I could see some not doing the work until later in the cycle so they would just keep working against a previous MR. If they want to make it into the release they need to transition to something more recent so they would switch to 1.

Comment by Luis Gomez [ 13/Apr/18 ]

I would like to avoid building full distribution + verification for both scenarios 1) and 2) so what if UM projects can use both but:

  • Full distribution build + verification will be done for scenario 1) as this facilitates the UM project integration with MR.
  • In case UM project prefers 2) and also wants to be released within the full distribution, we recommend the project to switch to 1) one month before MR produces a major releases.
  • For CSIT UM projects can use local distribution or full distribution if they opt for 1) and local distribution or MR release distribution if they pick 2).
Comment by Jamo Luhrsen [ 13/Apr/18 ]

This is very confusing to me for some reason.

I'm not sure how UM projects consuming the release of Managed projects really works. Doesn't that mean there
will be an entirely different release/distribution that we put out every release cycle? As an example, let's assume
Fluorine is released and we start Neon. The UM projects will be working and basing their projects during the Neon
cycle on Fluorine MR artifacts. Then when we get to the end of Neon and do our MR, we also have to do an UM
release which is based on Fluorine? I'm obviously confused...

But, if I'm not confused, then I think I would prefer the case where we just do 1) and UM projects need to build
and develop based on the SNAPSHOT artifacts. At the end of the release all the projects that are building ok,
make the release. Otherwise they are out. that is the simple way we've described it before. How these projects
build is all we are talking about in this JIRA right? sorry if this is not helping the conversation.

Comment by Luis Gomez [ 15/Apr/18 ]

Right, I think ultimately we want UM projects to do 1) IF they want to be released in the full distribution, otherwise they can do whatever they want. In general there will be 2 jobs for UM Continuous integration:

  • CSIT using repo-url parameter will allow UM projects to run CSIT regardless on how they base their code.
  • Full distribution build and verification for UM projects interested in being released in the full distribution.
Comment by Sam Hague [ 15/Apr/18 ]

No, the UM job should already be building against Fluorine right? Just happens they don't update to Neon. But the key here - is they are not in a MR - they are still on Fluorine and they really don't have a release. They are simply using the existing job to ensure their stuff builds.

Comment by Daniel Farrell [ 18/Apr/18 ]

+1

I think how we have it written is something like "they have to be snapshot integrated by <date>, building with the MR projects".

I think the idea for this Jira is just a job that builds MR + 1 UM project (or set?) to give feedback about their integration.

Comment by Sam Hague [ 18/Apr/18 ]

Agreed, that is how I interpreted this jira - how does a UM project verify it works with Managed so that it could eventually be included, or just give the UM an idea if it works. The UM could be a set as in if that UM has other dependencies that is wants to know also work. But the idea is we provide a basic framework for the UM and they add to it if needed - but the UM owns this work.

Comment by Luis Gomez [ 22/Nov/19 ]

I think this wad fixed in Flourine release.

Generated at Wed Feb 07 20:37:28 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.