Purpose of openwrt-devel?

Elliott Mitchell ehem+openwrt at m5p.com
Thu Mar 21 14:28:29 PDT 2024


On Thu, Mar 21, 2024 at 10:00:46AM +0100, Olliver Schinagl wrote:
> On 20-03-2024 01:34, Elliott Mitchell wrote:
> > On Mon, Mar 18, 2024 at 10:53:12AM +0100, Olliver Schinagl wrote:
> >> I expect this to be done very rarely and by users that know what they
> >> are doing, but just "automating" a few logical git commands.
> >>
> >> Performance is not a key-driver here. It's too rarely used.
> > True, though being faster is nice.
> 
> While true, I don't think we even have to start arguing if runtime is 
> less then a single second. This on my 12 year old PC, granted, the CPU 
> is only 8 years and the nvme SSD only 5.
> 
> ./scripts/kernel_bump.sh -p realtek -s 5.15 -t 6.6  0,40s user 0,33s 
> system 105% cpu 0,694 total
> 
> ./scripts/kernel_bump.sh -p ramips -s 6.1 -t 6.6  0,40s user 0,40s 
> system 106% cpu 0,753 total
> 
> Even if you bumped all repo's (with a dumb for-loop) we'd be talking 30 
> seconds to do _all_ of them at once (which never happens).

On a computer of similar class, but with *much* slower storage
(fileserver is sick and underperforming): real    0m0.477s

So if this was directly to an SSD, 2 orders of magnitude.


Odd thing about what you put in parentheses.  I've been trying to get a
discussion going about that for months, yet seems no one notices the
suggestion.  This was a distinct goal of the script, to hopefully get
that discussion going.


> >> Leaving the tree in failed state imo is a feature. We switch from the
> >> normal branch to a special branch to do all operations. The user can
> >> always force ably switch back. Ultimately, this is a choice, can a user
> >> fix things and inspect failures, or 'oh it failed, lets reset'. Reset
> >> instructions during cleanup is a good idea however.
> > Therein lines a concern.  Why does yours switch to a special branch?
> > It is not human, it doesn't need a computer to keep track of commits for
> > it.  As such it shouldn't need a branch.
> 
> Why is this a problem? Why can't a script that is intended to remove 
> manual labor, behave like a human. There comes the readability and 
> maintainability argument once again. If a human can read it, he can 
> modify it. If the script fails, or a special case pops up, a human can 
> do those steps manually quite easily.
> 
> I'm a big beliver in KISS. So yes, the script is not perfect and doesn't 
> have shiney gold plated parts. But it is simple, can be understood by a 
> human, by a non-developer even I'd argue.
> 
> In the end, computers do what humans tell them to do. In the end, humans 
> reading things is far more important, then super-optimizing a script, 
> that's run once or twice a year by a human developer.
> 
> And using a branch does have its advantages too. We can switch to the 
> branch and examine if things go wrong. Again, this is something a human 
> would do too :)

A human can tell `git` to move to an unreferenced commit.  Useful to know
how if things go wrong.  Though I will admit by having your script be so
close to things many people do, does make it more obvious to more people.

Yet if that is an issue they should be looking at the URL where the
approach came from and reading that.

> > If you examine the result, you might also discover its approach has some
> > rather substantial advantages.  At this time I believe with the second
> > commit it offers a proper superset of your script's functionality.
> >
> I wonder what this super set is though and why it is so badly needed ...

Your knowledge level is showing.

Given a Set A and Set B:

Set A is a superset of Set B, if:
For all elements 'b' of Set B, element 'b' is also an element of Set A.

Set A is a subset of Set B, if:
For all elements 'a' of Set A, element 'a' is also an element of Set B.

Set A is a degenerate superset of Set B, if:
Set A is a superset of Set B; and there is NO element 'a' of Set A,
which is NOT also an element of Set B.  (ie they're the same set)

Set A is a proper superset of Set B, if:
Set A is a superset of Set B; and there is at least one element 'a' of
Set A, which is NOT an element of Set B.


```
git remote add ehem https://github.com/ehem/openwrt.git
git remote set-branches ehem bumper script
git fetch ehem
git rebase ehem/bumper ehem/script
```

The UI approach for `kernel_upgrade.pl` is rather distinct from what
`kernel_bump.sh` has.  I'm unsure how closely what it does matches the
behavior of your script.  Yet the modified `kernel_bump.sh` performs
similar to what you have, by invoking `kernel_upgrade.pl` once with
appropriate arguments.

Then there are the things `kernel_upgrade.pl` can do which
`kernel_bump.sh` has no equivalent.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg at m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445





More information about the openwrt-devel mailing list