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

need to specify box versions #16

Open
aspiers opened this issue Nov 25, 2014 · 9 comments
Open

need to specify box versions #16

aspiers opened this issue Nov 25, 2014 · 9 comments

Comments

@aspiers
Copy link
Contributor

aspiers commented Nov 25, 2014

A given revision of this repository can only be guaranteed to work with versions of boxes which it has been tested with. For example Vagrantfile patches the admin node, but a newer box may already have the same patch applied. Or in the case of d296e01, the Vagrantfile reverted a commit which was present in newer boxes but not in the older boxes which https://vagrantcloud.com/suse/ points to at the time of writing.

So success depends to some extent on whether the boxes are obtained from https://vagrantcloud.com/suse/ or from internal builds. The correct solution to this is probably a combination of specifying version contraints in the Vagrantfile where appropriate, and using a new git branch to track which commits in this repo have been tested with the boxes pointed to by https://vagrantcloud.com/suse/.

aspiers referenced this issue Nov 25, 2014
crowbar/barclamp-provisioner#351 breaks the
detection of availability of HAE repos when using the DEPS ISO.
@aspiers
Copy link
Contributor Author

aspiers commented Nov 25, 2014

So it's clear we need at least two branches:

  • a branch to track what works with the latest boxes in Vagrant Cloud
  • a branch to track latest development changes, tested against boxes built in IBS

Since the goal of this repo is to work for anyone external to SUSE, the branch which gets checked out by default should be the Vagrant Cloud one, which will usually lag behind the IBS branch. So either we call this master, and then have a next or IBS branch for newer changes, or we change the default github branch to be vagrantcloud, and then use master (or next or IBS) for newer changes. However unfortunately changing the default github branch for the repo also affects

This runs the risk of users spotting an issue in the older branch and not noticing that it has already been fixed in the newer branch. I guess a CONTRIBUTING.md would go some way towards solving this. @vuntz what approach do you think is best here?

@aspiers
Copy link
Contributor Author

aspiers commented Dec 3, 2014

@vuntz don't forget to include this in your review work ;-)

@aspiers
Copy link
Contributor Author

aspiers commented Dec 18, 2014

@vuntz
Copy link
Member

vuntz commented Dec 19, 2014

IMHO, master should be what's going to be used without IBS access -- because that's what you get by default when you do a git clone. If it makes life harder for developers, then so be it; the whole goal of this is to make life easier for people who want to play with SUSE Cloud.

@aspiers
Copy link
Contributor Author

aspiers commented Dec 19, 2014

because that's what you get by default when you do a git clone

No it isn't ;-) You currently get the vagrantcloud branch.

If it makes life harder for developers, then so be it; the whole goal of this is to make life easier for people who want to play with SUSE Cloud.

Totally agree. But don't forget we can use github's feature for changing the default branch.

@aspiers aspiers mentioned this issue Jan 5, 2015
@aspiers
Copy link
Contributor Author

aspiers commented May 11, 2015

Vagrant Cloud has been moved into Atlas, so we should rename accordingly. So I think these are the options:

Stable, public, default branch for use with Atlas boxes Development branch for use with unpublished IBS boxes
master next
master IBS
atlas master
atlas next
atlas IBS

I think I prefer the stable branch to be atlas because it's more explicit. Then maybe we should stick with master for the development branch simply because that's the convention in the git world. Having said that, this doesn't take into account Cloud 4/5/6 etc., nor the non-Vagrant appliance branches, so this needs more thought.

@aspiers
Copy link
Contributor Author

aspiers commented May 26, 2015

I've thought about this (quite a lot) more. At first I was thinking that every release branch would need a corresponding branch for the appliance version, but I since realised that is ugly and causes quite a lot of replication violating DRY. Instead we can avoid it by having separate overlay hierarchies for Vagrant-specific and appliance-specific files, which the corresponding BS projects download via tar_scm in addition to the base appliance filesystem, and the corresponding .kiwi file then layers over the base.

@aspiers
Copy link
Contributor Author

aspiers commented Feb 27, 2017

Status update: I made some progress on this at SUSEcon, by writing a script to auto-import much of @vuntz hand-crafted hacks from OBS back into git. However the cloud7 and master branches are currently wildly diverged, and cloud6 is missing altogether, so still some work to go.

@aspiers
Copy link
Contributor Author

aspiers commented Oct 26, 2017

Apparently @vuntz reconverged the vagrant and appliance versions, so apparently we no longer need separate versions for each. Things like how many interfaces to configure get dynamically determined:

https://github.com/SUSE-Cloud/suse-cloud-vagrant/pull/23/files#diff-be0c3133de660546bca8bf3af5dd4274R90

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

No branches or pull requests

2 participants