19:00:11 #startmeeting refstack 19:00:11 Meeting started Tue May 31 19:00:11 2016 UTC and is due to finish in 60 minutes. The chair is catherineD. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:13 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 19:00:15 The meeting name has been set to 'refstack' 19:00:38 Roll call 19:01:17 o/ 19:01:19 o/ 19:02:01 #link meeting agenda and notes, please feel free to add items https://etherpad.openstack.org/p/refstack-meeting-16-05-31 19:02:33 Let's start 19:02:52 #topic Add preliminary support for schema version 1.5 ( https://review.openstack.org/#/c/319057/ ) 19:03:44 So for this time we will just update the website by creating tag while we deciding on refstack branching 19:03:59 I will create a tag today 19:04:05 o/ 19:04:20 sslypushenko: Hi 19:04:49 Meeting agenda https://etherpad.openstack.org/p/refstack-meeting-16-05-31 19:05:00 Thx! 19:05:18 while we are on this topic let's discuss topic #5 19:05:32 #topic RefStack branches decision for refstack.openstack.org site 19:06:33 As we discussed last time, we want to investigate how other OpenStack website uses branches 19:06:36 we need some branching model.. it is pretty clear 19:07:16 seems like OpenStack document is hosting from master 19:07:29 #link OpenStack document published only from the master branch http://docs.openstack.org/contributor-guide/docs-builds.html https://github.com/openstack/openstack-doc-tools ) 19:07:35 Most projects don't branch 19:07:47 mainly it is because we have some functionality, witch, for example app-catalog does not have 19:07:56 so are App-catalog and Storyboard 19:08:24 it is really strange that storyboard publishes from aster 19:08:28 *master 19:08:39 sslypushenko: ++ ... especially the UI ... we do not want to publish the UI prematurely 19:10:03 yeap.... 19:10:07 so our UI code (like https://review.openstack.org/#/c/318997/ ) will merge to refstack master but we may not want to expose that to the user yet 19:10:33 it should be possible to develop big features without publishing it 19:11:16 sslypushenko: yea and at the same time support publishing small update like supporing new DefCore schema to the website 19:11:44 so, we need branches definately 19:11:51 I'd like to see a focus on core features without a distraction on side features 19:12:13 Otherwise it's a glorified fork 19:12:14 hogepodge: it is the core feature to create vendor 19:12:49 hogepodge: anyway, it should be possible to deliver feature in a few patches, not in one god-like-patch 19:13:25 the other options is to cherry pick patches ... but I see that would be harder 19:13:41 catherineD: yeap 19:13:53 sslypushenko: we can develop in branches and merge features to master. antoher model will not be suitable due publishing from master 19:14:14 offering vendor and product creation is the main feature we are discussing ... 19:14:29 andrey-mp: this workflow is not usual for openstack projects... 19:15:07 sslypushenko: yes :) 19:16:00 I think we can setup puppet-refstack to publish latest commit from latest non-master branch 19:16:32 sslypushenko: so we create a production branch? 19:16:35 feature branches seem to be relatively in use in the community: http://docs.openstack.org/infra/manual/drivers.html#feature-branches 19:16:40 some think like we will publish branch with name 2016.06 - and it will be published automatically 19:17:08 sslypushenko: right now it takes latest tag as I remember 19:17:22 catherineD: it looks like production branch is not aslo the best solution 19:17:45 andrey-mp: yeap... it should work like tags 19:18:01 I guarantee the branches will drift and this will be a huge headache, especially as non core work is developed on branches 19:18:19 but we can cherrypick some commits into it, if necessary 19:18:46 hogepodge: non-cores will work with master 19:18:59 so it should not be a problemm 19:19:27 so we will develop new features in a branch ? 19:19:28 we need branches only for delivering 19:19:40 catherineD: nope... 19:20:00 sslypushenko: could you please describe .. 19:20:08 Ok, for manging deployed should be OK 19:20:11 I suggest to work branches like advance tag 19:20:18 Just watch out for scope creep 19:20:41 sslypushenko: create tag by cherry picking? 19:20:44 at some checkpoint we create a branch with consistent functionality 19:20:52 Feature branches will cause heartache 19:20:57 for example 2016.05 19:21:05 hogepodge: +1 19:21:29 sslypushenko: I follow you ... so we create a brach 2016.05 ... what is next ? 19:21:31 catherineD: so we will publish 2016.05 version of refstack 19:21:45 than we can continue develop in master 19:22:07 Thanks for clarifying for me 19:22:14 if it is necessary, we can cherrypick something in to 2016.05 19:22:33 but we still work only with master 19:22:52 when we need publish new version of web site 19:23:09 ww will create branch 2016.09 19:23:26 why not just one branch "prod" or something, then just merge master into it occasionally 19:23:37 and puppet will publish the newer version 19:23:55 pvaneck: I like the idea of prod branch 19:23:58 pvaneck: it will take to much for support 19:24:43 The only thing I see that may need update for the product is schema update 19:25:11 when we create a new branch, do we delete the previous? 19:25:14 not all patches can be applyed in random order 19:25:30 pvaneck: we can delete it, yeap 19:25:36 pvaneck: is schema update can be isolated? 19:26:20 can you elaborate what you are talking about 19:27:32 let say DefCore update their Guideline schema to a new version which include new JSON element ... do you need to update the js? 19:28:15 the same js that you had updated to support vendor and product? I just want to see whether cherry picking is possible 19:28:39 depends on the change, but if it is just a new field, then no. It'll just be ignored until we support it 19:28:42 pvaneck: hmmm, I just realized that my idea sounds pretty close to idea with prod brach) but there is one difference. when we publish new branch, we still have a chance to rollback to old version. in case with prod branch it will be somewhat difficult 19:30:46 sslypushenko: yea, true. In any case, to be able to push merges we'd have to add a new gerrit acl line into project config to allow us to pushMerge 19:30:51 the only thing I see we may need to update the site is DefCore schema update 19:31:20 catherineD, branches will allow us to cherrypick changes easily 19:31:40 pvaneck: hmm.. can you specify details? 19:31:45 pvaneck: only if what we pick are isolated files? 19:32:34 sslypushenko, described here: http://docs.openstack.org/infra/manual/drivers.html#merge-commits In this case, they are talking about merging master into a feature branch or vice versa 19:33:02 catherineD, cherry-picks are based on commits/changes 19:33:25 we make the change to master, then cherry pick that into the branch the site is running off of 19:33:36 hmm... I don't see why we need pushMerge... we need only cherrypick and creating new branches 19:34:07 yea, if we go the branch as a tag route 19:34:29 i'll have to explore to see how i can get puppet to get the latest non-master branch 19:34:38 if the commit that we pick involves file that have been updated for other purposes ... I guess that will result in merge conflict 19:35:39 catherineD: yeap... support extra branches always takes some extra effors. it is true 19:36:37 but I hope that only minor changes need to be cherrypicked.... like schema adjustments or description updates 19:36:59 sslypushenko: yea 19:37:34 seems like we lean on creating feature branches for production ... 19:37:54 wouldnt call it a feature branch 19:38:15 pvaneck: prod branch? 19:38:17 It's more like release branches 19:38:32 yea, pretty much 19:39:38 pvaneck: will investigate how to update the site with non-master branch 19:39:39 hogepodge: exactly, but without pinning to OpenStack releases 19:40:16 sslypushenko: +1 yeah, it is definitely not the same 19:40:39 seems like we all agree on release branches 19:41:06 catherineD: pvaneck: site is upgraded from latest tag as i remember ... 19:41:16 just need to invetigate how to update the refstack site from release branches automatically like we do with tag today 19:41:32 andrey-mp: yes it is from latest tag 19:41:39 andrey-mp, yea, a puppet change will be needed 19:41:49 why you don't want to stay with tags? 19:41:53 andrey-mp: can we create tag with cherrypick? 19:41:59 no 19:42:17 tag is like a branch - tag is a link to specific commit 19:42:21 and branch is too 19:42:55 andrey-mp: but with branch we can cherrypick commit to it 19:43:12 andrey-mp: we need tags with cherrypick... so we need branches 19:43:46 catherineD: its a git - when you commit to branch, git makes new commit and moves branch onto. with tag you'll need to do it manually 19:43:58 you can move tags also 19:44:14 or create minor version tags 19:44:42 1.0.0 -> 1.0.1 -> 1.0.2 19:44:54 andrey-mp: it will not work... to create a minor tag on each minor change 19:44:58 while master has new commits without tags 19:45:24 sslypushenko: it will work but its too boring ) 19:45:43 andrey-mp: I don't mind investigate if it works 19:45:57 with release branches we will drop tags model ) 19:45:59 I can not understand how it will work... 19:46:08 then less work for puppet update .. 19:46:49 catherineD: I do the same for our another git repositories 19:47:00 if we have only master branch, it means that we have only single chain of commits 19:47:09 but its not clear when tag moves 19:47:16 The discussion here is do we keep tag (that can cherrypick) --> this is the preferred method 19:47:34 but we want to have different chain for publishing 19:47:42 sslypushenko: you're right - we need release branches anyway 19:48:03 but we can make releases by tags - not by every commit in release branch 19:48:34 sslypushenko: the publishing in the branches will be for both branches and master ... but not all commits in the master should go to the branch 19:48:47 (like Nova, Cinder, ... and some other Openstack components) 19:49:24 andrey-mp: so you mean we create a release branch and then create tag from the branch 19:49:25 ok... 19:49:27 catherineD: do you know how branches and releases work in Nova (for example) ? 19:49:42 andrey-mp: no I don't 19:50:23 it looks like everyone got the final idea... we need standard release workflow just without pinning to OpenStack releases 19:50:40 catherineD: yeah. but not 'from'. tag is a link on specific commit - you can create (and recreate) it everywhere 19:50:44 o/ 19:50:45 it should be pretty simple to do and support 19:50:56 I will epxlore what changes puppet-refstack will need 19:51:00 sslypushenko: +1 19:51:38 sslypushenko: but Openstack can release update for previous version - we don't need it 19:51:46 so we agree that refstack site will be published from tag created from a release branch? 19:52:08 catherineD: from latest tag (as now) 19:52:28 because we can have many tags/branches 19:52:31 today the tag is created from master branch 19:52:59 catherineD: we can create tags on release branches... but I think that only publish the latest commit will also work 19:53:31 release tags are need (and can be created) if we need to fix something in current version but master is not stable now 19:54:07 I am not clear on what we agree here 19:54:09 ok... lets stick to tag approach 19:54:29 it looks a little bit flexible 19:54:42 so release tag is created on commit with latest tag. then we merge something to this branch. then we tag new commit with new tag. 19:54:45 I mean tag from release branch 19:54:53 and cherry-pick this commit to master 19:55:13 when master will be stable - we tag it with higher major version 19:55:47 andrey-mp: yeap 19:55:54 Let's Paul did some investigation on the puppet ans we will revisit this topic next week 19:56:22 puppet pulls from pypi, will non-master tags be released on pypi? 19:56:26 meanwhile we will create a tag to update the site to support DefCore schema version 1.5 19:56:53 pvaneck: all tags are released on pypi 19:57:02 but pypi hides lower versions 19:58:38 andrey-mp: can you explain lower version? 19:58:58 if you release version 1.0.1 then pypi will hide 1.0.0 version 19:59:12 ok 19:59:20 thx 19:59:36 I need to end meeting 19:59:51 but if you want - you can go to the pypi and unhide all versions ) 19:59:57 andrey-mp: can I talk to you on #refstack on the product API tag 20:00:03 yeah 20:00:06 i'm there 20:00:11 tag --> patch 20:00:22 thank you all 20:00:29 #endmeeting