Viktor Tarasov wrote:
> >> Nobody doubts that review in critical.
> >> But what shall we do now, how can we 'move forward',
> >> if the review/acceptance process is stopped at the Gerrit level
> >> and the only person that is capable and has authority to do
> >> something is absent for a long time already ?
> > 
> > I suggest to iterate over proposed patches until they are perfect.
> 
> Iterate with who?  There is nobody on the other side of the wire.
> For months the only person that is capable to do/answer something
> is absent.

Martin is not the only person who you can talk to about code. Try
asking the mailing list, and if that fails it is always possible to
do self-review and iterate locally.


> > That way, those who can submit commits in Gerrit (this is the Gerrit
> > term for including a commit into the main repository) will need to
> > spend close to zero time on doing so. Their job becomes so easy that
> > it is a no-op. Then it also gets done quickly and frequently. This
> > must be the goal.
> 
> I'm completely agree with you, and admire the beauty of your abstract
> considerations, but what have we do here & now, in our current
> situation -- Jenkins is dead, Gerrit is in mute coma.

Jenkins may have a problem, but Gerrit looks like it is functioning
fine, at least now. It is trying to merge commits which have been
pushed, reviewed and submitted for merge, but where the commits have
been pushed with dependencies, and where the dependencies have not
yet been reviewed and submitted for merge.

Here is where perfect patches make all the difference. The dependency
looks wrong, and if there was no dependency, the commit would already
have been included in the repository.

Granted, Gerrit was introduced recently and will take a little
getting used to, for people to learn the ins and outs. But in the
end it is an incredibly helpful tool.


> Believe me, I have other interesting things to do.

Yes, I believe you. :)


> But for months I'm looking the way to help to 'move OpenSC forward'
> and but had no answers -- there is no activity on the other side.

I think everyone is on the same side.


> Decision to pull the ECDH, the ePass2003 into SM branch is my
> isolated desperate attempt to 'move forward'.

:) Well, maybe nothing desperate is neccessary. Ludovic can submit
commits in Gerrit to the main repository, so work on making the
commits in Gerrit trivial for him to submit. I believe he will do it
quickly.

One very nice thing about Gerrit is that anyone can push an improved
version of anyone else's work. In order to not make a mess, it is
important to preserve the Change-Id inside the commit message, but
everything else can change, both the rest of the commit message and
the contents and the history of the commit.

So for example:

https://www.opensc-project.org/codereview/#change,7

has status Submitted, Merge Pending

Ludovic has approved and submitted this change. Gerrit tries to
include it, but a dependency is missing.

Change 7 has one dependency:

https://www.opensc-project.org/codereview/#change,6

which has been verified by Jenkins, but not reviewed and submitted by
Ludovic. This change has no further dependencies.

There are two ways to move forward on change 7:

1. Ludovic can review and submit change 6 for merge, which will then
also make change 7 get included in the repository.

2. Anyone with a Gerrit account can fetch the commit in change 7
according to the download instructions, and cherry-pick it onto a
new branch of the main repository, and then push that branch to
Gerrit. This will make the change no longer have a dependency.

Dependencies are created when a branch with several commits is pushed
to Gerrit. Gerrit prefers that any branch being pushed is strictly
for logically related commits. Gerrit prefers very many different
branches, rather than only few. Fortunately, branches are fast and
easy with git!

After someone has done 2. above Ludovic will have to review and
submit the updated change 7 for merge. So it seems more efficient to
convince Ludovic to review and submit change 6, and then change 7
will automatically go in right after it.

Repeat for all open and later added :) changes.


> > Static analysis of commits,
> > e.g. using checkpatch.pl from Linux possibly with som modifications,
> > can and must be automated. Gerrit is the perfect place to do it.
> 
> Please, come back to earth -- Gerrit is not actually functional.

It looks good to me? https://www.opensc-project.org/codereview/

I've just registered and signed in. It works for Ludovic as well, and
I'm sure he will submit commits as long as they need no further work.
I don't really see a problem.


> >> - historically, afais, driver authors where relatively free in
> >>   coding style, implementation particularities, etc. in the part
> >>   that concerns it's 'own space' .
> > I find this problematic since it leads to low reusability. Even just
> > visual style differences are not really helpful. A uniform codebase
> > is more coherent and easier to deal with for everyone involved. The
> > coding style rules do not have to be very many, but having project
> > wide rules is a good thing.
> 
> Completely on you side. But that's the current state of art.
> To change something we need more resources.

Yes of course. And perhaps it is not highest priority to work on
style cleanup. On the other hand, doing that might be a way for
everyone to contribute very simple changes and get comfortable with
the tools, and trivial things like how to create nice looking commit
messages and so on, the technicalities.

Remember to install the Gerrit commit-hook locally in all clones of
the repository, so that a Change-Id is generated locally when you
commit. Avoid pushing anything to Gerrit which doesn't have a
Change-Id, in order to reduce issues you may have if and when you
start reworking either a patch you yourself created, or a patch from
someone else.

If no commit-hook is installed locally, Gerrit will generate a
Change-Id on push. If two different versions of the same commit are
pushed, Gerrit will generate two distinct Change-Id, and thus they
will appear to be different changes, when in fact they are only
different versions of one and the same change. Running the
commit-hook locally avoids this problem, because the Change-Id is
only generated the first time that the commit is created. The
commit-hook will not replace an existing Change-Id.


//Peter
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to