On Tue, 2022-11-15 at 08:03 +0000, Tony Abbey wrote:
>
> I am not a software developer - just a user of Pulseview/Sigrok. So could
> someone please explain how github works - ie merges, forks, approvals etc?
> I have contacts with various high level software people, so maybe I can
> pursaude them to help, if I could understand what needs doing.

Well I'm not a maintainer in the sigrok project, but have been an
active user for a few years. Here is how I see it: It may be
shocking but it's just regular software development and normal
use of git, while none of github is required.

There is no "need" for github at all in the context of the sigrok
project. The project used to work before that, did use git for
version control, did communication with users and between
developers, had bug tracking and continous integration, received
and accepted submissions, etc etc. The github repo was (and still
is) a read only mirror of the code base, mere convenience for
those who think they "must" download from there. Nothing else.

The assumed/perceived/expected "shift" from the sigrok project's
"native" resources and communication channels to github as _the_
place to be I cannot understand. It could be yet another instance
of users agreeing that developers need to do more for them (let's
open yet another communication channel, and also keep watching
there). Or it could be an opportunity which currently is mostly
unused by those who suggested to "also go there".

If you perceive a lack of activity on github, then ask where
those people are who initially suggested or even requested doing
it. There must have been a reason, anyone remembers?

So I cannot speak for how github is done. Maybe github has some
conventions, maybe github users "got trained" to expect something
specific, maybe many github users cannot imagine there'd be a
world outside of that one provider. I don't know, and I don't
care. The sigrok project still has its home at sigrok.org and not
github.com -- unless I missed something. Also doesn't matter
whether other projects have their home on github, or whether
others exclusively work there. None of this dictates to sigrok
how they work. From my perspective github has always just been
a strictly optional alternative view on the code base for the
sigrok project, never an essential utility.


Though I can speak about how git is done and how OpenSource
projects can work, and what I have observed and absorbed from
active participation in the project:

There are communication channels "were the developers are", by
tradition that's IRC and the ML, and these are documented in the
project's code base and on the homepage. You can ask for help
there, or provide help (ideally both of them at the same time,
it's supposed to not be one-way). It's also where you can learn
of what's needed or wanted, and you can consider helping get some
of that done.

When you got code to submit, you'd push it to some public repo
(could be anywhere really, just needs to be public), and mention
the URL either in IRC or the ML. You'd either have the submission
picked up (if it's in a proper shape and desirable), or you'd get
feedback and improve and provide something better. That has
always been the case, there is nothing surprising about it.

The git utility is very helpful in the process. Lets you track
versions, separate concerns in branches, organize commits in
useful chunks, amend your series as you progress, re-spin new
series for review iterations, etc etc. The git utility also lets
everybody use and test what's submitted and has not yet been
taken to mainline. I pity those who sit and keep waiting for
somebody else to ship it completed to their desk so that they can
_start_ seeing it. Many users appear to be stuck in "central
thinking". Which also contributes to stalls when developers want
user feedback while users wait for developers to ship something
that magically works for them. Guess how this works ...

Picking up something into mainline is just a regular git
operation. A developer takes the commits that you published, and
applies them to master, ideally in a linear history for sanity.
(For the interested, it's a rebase then fast forward merge.)
Committing is the boring part and trivial, the effort and essence
is in doing proper reviews and end up with a submission that is
acceptable. This is where the project is severely lacking
manpower, and desperately needs help.

Using github is "just" another alternative. Adds convenience for
those who love web UIs, but also adds confusion (they cannot call
things the same as everybody else does, can they?). Whatever
happens on github is _just_ the communication part of things.
None of github is used and neither required for sigrok work. An
"approval" on github means nothing. No developer uses github's
merge buttons or other utility. No github constraints apply to
whatever sigrok does to accept submissions. No submitter is
forced to use github. All that a sigrok developer cares about is
a given code base and regular git activity to maintain that code
base. Any origin of an acceptable submission is as good as any
other to have it picked up.

So all it takes for a person to participate actively: Engage the
brain (you always should during development work). Pick any tool
you like (a working environment with an editor and git, and some
IRC client or MUA). Pick up public information that's available,
pick up common knowledge as you see it form, and contribute. Help
getting submissions reviewed, and help submitters get their work
into an acceptable shape. Don't wait for a developer to say it
again and again and again and again, consider helping them get
across what was said a hundred times before. Point submitters to
available information if they are not aware. Help them "get git",
don't expect developers to "provide training courses" to each
submitter individually, or even to any submitter several times.
Use feedback from past reviews to help submitters improve their
current submission. This assumes: If you want developers to spend
their time developing the features and fixes that you expect them
to. The alternative is to watch developers having to do this over
and over alone and in addition to their development work. Wear
them out if you wan to. But don't be surprised if this wears them
out.

The current lack of reviewers (active persons helping the project
by helping submitters, not "a title" or badge that you can stick
on) is a consequence of past users watching the developers drown.
It was convenient. For those who watched. But only as long as it
worked. For a special definition of work. This can only be
unbroken by more users lending a hand, to finally get the work
done and not break your developers even more. Sitting by and
watching, shouting from the sides "not enough action, drown
faster!" and "we are bored, entertain us, dance!" is not going to
help in that situation. That's why I so insist to not keep up the
past conditions that took us into this current situation which
everybody is so unhappy with. It's not only that you the users
are frustrated by the deafening silence. Developers are, too.
Think about it!

Consider doing something really helpful. Take a serious look at
what was submitted. Try to walk in the recipients' shoes for a
moment. Would you like to have butchery done to your code base?
Would you enjoy piling up unreadable snippets with unintelligible
comments or commit messages? Do you want warnings in your builds
that haven't been there before? Do you want special hacks that
serve one single person and his very specific local situation and
increase your workload? Or do you want something that works for a
large number of users and remains maintainable?  Just apply the
common sense that you also would in any other development task,
wouldn't you?

Remember that the recipient is not receiving a gift, a submission
is a request to accept future work. When a cleanup is too tough a
requirement upon initial submission, what are the odds of the
person to stay around and continue maintenance? There is a reason
why submissions need to be acceptable before they get accepted.

You are not a software developer? Not familiar with hardware and
protocols? But you are a technical person, who understands
constraints and necessities and the concept of technical debt,
aren't you? And consider this: You got a field of expertise, and
think that it is not ubiquitous? Do you seriously expect one or
two developers to intimitely know _all_ of what's covered by the
sigrok project? Every version of every device, every transport,
every file format, every decoder protocol, every programming
language, every build tool, every communication platform, every
pet toy of every user who happens to utter a request, everything
else under the sun? And have the time to care about all of them
equally at the same time? Honestly? Think! Help in whatever way
you can. BUT CEASE WATCHING!


virtually yours
Gerhard Sittig
--
     If you don't understand or are scared by any of the above
             ask your parents or an adult to help you.


_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to