-
Notifications
You must be signed in to change notification settings - Fork 10
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
Decide policy for Development and Stable versions #76
Comments
If we have hrpsys-trunk (hrpsys-head?) branch on hrpsys and rtmros_common (and potentially on rtmros_gazebo), However, managing the code might be more difficult. For example, we developer will send PRs to hrpsys-trunk branch and the maintainer needs to merge hrpsys-trunk with master when a new hrpsys is released. |
Currently we have following repositories
and we presume
hrpsys-base: Currently hrpsys-base have 315.1.x, 315 correspond to OpenHRP3.1.5 and 1 correspond to hrpsys's IDL revision, so if we changed IDL, it going to 315.2.0. and current hrpsys: this is just ros package for hrpsys-base, If you're rtmros_common: this depends on hrpsys-base versions and if we have rtmros_common for 315.1.x, this package could not talk to hrspys-base 315.2.x(trunk). One idea is to create Another approach is to create ubuntu repository mirror for |
I feel like doing more research on this since there are plenty of mature software projects we can learn from, and I'm not experienced in this regard either. But some people might be already imperative, so here's my comment from "industry" side.
Both sound reasonable and interchangeable with each other. I think the key question is "how often do we want to release?" And, so far I feel that the requirements from research users (JSK) and industry users are different; researchers appreciate more frequent release while industry users often require Below are my supporting thoughts:
|
You may have heard same thing agin and agin. I think I could not support / maintain two different code set. If there are someone who can fix a bug, answers to the issues at least 30% of the project, I'l happy to say yes. But at this moment I'm really afraid that splitting branches breaks both the rtm-ros project and my life. This is my personal feeling and if there are people who is able to do that, that good news for me. But remember, if you read this issue right now, you may continue working more that 16 hours, do you think you have another few hours to do new thing?? This is comment, not only this issue, but in general on research and code development
[1] : https://github.com/hyaguchijsk/jsk_recognition/tree/feature/clothbag_rim_detector/clothbag_rim_detector |
This is just another point of view and just discussion In start-jsk/rtmros_hironx#76, I just forget to install the robot tools, however if everyone can use these tools easily, then there is a risk of no one will ask you about supporting the robot. The reason users ask for supporting service may:
So from "industrial provider" side, Is there any chance that faster release become good??? By the way, how many people want support due to (1) and how many for (2). |
I think maintainer will use cherry-pick to do this type of jobs, also when we have useful or critical patch to one devel-$ROS_DISTO branch, then we want to commit that one to another branch. In that case, if the PR contains many commits, is there way to chery pick mutliple commits as Also when we maintain software, will maintainer expect that contributor will write test code for their commits? Or is this maintainer's job to write test code? Is there any |
another solution is to create hrpsys-trunk locally on the machines related with the real robot. |
about test code; |
Today we updated the source codes inside of the real robots and we found that the work was painful. We said 'Did you merge that PR?" a lot of times. So I suggest that creating branch for hrpsys trunk on rtmros_common, rtmros_gazebo and rtmros_tutorials. we don't need hrpsys-trunk branch on start-jsk/hrpsys, because the diff is just a one line. I prefer hrpsys-trunk to devel as the name of the branch. So we will have hrpsys-trunk, and we need few policies about sending PRs.
about 1 and 2, we can use cherry-pick but I'm not so good at git magical commands. another solution is sending PR to sync these two branches. |
If you guys have no opinion against the hrpsys-trunk branch, I will create that branch tonight. |
this seems good, just to clear,
this must be done in automatically, also we'd better to check if the PR is really requires
do you mean `every release of hrpsys (fkanehiro/hrpsys-base)
|
Do we really need to create hrpsys-trunk branch for rtmros_gazebo and rtmros_tutorials? |
by the way, do we really create hrpsys-trunk at this moment? I think we'd better to tuckle on start-jsk/rtmros_common#416, so that we can check if merged version did not break downward packages. |
I think we should have hrpsys-trunk branch. just saying 'use hrpsys-trunk' is simple enough rather than 'merge these 4 2014年4月19日土曜日、Kei [email protected]さんは書きました:
from iPhone |
Yesterday I talked to @k-okada and understood the situation better. I just spread out how I understood it and if this is correct I would +1 for creating
|
I think about this issue over weekend and have another idea: (1)
and what we discussed here is
I have still worried about few things on this approach
But when we close look at hrpsys, we can classify RTC to stable one and experimental one. For example SequencePlayer is stable one but AutoBalancer is experimental at this time. So far, I thought if you changed any of IDL file, then it will break hrpsys / rtmros_common connection, but it might be if you changed any of Stable RTC's IDL, then it will break, but changing experimental RTC's IDL is ok for stable users. If so, we can create new version of hrpsys, say 315.2.x whose IDL is different from 315.1.x, but if we look only Stable RTC's IDL it is as same as 315.1.x. and this version will be compatible with old version of hrpsys as follows. (3)
I've create CI job to check this situation at https://travis-ci.org/k-okada/hrpsys-base/builds/23430636 But another question is when we'll release new version 315.3.x, which have different stable RTC's IDL? I think it should be synchronize to ROS/Ubuntu release, so it means now. So it going to be like this. (4)
Difference between (2) and (4) is, (4) can release deb file so that we can solve (C) problem. (A) and (B) staill remains, but two people , one working on H/old and others working on H/new, then they will think like why can I use others's code? but if they working on different ubuntu release, may be they will accept. If we think this direction , we 'll use newer hrpsys version strategy that and release time line is become something like this.
So the rules is
In order to do that
I'm afraid this direction is too stress for industrial players, because all of active developer's efforts is done in experimental revision and they won't care about backward compatibility.
|
it semms too tricky to separate deb according to the ubuntu distribution (What a progress I say "too tricky"!). I'd like to keep things as simple as possible. Just idea, if we have hrpsys-trunk and master, is it possible to create PR automatically using auto generate following PRs.
|
As dealing with industry users, I think I'm fine as long as:
I'd rather like to give this a shot how we can handle this proposed situation. I'm afraid core developers might want to figure out / end this discussion asap and get back to their work? From here are just comments.
I think core developers use
Having stable API per major release (ie. ROS distro) is ideal, not just as a ROS package but in Ubuntu or I assume in any software devs, but because the user base isn't yet that huge, I think we can work it around by making complete announcement (and support for industry users) if API breaking change is a must. |
It's difficult to separate core developers and core research users because we share the same |
Moved from start-jsk/openhrp3#43
The text was updated successfully, but these errors were encountered: