Conversation with #freelords at Mon 08 Apr 2013 09:06:08 PM CEST on ulf82@irc.freenode.net (irc)

(09:06:11 PM) ulf82: Hi
(09:06:18 PM) patton: hi
(09:06:40 PM) ulf82: So, two things to get to today:
(09:06:45 PM) ulf82: 1. A draft for the git policy
(09:07:02 PM) ulf82: 2. A draft for the wiki documentation regarding integration tests/architecture/whatever
(09:07:53 PM) ulf82: Do you have anything besides?
(09:08:17 PM) patton: well about point 2 i would say that reading the code after some time was a bit hard :)
(09:08:21 PM) patton: i did not remember much
(09:08:43 PM) ulf82: ok.
(09:08:47 PM) patton: so i had to see a lot of code before review the code
(09:09:09 PM) patton: basically we need to have some arch doc
(09:09:19 PM) ulf82: One second while I look up the mail thread about git again...
(09:09:20 PM) ulf82: yes.
(09:09:20 PM) patton: a vey basic one but is needed
(09:09:32 PM) patton: yes
(09:10:14 PM) ulf82: Ok, let me see...
(09:10:20 PM) ulf82: 1. We all agree on using branches
(09:10:27 PM) ulf82: 2. Rebasing needs to be clarified
(09:10:34 PM) ulf82: 3. And how branches are done exactly...
(09:10:45 PM) patton: well basically my last commit was not a branch.....
(09:10:54 PM) patton: so i mistaked too
(09:11:19 PM) ulf82: 4. And we need to produce some wiki documentation.
(09:11:25 PM) ulf82: I think that is it.
(09:11:33 PM) patton: i mean that i committed tomasz code without branching
(09:11:46 PM) ulf82: yes. I saw that tests were failing.
(09:11:48 PM) patton: a branch was supposed to be done right?
(09:11:50 PM) ulf82: yes.
(09:12:01 PM) ulf82: especially if the code is unstable.
(09:12:09 PM) ulf82: Now there are two possibilities:
(09:12:13 PM) patton: ehm did the test fail?
(09:12:19 PM) patton: o my....
(09:12:22 PM) ulf82: At least for me.
(09:12:33 PM) patton: not for me here
(09:12:35 PM) ulf82: ok.
(09:12:40 PM) patton: we need a jenkins somewhre
(09:12:41 PM) ulf82: Then I will have to look into it.
(09:12:46 PM) ulf82: Do they fail on the command line?
(09:12:50 PM) patton: is not possible
(09:12:54 PM) ulf82: "ant all" and such...
(09:13:05 PM) ulf82: did you check in all files?
(09:13:32 PM) ulf82: No wait...
(09:13:35 PM) patton: not on my machine but right now i cannot run them again am on the laptop and i do not have latest git
(09:14:10 PM) patton: i just applied the patch he sent me run everiting anc commit/push
(09:14:24 PM) ulf82: Yes. The error was something like the Drawables try to extract the image names from the buildings etc., but those have no name set.
(09:15:18 PM) ulf82: in the tests.
(09:15:39 PM) patton: mmm very strange
(09:15:51 PM) patton: however we need a jenkins hosting somewhere
(09:15:55 PM) ulf82: yes.
(09:16:03 PM) ulf82: Until then...
(09:16:06 PM) patton: we cannot relay on own installation
(09:16:13 PM) ulf82: Maybe to explain the branch concept a bit:
(09:16:24 PM) ulf82: We have two options (probably more, but let us start with two):
(09:16:36 PM) ulf82: 1. We make a branch for every coding task.
(09:16:53 PM) ulf82: The disadvantage is that this makes the history very hard to parse.
(09:16:54 PM) patton: ehm so can you fix the problem? i would review the code but not today i believe
(09:17:02 PM) ulf82: Yes, I can look into it later.
(09:17:46 PM) ulf82: Back to topic: Git has a feature called rebasing. It takes a branch, make a diff for each commit, and tries to apply these diffs on the main branch
(09:17:47 PM) patton: ok
(09:18:10 PM) patton: yes
(09:18:16 PM) ulf82: So you branch X from main, and instead of merging X back to main, you add the commits of branch X as if you had applied them to main.
(09:18:19 PM) ulf82: Problem here:
(09:18:47 PM) patton: yes?
(09:18:49 PM) ulf82: This goes slightly nuts when you start to rebase branches that are already used by other branches
(09:19:07 PM) ulf82: And since many coding tasks build on each other, this is not an exotic use-case.
(09:19:20 PM) patton: well i would keep it simple as usual
(09:19:30 PM) ulf82: So when you are behind with reviewing a few days, you either cannot conveniently rebase, or the coder has to wait.
(09:19:45 PM) ulf82: That would lead to my private suggestion #2:
(09:19:48 PM) patton: this would not be acceptable
(09:19:55 PM) ulf82: Make every design task a branch
(09:20:16 PM) ulf82: Disadvantage is that the branches are rather long-lived, on the order of two months.
(09:20:54 PM) ulf82: Advantage: You can merge them and keep the actual history (the branch is also some history, namely what happened during this design task only)
(09:20:58 PM) patton: well yes i find it a bit extreme
(09:21:40 PM) ulf82: We could also do something in-between.
(09:21:55 PM) ulf82: Something like the review must have been done before the next discussion in general.
(09:22:13 PM) ulf82: and make a branch for one working package (like content of one chat)
(09:22:39 PM) patton: well what's the problem in committing in without branching? I mean at least for task between each release?
(09:22:59 PM) ulf82: That could then be rebased conveniently, or at least give a bit more history than just one commit.
(09:23:11 PM) ulf82: Featuritis. :)
(09:23:25 PM) ulf82: Plus, it makes it less likely that tests break just when you want to code.
(09:23:33 PM) patton: we sould not have huge tasks
(09:24:06 PM) patton: so if we need to branch to cope with huge tasks then is better to restudy the task and divide it in sub tasks
(09:25:06 PM) patton: but i really dunno what it can mean
(09:25:13 PM) patton: since it is the first time I use git
(09:25:16 PM) patton: pheraps branching is the easiest way
(09:25:22 PM) patton: ping?
(09:25:25 PM) ulf82: For certain, we will need branches for some of the more destructive code changes.
(09:25:47 PM) ulf82: Like the logging introduction or the XSD rewrite (both currently seem to be asleep; need to send a reminder)
(09:26:27 PM) ulf82: or the resourcemanager rewrite
(09:26:33 PM) ulf82: to come.
(09:27:25 PM) ulf82: The question is if we want to use branches regularily as part of the commit process.
(09:27:46 PM) patton: i am not against it but i would not vote for it
(09:27:59 PM) patton: if needed i would use it
(09:28:10 PM) patton: for sure for xsd rewrite :)
(09:28:22 PM) ulf82: The original idea was to have new code outside of the main code base that everyone uses, so that this broken tests issue becomes less serious.
(09:28:44 PM) ulf82: broken test issue that we had a couple of times over the last few months.
(09:28:51 PM) ulf82: brb
(09:30:00 PM) ulf82: back
(09:30:21 PM) patton: ok
(09:30:40 PM) patton: anyway what should we do when starting a task?
(09:30:45 PM) patton: 1) make abranch
(09:30:52 PM) patton: 2) commit/push
(09:30:57 PM) patton: 3) review on branch
(09:31:01 PM) patton: 4) merge?
(09:31:19 PM) ulf82: yes, that is the short-cycle option.
(09:31:55 PM) patton: point 3/4 is done by reviewer
(09:32:03 PM) ulf82: yes
(09:33:14 PM) patton: is a bit of work for the coder too
(09:33:25 PM) ulf82: Then there is the medium-cycle option where a branch contains a handful of commits.
(09:33:32 PM) ulf82: Well, not too much. Basically one extra line
(09:33:43 PM) ulf82: git branch --set-upstream my_task
(09:33:44 PM) patton: at least you need to remember to branch and you neet to tell the reviewer which branch to checkout
(09:33:49 PM) ulf82: git checkout my_task
(09:33:51 PM) ulf82: 2 lines
(09:34:09 PM) ulf82: policy; the branch is named like the task or so.
(09:34:23 PM) ulf82: Besides, you get commit emails, where I think this is included.
(09:34:56 PM) ulf82: Yep, just checked: The branch name is in the commit email.
(09:35:02 PM) patton: ok
(09:35:51 PM) patton: well however you need to branche the master repository
(09:36:02 PM) patton: you risk to branch your local repo
(09:36:15 PM) patton: and in this case the emailwill not start ibelieve
(09:36:36 PM) ulf82: yes, that is the reason for the --set-upstream option
(09:37:53 PM) ulf82: At least I think that is what this option does; it works like this in other commands.
(09:38:06 PM) ulf82: The git manpage is a bit confusing in terminology.
(09:38:14 PM) patton: well this is not the best way o code if you use an ide....
(09:38:39 PM) patton: i need to open a new project and checkout each branch to code over it i suppose
(09:38:48 PM) ulf82: Since this branching workflow seems to be quite common, I would be surprised if ides to not support it.
(09:39:23 PM) patton: dunno i need to do some tests
(09:39:40 PM) patton: anyway if we want branches at least we will cope with taht
(09:39:43 PM) patton: that
(09:39:55 PM) ulf82: yes, sure.
(09:41:13 PM) ulf82: just checking the netbeans git module, one sec.
(09:42:24 PM) ulf82: I think the git module has the option "create branch", and you tick which branches to push when pushing.
(09:42:40 PM) ulf82: I have not tried it right now, but it seems straight-forward enough.
(09:42:50 PM) patton: I will test it
(09:42:53 PM) ulf82: ok.
(09:43:25 PM) ulf82: Then I would suggest we delay it until you have had a look.
(09:43:35 PM) ulf82: it == further decisions.
(09:44:26 PM) patton: ok
(09:44:55 PM) ulf82: Then remains point 2. What about the documentation? Any ideas?
(09:46:24 PM) patton: well what i noticed is that evenif the code is good enought to review a piece of code i do not touch from months is not so easy
(09:46:37 PM) patton: since we have a loto of classes
(09:46:49 PM) patton: i had to recall a lot of concepts
(09:47:13 PM) ulf82: Mmh. I guess this is hard to speed up?
(09:47:14 PM) patton: pheraps some names are also wrong
(09:47:45 PM) patton: well we should document the code before each release
(09:48:11 PM) patton: well this cannot be spedd up
(09:48:14 PM) patton: speed
(09:48:39 PM) patton: we only need to read the code and note down the main architecture
(09:49:03 PM) ulf82: at least for the network classes, there exists quite good documentation by now, I remember
(09:49:42 PM) patton: yes
(09:49:46 PM) patton: dunno if the graphical srawing is committed somewhere
(09:49:52 PM) patton: drawing
(09:49:59 PM) ulf82: yes
(09:50:04 PM) ulf82: network.client and network.server
(09:50:29 PM) patton: however we need to cover all the code
(09:50:42 PM) ulf82: yes.
(09:50:52 PM) patton: some names are still too eneral
(09:50:56 PM) patton: general
(09:51:03 PM) patton: pheraps we need to change them
(09:51:07 PM) ulf82: ok.
(09:51:14 PM) patton: listener does not say too much
(09:51:18 PM) patton: i noticed
(09:51:28 PM) ulf82: Just to have some goal-orientation: What do we do?
(09:52:21 PM) patton: we can set up some docmentation task
(09:52:37 PM) patton: about covering other part of the code
(09:52:42 PM) ulf82: If tasks are too general, they are not done, so we need to specify the package.
(09:52:45 PM) patton: (more is time to plan next release too)
(09:53:08 PM) patton: ok client bus should be documented
(09:54:05 PM) ulf82: Ok.
(09:54:38 PM) ulf82: you mean client.bus? Or FLUserInterfaceEventBus?
(09:55:02 PM) patton: FLUserInterfaceEventBus yes and its usage
(09:55:13 PM) ulf82: ok.
(09:55:52 PM) ulf82: Then let us add the task, so that we have at least one result for today. :)
(09:56:37 PM) patton: :)
(09:56:38 PM) patton: ok
(09:57:38 PM) ulf82: ok, task 221 as a draft
(09:58:11 PM) patton: ok to me
(09:58:32 PM) ulf82: good.
(09:59:11 PM) ulf82: then let me see... do we have anything more to clarify for now?
(09:59:27 PM) patton: we should have done
(09:59:59 PM) patton: my next step is to review tomasz 's task and to patch the repository as we said latest chat
(10:00:10 PM) ulf82: ok
(10:01:13 PM) ulf82: If I am unbusy and motivated enough, I would take on some of the misc tasks that have een lying around for ages.
(10:01:53 PM) ulf82: But today is a bad day for that. :)
(10:02:04 PM) patton: ehm what about to set a date or a deadline for the next releaee?
(10:02:24 PM) ulf82: Well, I would like to have something to show.
(10:02:38 PM) ulf82: So the deadline for me would be when you can start a game and look at the map.
(10:02:40 PM) patton: ok
(10:03:36 PM) ulf82: anything else?
(10:04:07 PM) ulf82: We are not too far away; when the configuration room is done and the canvas draws correctly, ... then we only need the logic to start a game and fire up a dialog.
(10:04:31 PM) patton: yes
(10:04:45 PM) patton: i will rush with repo change
(10:04:51 PM) ulf82: fine. :)
(10:04:52 PM) patton: so we can fix the drawers
(10:05:14 PM) patton: however map visualization is far a bit :)
(10:05:48 PM) ulf82: well, the city drawer looked quite good, and I expect that the other drawers do not take tooooo long, either.
(10:05:51 PM) ulf82: Am I wrong somehow?
(10:06:14 PM) patton: no the drawers are ok but we need to add the subpackage thing
(10:06:23 PM) ulf82: yes.
(10:06:24 PM) patton: right now a refactoring is needed
(10:06:39 PM) ulf82: Well, the refactoring will come as soon as one of the design tasks is finished.
(10:06:42 PM) patton: since we do need to have different images per city
(10:06:45 PM) ulf82: Then we need new ones.
(10:07:08 PM) patton: we have some open issues to be closed after the repo is updated
(10:07:26 PM) ulf82: Well, not right now; that is one of the things that I could postpone till after the release without a bad feeling
(10:07:44 PM) ulf82: Ah you mean the repo hack ?
(10:07:52 PM) ulf82: Ok, I meant the correct repo rewrite. :)
(10:07:53 PM) patton: yes
(10:08:01 PM) patton: no no the hack
(10:08:15 PM) patton: the rewrite is to be brainstormed :)
(10:08:19 PM) ulf82: indeed.
(10:08:26 PM) patton: ok then
(10:08:34 PM) patton: i would go to bed
(10:08:38 PM) ulf82: I can send the log to the list.
(10:08:44 PM) patton: ok
(10:08:52 PM) patton: so see you later
(10:08:54 PM) ulf82: good night and such, then.
(10:09:00 PM) patton: night
(10:09:03 PM) ulf82: and bye.
(10:09:08 PM) patton left the room (quit: Quit: Konversation terminated!).