IRC log of #schooltool for Tuesday, 2007-01-02

*** karstix has joined #schooltool00:08
*** karstix has left #schooltool00:09
*** karstix has joined #schooltool00:24
*** karstix has left #schooltool00:31
*** karstix has joined #schooltool00:32
*** Ninno has quit IRC00:45
*** karstix has left #schooltool01:04
*** jfroche has quit IRC01:12
*** didymo has joined #schooltool01:52
*** didymo has quit IRC02:01
*** didymo has joined #schooltool02:01
*** jinty has quit IRC02:24
*** Aim2 has quit IRC02:49
*** Aim2 has joined #schooltool03:09
*** alga has quit IRC03:29
*** DeathOmen has joined #schooltool03:59
*** Bhaskar has joined #schooltool05:53
Bhaskarthla:hello u know schooltool?07:12
th1aHi Bhaskar.07:21
Bhaskarthla:hi07:21
th1aUnfortunately, I don't understand internationalization.07:22
th1aSo I don't know how to help you with your translation problems.07:22
th1aI can see if one of the other developers can.07:22
Bhaskarthla: i have problem on schooltool: running schooltool and schoolbell simultaneously??07:23
th1aOh... that might cause a problem.07:24
th1aAre they trying to use the same port?07:24
th1aBasically, we aren't actively developing SchoolBell anymore anyhow.07:24
th1aYou should concentrate on SchoolTool.07:24
Bhaskarthla , u r involving schooltool development ?07:51
*** didymo has quit IRC07:57
Bhaskarthla: how can i customize schooltool?08:01
th1aBhaskar: I am the project manager for SchoolTool.08:18
th1aDo you have any experience with Python programming?08:18
Bhaskarthla:well08:18
Bhaskarthla:little not in depth08:18
Bhaskarthla: in Nepal, i m involving localization, customization of schooltool08:19
th1aYes.08:19
Bhaskarthla: in nepali language08:20
th1aDo you think you might be able to meet with some of our programmers in person (you emailed me about this)?08:20
Bhaskarthla: i have already done some work on localization of schooltool08:20
Bhaskarthla:if u cooperate i can consult with them pls specify their mailing list08:21
Bhaskarthla:my email:b_bprimal@yahoo.com08:21
th1aThe schooltool-dev list is best.08:21
Bhaskarthla: can your project trained to us?08:22
Bhaskarthla: i mean any training regarding to the schooltool08:22
th1aI can't train you myself, I'm not a good enough programmer.08:22
th1aThere are several developers in Lithuania who would be capable of giving you some training, and perhaps I could fund their work.08:23
Bhaskarthla:well how can i consult with them08:24
th1aWe should talk to ignas.  One problem is that Nepal time is still pretty far ahead of Lithuania.08:26
th1aSo usually you guys are on here while they're asleep (and right before I go to bed).08:26
th1aWe'll have a developer meeting today at 1430 UTC, here.08:27
Bhaskarthla: so you talk about Nepal08:27
th1aDo you know Ashik?08:28
Bhaskarthla: if we meet in a single forum it is better08:28
Bhaskarthla: he had gone from here and i join for this project08:28
Bhaskarthla: i am handling schooltool project here in Nepal08:30
Bhaskarthla:we are planning to implement schooltool in around 2500 schools in Nepal08:30
th1aYes.  Well, we'll have to get you to Lithuania for a visit, I think.08:31
Bhaskarthla: but how can i08:32
Bhaskarthla: we have no fund ?08:32
th1aOK... I thought you said you did.08:33
Bhaskarthla:well08:33
th1aI'll talk to the developers and see if we can get some ideas.08:33
Bhaskarthla:ok08:34
Bhaskarthla: any success case study of this project in Lithuania?08:34
Bhaskarthla:they may be useful for us in Nepal08:35
Bhaskarthla: how many school are using this tool in Lithuania?08:35
th1aWell, we're working with one school in Lithuania to deploy SchoolTool next year.08:36
th1aI'm afraid we might not be ready for 2500 schools in Nepal yet.08:36
Bhaskarthla: in first phase we are planning for 5 school08:37
th1aGood.08:37
Bhaskarthla: upto Next year we hole we are ready for deploying for 5 school, some private school and some of them are governmental school or some may be community based school08:39
Bhaskarthla: we hope08:39
th1aWhen does school start?08:39
Bhaskarthla: schoolstart from from March session here in Nepal08:40
Bhaskarthla: pls share your planning to deploy one school in Lithuania08:41
*** Aiste has joined #schooltool08:42
th1aWell, we have one developer (ignas) working with a secondary school in Vilnius.08:42
th1aWe also have a developer (jfroche) working with a school in Brussels, Belgium.08:42
Bhaskarthla: why not we come in a single forum to share experiences to each other08:44
th1aWhat forum do you suggest?08:47
th1aThings just haven't been very chatty lately because of the holidays.08:48
Bhaskarthla: i think set a Conference for schooltool which brings all the developers, founder and all relating people in common plateform08:49
th1aWell, could you get to such a conference?08:50
Bhaskarthla: so that there will more interaction and discussion about schooltool08:50
Bhaskarthla: if schooltool organizer invite us we will attend.....08:51
th1aWell, we'll all be at PyCon, and most of us will be at EuroPython.08:51
Bhaskarthala: well08:53
Bhaskarthla:if Shuttleworth Foundation arrange for schooltool conference, this is better for all08:55
th1aEasier for you to get funding?08:56
Bhaskarthla : t think Shuttleworth Foundation arrange fund because we are from poor country08:58
th1aOK.  I understand.08:58
th1aI'll look into it.08:59
Bhaskarthla: we want to add new innovative ideas to speed up schooltool project all over the developing as well as under developing country09:00
th1aYes.  We'd like to make that happen, too.09:01
Bhaskarthla:basically Asian school have no systematic management , so this tool may be a grate09:01
Bhaskarthla: we should broaden the areas, and the concept of opensource worldwide09:02
Bhaskarthla: in Nepal we are starting a revolution in opensource09:03
th1aBhaskar: Yes, I agree in principle, but in practice we've found that we needed to narrow the scope in the short term in order to actually finish and ship some software.09:03
th1aWe just get overwhelmed with the worldwide scope and only a few developers.09:03
th1aSo we need to focus on some specific schools for a year.09:04
th1aWe're not quite ready, in general, for a global SchoolTool conference, but hopefully next year.09:04
th1aBut I'll think about how to get you in better communication with the rest of the team.09:05
th1aIn the meantime, I need to go to bed.09:05
th1aIt is 2:00 AM here.09:05
Bhaskarthla: we should bring more developers, trained them and deploy09:06
Bhaskarthla: i think we people keep in touch09:06
th1aIt would be helpful if I had a better idea of your overall project.  I could never quite get Ashik to give me the big picture.09:07
Bhaskarthla:well09:08
th1aBhaskar: Perhaps you could send me an email.09:10
th1aI'm off to bed.09:10
th1aGood night.  Nice chatting with you.09:10
Bhaskarthla ok have good night09:10
Bhaskarjoerg:hello09:17
Bhaskarjoerge: do u know school tool09:22
joergno09:33
BhaskarAim2: hello09:39
Bhaskardo u know school too09:40
*** Bhaskar has quit IRC10:11
*** thisfred has joined #schooltool11:40
*** povbot` has joined #schooltool11:51
*** jfroche has joined #schooltool11:54
*** ignas has joined #schooltool12:06
*** jinty has joined #schooltool12:19
*** povbot has quit IRC12:19
*** didymo has joined #schooltool13:00
*** vidasp has joined #schooltool13:06
*** alga has joined #SchoolTool14:12
*** joerg_ has joined #schooltool14:32
*** joerg has quit IRC14:45
*** ddaa has joined #schooltool14:49
ddaaignas: ping14:50
ignasxpong14:50
ddaaFirst...14:51
ddaaHappy new year14:51
ignasYippieeeee :)14:51
ddaaOkay, now done with the formalities14:51
ignasGratz :)14:51
ddaadid you have time to test the last import I gave you?14:51
ignasyes14:52
ignasbrilliant, wonderful, yay :)14:53
ignasmore than I have expacted14:53
ignasthanks :)14:53
ddaaDoes this mean you are satisfied?14:53
ignasit is already usable, but there are some minor details14:54
ddaaAh!14:54
ddaaListening.14:54
ignascheck ins are not ordered by date in bzr log14:54
ddaacan you show me a paste that exhibits the unwanted behaviour?14:55
ignasok14:55
ddaaI sort of guess what's the problem...14:55
ddaabzr log shows merges, so the logs are sorted topologically, so revisions that are merged in a mainline revisions appear before other mainline revisions.14:56
lisppaste5ignas pasted "Example of mixed checkin order" at http://paste.lisp.org/display/3394414:56
ddaamh14:56
ignasddaa: not sure i understood the explanation, sorry14:57
ignasit seems that independent revisions get shuffled a bit14:57
ddaaI see.14:57
ignasand sometimes (i'll try to find where) merges re in the oposite direction ... i mean as if feature appears in a commit with message "Merge from trunk" and then is merged to trunk with message "Implemented feature A"14:58
ddaaI vaguely remember seeing some commit messages for merges to trunk reading "implemented feature", which makes some sense15:00
ddaafor the "merge from trunk", I have an idea of what's the problem, but I would need to check first. Otherwise it might be confusing.15:01
ignasby the way maybe it would not take too much time to implement a branch rename or something like that for branches that are being deleted? like instead of deleting a branch just rename it to branches/deleted/schoolbell-date-of-deletion15:02
ddaaignas: did you look at the "attic" directory?15:03
ignashmm15:03
ignasno, not really :)15:03
ignascool :)15:03
ignasit's all there :)15:03
ddaaAbout the log ordering, can you paste the log starting with a mainline revision (last revision with no identation in the log before the mixed revisions).15:03
ddaaAlso, if you can give me a log about the mixed merge/implement logs, that would help a lot to track the problem.15:05
ignasok, looking for it, bzr visualize takes a bit of time to show up15:06
lisppaste5ignas annotated #33944 with "more revisions" at http://paste.lisp.org/display/33944#115:06
ddaaignas: what's the problem in the new paste?15:07
ignasthat should have been "(last revision with no identation in the log before the mixed revisions)"15:08
ignasbut now i have understood that i have misread it15:08
ignasgoing to look at the logs once more15:08
ignaskind of strange ...15:15
ignasthe date on a revision that merges15:16
ignasis smaller than the one on the revision being merged from15:16
ddaasounds weird15:16
ignaslike - the patch is merged from the future ...15:16
ignashttp://ignas.pov.lt/Screenshot-2.png15:17
ddaaI see15:18
* ddaa checks the svn log15:18
ignasthese are from an up to date repository though ...15:19
ignasi mean it's lyceum branch15:19
ddaaurl to the repo?15:19
ddaayou mean the more recent dump?15:19
ignasyes15:20
ignasftp://ftp.schooltool.org/pub/schooltool/st-repo.tar.gz15:21
ignasit was there, hope it still is there15:21
ddaathanks15:21
ddaadownloading15:21
ddaafound it in the logs :)15:21
ddaaI fully expect to find the dates are mixed up in the svn repo, but I want to check :)15:22
ignaswhat seems strange is that when showing 2 branches in parallel bzr is not ordering checkins by date15:24
ddaaI'm not sure what you mean. I do not know a way to show two branches in parallel with bzr.15:25
ignasbzr visualise15:25
ddaaI guess you are referring to the recursive log listing.15:25
ddaabzr vis orders revision by ancestry15:25
ddaafor parallel lines of ancestry, it tries to group related revisions toghether15:26
ignasoh15:26
ddaainitially it did not do this, and that made it much harder to read15:26
ddaaso I fixed it :)15:26
ignas:)15:26
ignasi guess it makes more sense for normal bzr branches15:27
ddaayup. I understand that it feels weird when looking at it with svn goggles.15:27
ignasdates are nearly always shuffled in merges, i mean feature added is after the feature merged date15:27
*** vidasp has quit IRC15:27
ddaaI really need an example to find the revision... even a screenshot with a reasonably unique commit message is okay15:28
ddaaokay... the dates are confuddled15:31
ddaa"Merge Jinty's and event id stuff to lyceum branch." is "2006-11-16 19:59:47 +0100" in the svn log.15:31
ddaaAnd 2006-11-20 something in the bzr vis screenshot15:32
ignassrichter-20061229150716-sjb48uo8xk1yrmi3 is the merge from srichter-20061229150658-6ovnj3wj1i6hqtsf15:34
ignasdates seem to be confused too15:34
ddaano doubt, something is wrong with how dates are read from svn15:34
ddaasorting my branches now to look at it15:34
ddaagot some uncommitted optimizations I need to get out of the way first15:35
ddaamhmh...15:44
ddaaokay, I found the problem15:49
ddaastupid untested code :(15:49
ddaa<insert rant here about how date-time handling in python is an incredible confusing mess>16:27
th1aI'm on the phone with Dave Welsh...16:29
* ddaa -> lunch16:29
* th1a shuffles some papers around.16:30
th1aHi ignas, jfroche.16:31
th1aHappy New Year everyone.16:31
jfrochehello th1a best wishes for 200716:31
ignashappy new year16:31
ignasddaa: hmm, can you guide me to the place you are having problems with, i am kind of specialising in datetime timezone stuff16:32
th1aSo ddaa is helping with bzr migration?16:32
th1aOr.. I'm confused.16:32
ignasyes he is16:33
ignashe is more or less doing the migration actually16:33
ignasi am the one who is helping16:33
th1aExcellent.16:34
th1aOK... updates and plans for the next week or so?16:35
jfrochei am meeting Nicolas tomorrow16:35
th1aignas: What's up in Vilnius?16:35
jfrochewe will speak/write down the goals16:35
jfrochewill be able to tell you more tomorrow16:35
jfrochei will start in the school monday next week16:36
th1aTomorrow would be good.  Invoice me as well for December.16:36
th1aExcellent.16:36
ignasth1a: i have merged all the changes branche<->trunk wise16:36
jfrocheah yes about this, i am creating my company... is it ok if i invoice you as soon as it's created (should be in 2week) ?16:37
th1aHm... I don't want there to be any confusion with Mark & the bank about what's coming from which year's budget, so I'd prefer if we could do it now.16:38
ignasrefactored schoolbell for the fun of it:)16:38
th1aignas: Yes, what's the status of that?16:38
th1aWhat does it do?16:38
jfrocheth1a: ok no problem16:38
ignasit works, if someone will report a bug - i will probably fix it :)16:38
th1aWorks in what sense?16:38
th1aWorks well enough to update the SchoolBell page on the website?16:39
ignasth1a: works in "i am not responsible for the quality and tests are not passing" sense16:39
ignasi did it for fun, and for people who are feeling adventurous :)16:39
th1aOK.  I guess I can at least point to the branch for the adventurous.16:40
ignasi have written an email to the dev list i think16:40
th1aYes.16:41
ignasnow I am working on the resource booking, to make it fully deployabe16:42
jfrocheth1a: does Nicolas has the same role as before or has he more commitment than before ?16:43
th1aWhat do you mean by "fully deployable?"16:43
ignaswith all the features they wanted before the first deployment i think16:43
th1ajfroche: He has more commitment than before, I'd say, because I have a little money to pay him.16:43
ignashmm, now i just remembered one feature that is missing16:43
th1aWhat your school wanted?16:44
ignaseditable Timetable events, fck editor integration16:44
ignascookie based language switcher16:45
th1aOK.  I haven't read your 2007 proposal yet... I suppose it is in there.  Had a kind of hectic holiday.16:46
th1aLots of painting.16:47
ignashappens16:47
ignasi did quite a lot of programming, merging, proposing during these days :)16:47
ignasmore productive than usually :)16:47
th1aI saw the big checkins.16:47
th1aYes, holidays can be productive times, when you're single or at least childless ;-)16:48
*** vidasp has joined #schooltool16:48
ignas:D16:48
th1aThat's changing for me, rapidly.16:48
th1aOK, what else...16:49
th1aI was chatting with our friend in Nepal.16:50
th1aLast night.16:50
ignashave you seen my chat with him before that ?16:50
ignasThursday i think16:50
th1aThey're government wants to test SchoolTool in 5 schools.16:50
th1aOh... I don't think I read it.16:50
ignaswell apparently he doesn't know python nor Zope, his english skills are not good enough to a lot of documentation and he wants to customize schooltool (or us do it for him)16:51
ignass/to a lot/to read a lot/16:52
th1aRIght.16:52
th1aKind of a difficult situation.16:52
th1aI don't expect you to spend a lot of time with him.16:52
ignasand i am no sure if it's a cultural thing, or he likes asking random people about schooltool without finding out who they are16:52
th1aWell, yeah.  Nepal is a long way away.16:53
th1aIn several ways.16:53
ignasit seems that his main occupation is adapting schooltool for Nepal, and he just does not know what to do now, that the translation is more or less finished ...16:54
ignasand i have failed at explaining him the difference between the developer sandbox and dapper schooltool :/16:54
th1aYes, I would like to help him get the translation running, although I'm personally useless at that task.16:55
ignaslanguage barrier i think :/16:55
th1aHm... ok.  That's helpful in knowing where he's starting from.16:55
ignasif he would ask questions and do his homework i could help him a lot ...16:55
ignasbut it seems that he just wants us to solve his problems :/16:55
th1aWhat I'm going to do is talk to jelkner about perhaps getting him integrated into some of the training he's starting with his interns.16:56
ignashmm, maybe that would work16:56
th1aIn fact, perhaps a few of them could work directly with the Nepal folks.  Would look good on a college application.16:56
th1aAlso, SchoolTool is funding some of those interns, so that gives me a little pull...16:57
ignasbut how to make him stop pinging everyone by mail, or IRC ? he even tried talking to povbot ...16:57
ignasi have told him that i can help him with his issues, but he didn't tell me what they were :/16:57
th1aUm... well, I'll try to get it under control.16:57
ignasand today he asked you same things i have told him about ...16:58
th1aI know...16:58
th1aI won't put this on your shoulders.16:58
ignasI think his most recent problem is translating 2006 pot not the release16:59
ignascan't be sure though ...16:59
th1aOh...  that seems likely.  OK.16:59
th1aI think we can wrap this up early then.17:00
ignasi don't know what schooltool he is running at the moment, and i don't know where he got the 2006 url17:00
th1aProbably from me ;-)17:00
th1aI'll talk to him tonight.17:00
ignasth1a: ping me if you'll have questions/comments about the proposal17:00
th1aI'll look at it this afternoon.17:01
ignasthanks17:01
th1aAnything else?17:01
ignashmm, any news about CanDo ?17:02
ignastheir next meeting, etc.17:02
th1aIt is in a few weeks, I think.17:02
* jinty just notes that he is busy installing pqm and a test bzr repo on schooltool.org17:02
th1aHappy New Year, jinty!17:02
jintyHappy new year all;)17:03
ignas2006 2.0 :)17:03
jintyignas: have any thoughts on pqm?17:03
th1ajinty: You're in the budget for 2007 to continue sys admining all year, btw.17:03
jintycool;)17:04
* jinty will also try do some release infrastructure work at some stage as well...17:05
th1aEggification, when the time comes?17:06
ignasno not really, i haven't seen how it works really ...17:06
ignasjinty: ^17:06
th1ajinty:  Are you planning to go to EuroPython?17:06
jintyth1a: yes, but I'm still patiently waiting for what is happening with zope317:06
jintyth1a: yes, if I can17:07
th1aOK.  I can probably give you some funding for that.17:07
jintyignas: good reason to try it out then, seems to be the only sane way of running post commit hooks.17:07
ignashmm, any urls of the repository ?17:08
jintyth1a: great! I'll speak to you when the time comes! you coming as well?17:08
th1aignas: Can we do a little sprint before or after EuroPython?17:08
th1aI'll be there and Paul Carduner from CanDo.17:08
jintyignas: for now there's an empty repository at http://staging.schooltool.org/bzr/schooltool/trunk/17:08
ignasth1a: with pleasure, if it will be a sprint on the data archiving or gradebook - wit heven more plasure :)17:08
th1aignas: OK.17:09
th1aDo you need anything else from me re:PyCon?17:09
ignashmm17:09
ignaslet me see if i have the letter in my mail17:09
th1aOh... also, you and jfroche should plan another meeting.17:09
* ddaa uploads st.bzr-7.tgz, ETA 10 mins17:09
ddaafixed svn2bzr.schooltool uploaded already17:10
th1aYou've got 2000 euro for the year for those trips, iirc.17:10
ignasddaa: is there a way to see the diff when bzr pulling changes ?17:10
jfrocheth1a: ok17:11
ddaaignas: you can "bzr merge ; bzr diff; bzr revert ; bzr pull"17:11
jfrocheth1a: do we go all to pycon ?17:11
ddaasince the the merge already fetched all the data, the pull will be fast17:11
th1ajfroche: Do you need anything from me?  Do you need a visa, too?17:12
jfrochei think so yes17:12
th1aI don't know if there is a difference in how we receive guests from Belgium and Lithuania.17:12
ddaamh... the branch nick computation will need another small tweak17:12
ddaabut the dates should now be parsed correctly17:12
* ddaa -> lunch, really17:12
th1ajfroche: I'll send you a letter.17:13
ddaain theory, should be able to "bzr diff url_to_remote", but last I checked, bzr diff did not work if the other branch did not have a working tree.17:13
ddaa(known bug, might have been fixed)17:14
ignasddaa: thanks17:14
jfrocheth1a: i have to ask if i can fit with the Visa Waiver Program17:14
jfrochebut could you send me the same paper you sent to ignas ?17:14
th1aYes.17:14
th1aI'll even try to change all the instances of his name.17:15
jfrocheth1a:  you decided the dates ?17:15
th1aYes.  We'll sprint for four days after the conference.17:16
jfrocheshould i book conference ? planes ?17:16
th1aWell, let's get a sense of the visa info.17:17
th1aI'll book the conference; you can handle the plane (we'll reimburse).17:17
jfroche22 feb => 29 feb ?17:19
jfrocheuhm17:19
jfrocheno 2917:19
jfroche1 mar17:19
th1aSounds right.17:19
th1aOK... anything else?17:22
* th1a drops the bag of gravel.17:23
ignasjinty: hmm, how about committing to the repository ? bzr doesn't want to push to an http source ...17:25
ignasjinty: or i should publish my changes, and you will merge/pull them?17:26
jintyignas: that's where pqm comes in17:26
jintyyou send a gpg signed mail to pqm@schooltool.org17:26
ignasok17:27
ignaswhat should be the content of the email ?17:27
jintyand it'll pull the changes17:27
jintybut it's not set up yet17:27
ignasoh :)17:27
* jinty loves non-released software with a dpendency chain from hell17:27
ignasjinty: now, what about being able to commit things to the repository without pqm, as i am not sure i have more reliable web space than schooltool.org for publishing of my branches17:37
ignashaving trunk managed by pqm is fine17:37
ignasbut i would like to have commit access to the lyceum branch, new-navigation branch as i just don't know how using pqm for a branch that might disappear will work out ...17:39
jintyignas: I'm not sure what would be easier, making a repository you can commit to, or just giving you a space on the net to publish things17:39
jintyI think the lyceum branch would be easier to manage as your personal branch17:41
jintyI just want one branch where I can specify that things like buildbot and commit mails are run17:42
ignashmm17:43
jintyonce I have pqm up, I'll see what I can do about giving developers space to put their repositories17:43
ignasas else i would have to put it up on pov servers, and well, i just can17:43
ignas't17:44
ignasbe sure they will be up ...17:44
jintyI think they only need to be up when you try and merge17:44
jintynot sure if they need to be up for the rest of eternity...17:45
ignasyes, but if jfroche wants to get my lyceum tweaks ...17:45
ignasnow everyhing commited to a branch is available to wveryone on the project17:45
jintyyeah, but I thought we wanted to get away from centralization;)17:46
ignaswell i will be able to commit without any repos17:47
ignasavailable online17:47
ignasbut i want to have a safe place to push my changes17:48
ignasor to pull from17:48
ignasand what i wanted was an easier way to manage 2+ branches17:48
jintyI do see what you mean, but we also need a central place linked to buildbot and such17:49
* ignas just merged ~7 commits from trunk to branch and ~5 commits from branch to trunk17:49
ignasyes so the trunk will be the only part buildbot will care about17:49
jintyperhaps we could have another place where developers could put their own work17:49
ignassuits me17:49
ignasas long as there is a place17:50
jintybut I'm not sure what is the best way for it to work...17:50
ignashmm, can bzr push through https?17:50
jintylooks like the stuff to do that was pretty experimental17:52
jintyI really don't want to spend ages bug hunting...17:52
ignashmm17:53
jintyI know that pqm is in production17:53
ignasssh?17:53
jintysftp is normally used17:53
jintybut then how do you centrally manage a commit hook17:54
ignashmm17:54
jintyor we could make cron jobs to send the commit mails17:54
ignasdo we need review for all branches17:54
jintyI think it's only _really_ necessary for trunk17:55
ignasso pqm manages the trunk17:55
ignaswe could register branches like in launchpad17:55
ignasif we want checkin emails17:55
*** mattva01 has joined #schooltool17:55
ignasbut i think if someone will want a WIP review17:55
ignashe will just tell the addreess of his branch17:55
ignasand that's all17:56
*** karstix has joined #schooltool17:56
ignasand when it works good enough - tell pqm to merge stuff17:56
ignasor a corn script that loops through registered branches and sends emails17:56
jintyif we have the cron script, I think pqm is unnecessary17:57
jintybut I have no idea how to write those cron scripts17:57
jintymy bzr-fu is really bad17:58
* ddaa comes back from lunch17:58
* jinty grabs ddaa and asks im how to write a cron script that sends commit mails for all new revisions committed to a branch18:00
*** mattva01 has quit IRC18:01
ddaajinty: do you need the diffs as well, or jus the commit messages?18:04
jintydiffs as well, for review on a mailing list18:04
ddaamh... post-commit review...18:04
jintyyes, less sand in the gears;)18:05
ddaajinty: so, you would like something that monitors a trunk branch, after somebody commits a revision to trunk, an email is sent to a mailing list for people to review.18:06
ddaaif somebody instead pushes to trunk, what should happen?18:06
jintyyes, probably run once an hour via cron18:06
ddaaif there were multiple commits since the last run, you want one message with a combined diff, or multiple messages?18:07
jintywell, if it's for review, anything that changes trunk should have a full diff on the mailing list18:07
jintymultiple messages, would be nice with the name/email of the comitter18:07
ddaajinty: are you familiar with how push-on-branch differs from merge-commit-on-checkout?18:08
ddaa(that might seem unrelated, but there's a point I want to make, please bear with me)18:09
jintyI am not familiar with very much of baz at all, just trying to figure out ho to administer this18:09
jintybut go ahead18:09
ddaajinty: baz is the GNU Arch thing, also known as Bazaar 1.x. What we're talking about is bzr, aka Bazaar 2.x (although it's still pre-1.0...)18:10
jintyI presume one is pushing the changes from a branch to another branch, the other is svn like...18:10
jinty;) yeah, sorry typo18:11
ddaathere's an important difference between push and commit-merge18:11
jinty?18:11
ddaaIf you only merge-commit on a branch, every commit translates to a new revision in the main history (the line of first parents). So in this case it is possible to send one email with diff for each commit.18:12
ddaaBut if you push, you can have a situation that looks like this:18:12
ddaaInitially, trunk looks like: A->B->C18:13
jfrocheignas: query an unamed adapter is done by queryAdapterInContext ?18:14
ddaaThe feature branch is: A->D->E[C] (E[C] means E merges C, the list of parents of E is ['D', 'C']18:14
ignasemm, unnamed ?18:14
ignasas in without an interface ?18:14
ddaaThen if feature is pushed to trunk, trunk becomes: A->D->E18:14
jfrocheignas: adapter without a name18:15
ignaspaste the definition of the adapter18:15
ignasi mean how is it declared in zcml18:15
jfrochelisppaste5: url18:15
lisppaste5To use the lisppaste bot, visit http://paste.lisp.org/new/schooltool and enter your paste.18:15
ddaaIn this case, history (line of first parents) looks like B and C were removed, and D and E were added. And there is no way to know that this was actually a single operation.18:15
lisppaste5jfroche pasted "adapter definition" at http://paste.lisp.org/display/3395518:16
ddaaWhat happens ancestry-wise (all parents considered) is that D and E were added and nothing was removed.18:16
ignasjfroche: ITimelineAdapter(adaptee)18:17
jfrocheright but i would like to avoid doing:18:17
ddaajinty: my point being: if you allow people to write to a common branch directly, you cannot prevent them from doing push (the UI is a bit confusing in that respect IMO). So you need somehow to be able to deal with this case.18:18
jfrochetry: ITimelineAdapter(adaptee)18:18
jfrocheexcept ...18:18
jfrocheelse...18:18
ddaain practice, if feature was a long lived, branch, it can look like dozens of revisions were removed and added from the history. You probably do not want to send dozens of email messages in this case, because that really obscures the actual change.18:18
jintyddaa: So you can't represent D and E as one patch because C comes in between?18:19
ignasjfroche: queryAdapter(parent, ITimelineAdapter, default=None)18:19
ddaajinty: yes you can18:19
jfrocheoh so queryAdapter doesnt require a name !18:19
jfrochegood to know18:19
ddaajinty: that's the difference with merge-commit-on-a-checkout18:19
ddaaif you do merge-commit, you end up with trunk: A->B->C->F[E]18:20
ddaaand that's nice and easy18:20
ignasjinty: do we want it pqm style or bundle buggy style or svn style?18:20
jintyignas: I'm not sure what we want exactly, but we do need some method to see what's going into the trunk.18:21
jintypost commit review I believe18:22
ddaaSo, what you _can_ do, is make a a _policy_ that says "do _not_ push a branch to trunk. Only push to trunk when you have done commit --local. All new revisions to trunk must be merges"18:22
ddaaWhich effectively gives you the same topology as using pqm would.18:22
jintymy experience is that policy doesn't work like that18:23
ignasjinty: i think we could do pre commit reviews for trunk18:23
jintyif people can do something normally they would...18:23
ignaswith bzr we can do that and not mess up the pace of development18:23
ignasi was thinking of bundle buggy, but we can use pqm for that as well18:23
ignasthe only thing for sane checkin emails we need is a more or less readonly trunk18:24
ignasi mean only have the pqm or BB to merge/push/pull to trunk18:24
ddaayup... sorry about that. When the smart server is really smart it will be possible to enforce things like "do not push to trunk", but it's not possible yet.18:25
ddaaunless you use a robot to commit to trunk18:25
jintybb actually does the merge?18:25
ignashmm18:26
ignasi can't find it's website18:26
jintyI had a look at it, but I didn't see that functionality, I thought it was just a tracker.18:26
ddaaIMO, you could go ahead with just enforced-by-policy, and only start adding tools to the system if that turns out to be a problem.18:26
ignasjinty: you mean someone was manually merging bundles ?18:27
ddaaThe thing with bzr is that, paradoxically, you can have a smaller group of trusted comitters than with svn.18:27
ignasyep18:28
ignas:)18:28
ddaaignas: I believe for bzr development, there's actually a small group of people who can send merge requests to pqm18:28
ignashmm18:28
ignasbut what about bundles ?18:28
ddaasomething like: poolie, lifeless, j-a-meinel, abentley.18:28
ignasi mean you can merge bundle with pqm somehow?18:29
jintyddaa: I think that's the way things seem to be going, start small, get experience18:29
ignasjinty: only me having access to schooltool trunk would work anyway ;)18:29
* jinty actually thinks that might be a good idea;)18:29
ddaaignas: I do not think pqm handles bundles itself. Comitters upload a branch with the bundle merged and ask pqm to merge it.18:30
ddaathough bundle support for pqm is definitely a desired feature :)18:30
jintyok, so for now, I'll make a repository, give ignas access to it and publish it18:30
ddaaokay, and we trust ignas not to mess with the history...18:31
ddaaso we have narrowed down the problem: send one email message for each added or removed revision on a branch...18:32
jintymore than I do myself...18:32
jintyyep18:32
jintysurely this is a common problem...18:32
* ddaa looks18:32
ignasjinty: do you have access to pqm source code?18:33
ignasand is pqm using bzr as a command line tool or as a library18:33
jintyyes, it's public18:33
ddaanot that common, I think. Bzr and launchpad have pre-merge reviews. And I think most other bzr projects are small enough that they have a single maintainer so it's not an issue.18:33
ddaaThere's a feature in development for launchpad to send email messages, but I got the impression that you do not want to depend on launchpad for your infrastructure.18:34
ignasddaa: we have a pre merge reviews now :)18:34
ignasi always review my code18:34
ignasand i would whack anyone who would commit anything significant to trunk without me reviewing it first18:34
ddaaignas: I mean pre-merge review as a process, with specific supporting tools, etc.18:34
jintyddaa: I like outsourcing infrastructure...18:34
* ddaa looks for relevant plugins18:35
ignasjinty: can you describe the workflow you want to see when you will complete everything ?18:38
ignasjinty: i think our views on the problem are a bit different and want to realign them ;)18:39
jintyignas: I thihnk the problem is that we just don't have enough experience with this18:39
ignashmm, well,  how do you imagine it working?18:39
jintybut there are 2 things I want: A mailing list of commit messages to trunk, buildbot to run on the trunk18:40
ddaaactually, it looks like pqm accepts bundles directly18:40
jinty(actually pqm with commits failing on test failure would be cool)18:41
jintybut start small...18:41
ignasddaa: i don't know how pqm works, so maybe you could enlighten me on - how it "accepts" bundles ?18:42
jintyok, ignas, you have full shell access now, I've created a group stbaz of which you are the only member18:42
jintythere is writable space at /var/local/baz/schooltool where you can put a repository18:43
ddaahow it accepts bundles, apparently using this plugin: https://launchpad.net/products/bzr-submit18:43
ignasddaa: any mailing lists i can see pqm in action?18:44
ddaapqm is a robot that is driven by email messages, those messages are normally generated by bzr plugins, not composed manually18:44
ignasjinty: and the central bzr repository will live in?18:44
ignas/var/somewhere ?18:45
jintyI presume /var/local/baz/schooltool/trunk18:45
ddaaignas: not that I know, the pqm messages are generally sent privately to the robot.18:45
jintythe whole thing is published here: http://staging.schooltool.org/bzr2/18:45
jintybugger.... ignas, wait, I shoudl change baz-> bzr18:46
jintydone18:47
jintyddaa: do you know where I can get a config-manager that works with the latest pqm?18:48
ddaaouch18:49
* jinty __loves__ non-released, non-packaged software....18:50
ddaaThe two working instances of pqm I know are setup and operated by lifeless...18:50
ignashmm, bundle buggy is nice for the trunk control, but doesn't support merges from a branch, and these might get too big to be handled as bundles ...18:50
ignaspqm seems good, but would require personal review requests or something like that for code review to work ...18:51
ddaait looks like the config-manager package in edgy should work...18:52
ddaaI do not know much more about it... but pqm is not really the friendliest piece of software around.18:52
ignasand i'd *wish* there was a way to register branches for crontab buildbot18:52
* ddaa is still looking at email thing on spare cycles18:53
jintyddaa: I have already tried that... but don't worry about it, I think pqm is crossing itself off the list of possible solutions18:54
ignashmm :/ what could we do with shared repositories ... i mean we want all the history available, but without anyone having commit access (system being decentralized) they will get out of date soon18:54
ddaaignas: what do you mean?18:55
jintyignas: have you found some bundlebuggy instructions somewhere?18:55
ignasjinty: no, not really, there is no link to the source of it anywhere18:55
ignasddaa: well, i own the trunk, lyceum branch, new-navigation branch18:56
ignasjfroche has his branch18:56
ignasfor the school18:56
ignasCanDo have a branch of their own18:56
ignaswhat to do with the rest of branches and attic18:56
jintyI think a repository of their own18:56
jintyah, i see...18:56
ignasand tags18:57
ignasi could adopt them :)18:57
ddaajinty: is that what you are looking for? http://code.aaronbentley.com/BundleBuggy/18:57
ddaa(hint, that's a bzr branch)18:57
ignasand put somewhere on schooltool.org (if i have an http accessible place)18:57
ddaaYou can just have everybody use a separate repository (possibly on the same host, different logins).18:58
ignasand we'd only have trunk in /var/local18:58
ignasjfroche and other would just download their branches18:58
ignasand reupload them somewhere18:58
ddaaWith bzr, a repository is just an optimization.18:58
ignasi know18:58
ignasthen i'd move their branches to the attic so they would not confuse people18:59
ignasddaa: i want to have all the svn history in one place for the historic record at least until the system becomes really distributed19:00
ignasbzr get'able place19:00
ignasso everyone will be developing on their own branch, publishing changes the way they prefer, and I will be keeping an eye on their repositories for changes i would like to see on trunk19:02
ignasand i'll be working with stable and lyceum branch, sometimes merging changes to the trunk19:02
jintyignas: so every developer should have write access to every branch (except trunk)?19:03
ignasjinty: no19:03
ddaaignas: I see. What are you missing to get there?19:03
ignasthe problem I see is only having trunk commits on the mailing list ... as at the moment i can just review jfroche's code every time he commits19:04
ignasand now i will have to go and checkout his branch19:04
ddaaright19:04
ignaswhat i want is bzr-web plugin for every repository hosted on personal accounts in schooltool.org19:04
ignasand people who don't have their web space having a way to publish their branches using schooltool's server19:05
ddaaignas: you mean a server to browse branches, like viewvc?19:05
ignasyes19:05
ignasthat would be better than me having to checkout every branch i want to check out for stuff19:06
ignasbut still, without mailing list, it would take a lot more effort to write a comment about some particular changeset :/19:06
ignasnow i just reply to a checkin email (branches/schooltool-jfroche)19:06
ignasand now i will have to compose one + paste everything and then comment on it ...19:07
ddaaignas: I guess if you have email notifications you do not need the browser that much? Or is it something separate, like you find it more convenient to check past changes?19:07
ignaswell, mailing list is enough19:07
ddaaignas: I'm looking at the email thing right now.19:07
ignasbut we are planning to have emails on trunk only, what about personal branches ?19:08
ddaaif you have emails that do not depend on post-commit hooks, it's not more difficult to support it for other branches than just for trunk.19:08
ignasyou mean?19:09
ddaaI mean, if you have a cronjob that sees what are the new changes on a branch, and sends emails for each of them, it's trivial to make it support many branches.19:10
ddaaYou could even put the list of branches in a bzr branches that all trusted developers can write to.19:10
ignashmm, or just pick up all branches in  /home/someone/www/  :)19:11
ddaaunfortunately it seems there's nothing that looks robust for this19:11
ddaaignas: there's "bzr branches" for this19:11
ddaait's in bzrtools19:11
ignasor maybe we could register them in launchpad ...19:12
ignasdoes launchpad give some api for retrieving of all URLs ?19:12
ddaaI think that might end up being simpler, yes :)19:12
ddaaphone19:12
ddaamh19:15
ignasor launchpad can send emails on commit itself ?19:16
ddaathe email commit message feature is in development19:16
ddaaI'll have a look on the status of the code right now19:16
ddaaso... while bzr vis downloads stuff, let's make the point...19:21
ddaa1. there is nothing out there to send commit emails from a cron job, there's just the bzr-email plugin that runs as a post-commit hook19:24
ddaa2. there is the "foreach" plugin that would be a good starting point, but it assumes that the branch history is append-only, which is not robust.19:24
ddaa3. launchpad does not send emails for commits yet, but thumper (Tim Penhey) is actively working on it19:24
ignashmm19:27
ignasas for our side ...19:27
ignaswe need a way for people to publish their changes, both bzr get'able, and email readable19:27
ignasas code review in schooltool is not just for quality control, it's for tutoring as well19:28
ddaaLaunchpad sftp would be nice for this, but since it does not support repositories, uploading new branches is relatively expensive.19:29
ddaaokay, about launchpad19:30
ddaathere's a branch pending review to send emails for changes on branch descriptions and stuff like this19:30
ddaathere's a branch existing for the work to send emails on new commit, but there's no new work on it yet19:31
ddaaI'll check with thumper tomorrow how it's going. Today is a holiday in .nz19:31
ignasi see19:31
ddaaIt's already relatively high priority since Ubuntu needs this feature. But the diff in the message is not critical to Ubuntu.19:32
ignasit get's so convoluted when one thinks more about it :/19:32
ignasthe workflow seemed so simple at first :)19:32
ddaaignas: thank you for noticing :)19:32
ddaait's definitely simple when you have a small project19:33
ddaatransitioning a large project with a lot of infrastructure to a DVCS is always complicated19:33
ddaaI would be happy to send a few days writing up something to do the email notification stuff you need, but that would have to be after the 14th (on vacation next week).19:34
ddaaAlso, I'd need to ask SteveA about it. And I think he'll just suggest to use the Launchpad email notifications that should be up there in one or two months (at most).19:35
ignaswell, we must straighten out the push/pull/merge-commit part at first anyway19:36
ddaa(counting the time for tim to write it, review time, and a launchpad release cycle or two before it gets deployed)19:36
ignashmm19:36
ddaaignas: I do not want to assume anything to avoid confusion, so what do you mean you must straighten out at first?19:40
ignaswell, at the moment i am not sure how will changes get to the trunk19:41
ignasfor normal development i will do everything on a local checkout and push it to somewhere on the web time to time19:41
ignasand then i will have to cherry pick revisions and get them to the main trunk19:42
ignasthe cherry pick and get to trunk part is hazy ...19:42
ddaayou probably do not want to do cherrypicking for ongoing development19:42
ignasi guess i'll have my own trunk checkout called stable19:43
ignasi'll merge required changes from lyceum branch to the stable branche19:43
ignasand then probably merge or pull everything from the stable to the trunk19:43
ignasddaa: why's that?19:43
ignasddaa: or should i just have a branch for every feature and pull/merge everything from it to lyceum and stable ?19:44
* ignas is used to darcs19:44
ddaadarcs tend to give people habits that only work well with darcs19:45
ddaawith bzr (or git, or hg, or monotone...)19:45
ddaait's much easier to have one branch per outstanding feature/bugfix19:45
ignasmakes for a less chaotic development too i guess19:46
ddaait does requires a bit of discipline, but in the ends it makes it easier to manage19:46
ddaaignas: one way to think about it19:47
ddaais to think of a branch as a "versioned patch"19:47
ddaathe actual patch is the change you get when this branch is merged.19:48
ignasside question: bzr merge keeps the track of single commits or only pull does that ?19:48
ddaa<voice race="vorlon" effect="gurglebubble">Yes.</voice>19:49
ignas"D19:49
ddaain the bzr vis thing19:49
ignasyes19:50
ddaanormally, all circles that appears at the extreme left are mainline revisions19:50
ignasand in log19:50
*** Aiste has quit IRC19:50
ddaaso when you pull, you replace your mainline history by the history of the branch you are pulling from19:50
ddaaWhen you merge-commit, you append a single revision to the mainline history.19:51
ddaaBut all the individual commits that you merged are still recorded.19:51
ddaaAnd they translate into indented revisions in the log and in bzr vis.19:51
ignasoh19:52
*** thisfred has quit IRC19:53
* ddaa watches ignas going lightbulb19:53
*** jfroche has quit IRC19:58
ignasnow how do you take changes from trunk?19:58
ignasi mean - if i do a bugfix on my some-bugfix-branch19:59
ignasthen merge-commit it to trunk19:59
ignasand merge-commit it to lyceum-branch19:59
ignasand delete it19:59
ignashow would someone get that bugfix into their personal branch ?19:59
ddaaMost of the time, just by merging trunk.20:00
ddaaWhich is something you often to do anyway.20:00
ddaaBut you can also reinstate the bugfix branch by "bzr branch -r <something> trunk"20:00
ddaawhere <something> can be revid:<revision id> or a dotted revision number20:01
ignashmm20:01
ddaayou can also _not_ delete the branch in the first place20:01
ddaait makes it more convenient20:02
ddaanote, you can also do "bzr merge -r <something> trunk" directly20:02
ignasand it will merge only that revision (revision having the patchset of the bugfix) ?20:02
ddaait will merge the branch whose tip is that revision20:03
ddaain bzr, merge picks all the ancestry of the merged revision20:03
ddaayou _can_ request "only apply the changed between revision 24 and revision 25", but if revision 24 is not already past of the ancestry, that will not be recorded as a merge20:04
ddaain other words, bzr does not tracks cherrypicks20:04
ignasi see20:04
ddaait will eventually20:04
ddaabut it's a serious can of worms to provide useful merging in presence of cherrypicking20:05
ddaaactually, the only thing that does it in a vaguely useful way is darcs merge20:05
ignasexponential can of worms in darcs case ;)20:05
ddaaso bzr focused on being nice and doing the right thing without tracking cherrypicks20:06
ignasi see20:06
ddaathough bzr and launchpad do use cherrypicking20:06
ddaabut only cherrypick into release branches20:06
*** ddaa has left #schooltool20:07
ignasyou mean branches no one will merge/pull from20:07
*** ddaa has joined #schooltool20:07
ddaatypically, when a release is made, a new release branch is created20:07
ddaaand it only get changes through cherrypicking20:07
ddaaand it's never merged into anything else20:07
ddaaso the merge-not-being-reliable-anymore problem is not an issue in this case20:08
ddaa("not reliable" as in "giving tons of conflict", not as as in "corrupting your repository and killing your kittens")20:09
ignashmm, bundles can contain a patchset not just a patch, yes ?20:10
ddaaactually a bundle is a way to transmit a revision20:10
ddaaIt contains the delta from a base revision, and the metadata for one or several new revisions.20:11
ddaaIt is applied with "bzr merge"20:11
ignasso if i generate a bandle my-bugfix-branch vs trunk and someone merges it it will be identical to the bzr merge from the branch?20:12
ddaafor some value of identical20:12
ddaatwo people merging a bundle will not produce the same revision (because they both commit independently), but bzr will record that they both merged the same thing.20:13
ddaaso knit-merging will work right, etc.20:13
ignasi mean - no information will be lost (the bundle will not become a one huge checkin without traceable history)20:13
ddaayes, that's the whole points of bzr bundles20:14
ddaamerging a bundle is equivalent to merging the branch it was generated from20:14
ddaasorry, misread your question20:14
ddaaSorry for the complicated answer, but I wanted to make it clear that, "yes a bundles contains a patchset" but that it does not help for cherrypicking :)20:16
ignasall bzr development is done through bundles or are you merging from branches too?20:16
ddaaWell... I'm doing any bzr development myself.20:17
ddaaI just complain and j-a-meinel fixes it :)20:17
ignas:)20:17
ddaaI guess they are mostly working through bundles because are a key part of they pre-merge review process.20:18
ignasi see20:19
ddaaThe key piece on the launchpad review process20:19
ddaais a cronscript20:19
ddaathat reads a wiki page20:19
ddaadoes merges in sandboxes, and puts the produced diffs online20:19
ddaaso when a branch is pending review, there is a regularly updated diff online of what merging that branch on its target will produce.20:20
ddaa(it is something we want to do directly in launchpad)20:20
ddaajamesh is the one who runs this stuff. Maybe he could release it if asked.20:21
ddaaThere should not be any secret sauce in it.20:21
ignasthat works for trunk being pushed to ...20:21
ddaahu20:22
ignaswhat we need at the moment is "pulling"20:22
ignasi mean - i am the person who decides what goes to trunk what doesn't20:22
* ddaa kicks crazy cuddly kitten outside20:23
ignasso there is pretty much no incentive for anyone to post their branch for a merge ... except for the review value ...20:23
ignasi am looking at jfroches branch, and if he will add something i think everyone needs i will pull it into trunk20:24
ignasother than that he's on his own20:24
ignaswe are developing different products with the same core or something like that ...20:24
ddaahu20:24
ignasso everyone benefits from the improvement of the core schooltool (trunk)20:25
ignaswhile a lot of code will only live in branches20:25
ignasso jfroche is developing his branch, and i am developing "core" and lyceum branch20:25
ddaaYou are saying there is little incentive for people to partition their work in multiple branches, that can be merged to trunk without dragging project-specific code in.20:25
ddaaRight?20:26
ignason one hand - there is, on the other hand - there is nothing to stop other developers from accidentally adding things i don't want in trunk20:26
ignasand if they would actively ask me for advice or wait for me to review - it might stall them :/20:27
ddaaMaybe you can use your leverage to ask people "please put this stuff in a branch based on core".20:27
ddaait's quite possible to do this post-hoc.20:28
ddaaActually, if they do it themselves, it will be easier for them to merge trunk after you merged this change.20:28
ddaaHere's how it can go.20:28
ddaatrunk: A->B20:29
ddaajfroche: A->C->D20:29
ddaayou say "jfroche, please put D in a branch based on trunk"20:29
ddaaphone20:31
ignashmm, the part i don't like about it is that it requires effort and time on his side20:39
ignasi must rely on him making a nice compact patch for the feature i want in trunk20:39
ddaaso he does20:39
ddaafeature: A->E(cherrpicks D)20:39
ddaajfroche: A->C->D->F(E)  (F introduces no change)20:39
ddaasince he did the pick, and merged it himself, he will not get spurious conflicts when merging trunk that merged E20:40
ddaaWell...20:41
ignashow is "jfroche: A->C->D->F(E)  (F introduces no change)" performed ?20:41
ignasi mean everything up to this step could be performed by me (in case i have more time on my hands etc.)20:41
ddaasomething like "bzr merge ../E ; bzr revert . ; bzr commit -m 'merged cherripick branch'" (the dot in revert . is important)20:41
ddaaThe point of this step is to save him spurious conflicts.20:42
ddaaYou could also just cherrypick D into trunk.20:42
ddaaThen when he'll merge trunk, he may or may not have spurious conflicts, but nothing worse than with svn.20:42
ignaswell, i could cherry pick into feature branch:20:43
ddaabzr is not really designed to handle parallel branches with long-lived divergence20:43
ignasso he could get clean conflicts20:43
ignaswithout potential conflicts from trunk20:43
ddaaright, you could make a feature branch that looks like: 1230: "cherrypick r1234 for jfroche", 1231 "fixups"20:44
ddaabut practically that might not work as well since the cherrypick itself may need additional changes to apply cleanly20:45
ddaathough that would give as much fine grained information as bzr can record20:45
ignasi see20:45
ddaaI'm wondering how you managed the situation with svn...20:46
ddaait's already quite messy with bzr...20:46
ddaaIs it because the stuff that's site-specific is well segregated is separate files?20:46
ignasyes it is20:47
ignasi just svn merge --r 1234:1236 http://trunk in src/schooltool-lyceum20:47
ddaaoh20:47
ignasand svn merge --revision 1239:1245 http://lyceum in src/schooltool20:47
ignasbut it's error prone, loses information, and it is inconvenient for jfroche who might want features from both branches20:48
ignasand would have to very accurately pick only those checkins that he needs20:48
ignascheckins not being grouped in any way20:48
ddaaI see.20:49
ignaswith bzr i'll just have a branch for every feature and well merge the required ones into trunk and into lyceum20:50
ignasand jfroche can pick features he needs either directly from branches20:50
ignasor from trunk/lyceum branch with -r20:50
ddaaFrom my experience, you probably do not want to go all the way to "everything is in branches"20:51
ignaswhat's the alternative?20:52
ddaaI mean, you should keep a branch that's clearly trunk.20:52
ddaamesh-merging works well when there's a few branche per person20:52
ddaaso the mesh topology can look like fully-connected network where each node is a person20:53
ignasi see20:53
ddaabut if you have many long-lived feature branches and no clear trunk, it can quickly become hell20:54
ddaabecause you'll inevitable get functional and/or textual dependencies between branches20:54
ddaaso... I think there are a couple of good ways to tackle your problem with bzr.20:54
ddaaIf I were in your position, I'll try to segregate the project-specific code even further, so each project have a common trunk branch20:55
ddaaso you would effectively push the persistent divergence outside of the problem space20:56
ddaaif that's not possible, but the project-specific code is still well separated, you can have custom merge scripts that always revert the changes made to project specific files.20:57
ddaaThe problem with the later is that you get a ping-pong situation, where everytime somebody merges and reverts the uneeded changes, he effectively records a change that says "turns these files into my files".20:58
ddaaso as long as everybody uses the custom merge+revert scripts, it's okay20:59
ignashmm, some things might be a lot easier to implement in a dirty way (put some small school specific stuff in the core so you would not have to refactor the whole module)20:59
ignasbut in the perfect case all lyceum specific things will be in src/lyceum (with schooltool nearby)20:59
ignassame for belgian school20:59
ddaaI'd love to be able to say that bzr can gracefully handle the situation you describe. But unfortunately it cannot... yet.21:00
ignasbut with unit tests - changes in lyceum part might have to happen at the same time as changes in the core do21:00
ignasso changes to to core would have to go into a feature branch, and lyceum stuff get fixed on merge from the feature branch ...21:01
ddaaignas: I think your approach is actually the most practical21:01
ddaaWhen you move stuff from a project branch into a feature branch, you do lose the information from where it comes.21:02
ddaabut from this point, the changes should flow nicely outwards with not much more conflicts than necessary21:03
ddaaI think I would just have each feature branch be merged on trunk, and recommend people merge trunk. That's also nice for other reasons, like when changes on a branch breaks the functionality on another branch.21:04
ddaaMaintaining an integration branch is a good way to catch, and fix, those problems.21:04
ddaaanything more complicate (like a custom merge+revert script) leads to madness21:05
ddaaignas: btw, it looks like jelmer has been working on making bzr-svn works well for schooltool21:08
ignashmm21:08
ddaamaybe it would be a good way to gain experience with bzr before the big switch21:09
ignasbut i am afraid bzr-svn will not make the merging part easier :/21:11
ignasbut for getting used to developing features on branches21:11
ignasit should work21:11
ddaaI do not know how well bzr-svn works.21:11
ddaaBut I'm afraid that given your problem, anything will suck :(21:12
ignas:D21:12
ddaathough probably in different ways21:12
ddaadarcs will do the correct thing, in cosmological time.21:12
ignas:)21:13
ddaasvn will allow you to pick bits freely, but force you to do all the book-keeping by hand21:13
ignashmm, does bzr have something like svn externals ?21:13
ddaanot... yet...21:13
ddaastrongly desired feature21:13
ddaawill be in for 1.021:14
ddaaneeded a lot of deep refactorings21:14
ddaathere has been a lot of activity to deliver this21:14
ddaafolks in #bzr (abently and j-a-meinel in particular) will know the details better21:14
ignasi see21:14
ddaashould be coming soon now (few months)21:15
ignasbecause one way to solve it would be to move src/lyceum into an external21:15
ddaawell yes21:15
ddaathat's what I meant when I said move project-specific stuff into separate branches21:15
ddaabzr works well with nested branches, but it does not record them21:16
ignasoh, i misunderstood the segregation bit sorry21:16
ddaasorry, I was unclear21:16
ddaathe problem is that bzr gives no facility to operate on collections of nested branches like that21:17
ddaaand provides no convenience to track "these two revisions went toghether in the code I used last week"21:17
ddaain launchpad, we have a tree like this21:18
ddaawith a big launchpad branch21:18
ddaaand many other branches are checked out in launchpad/sourcecode21:18
ddaasince most of the ./sourcecode stuff is third party code21:20
ddaacode there tends to see a lot less activity than launchpad itself21:20
ddaaso the inability to "get all the branches as they were last week" is not a practical problem for us21:21
ignashmm, i see21:22
ddaamight still work for you...21:22
ignasi think i'll have to try out some scenarios21:24
ignasthanks for all the information21:26
ignasi have to go now21:27
ignasgetting late in here :/21:27
jintyignas: me too21:27
ignasbye21:27
*** ignas has quit IRC21:27
*** jinty has quit IRC21:27
*** alga has quit IRC21:31
*** jfroche has joined #schooltool22:03
*** mortons has joined #schooltool22:21
*** Ninno has joined #schooltool22:22
*** vidasp has quit IRC22:27
*** Ninno has quit IRC22:35
mortons:)22:41
*** karstix has left #schooltool23:11
*** th1a has quit IRC23:23
*** ignas has joined #schooltool23:37
*** ignas has quit IRC23:44

Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!