Re: [LEDE-DEV] Release 17.01.0 binary packages have changed and SDK inconsistency

2017-03-28 Thread James Feeney
I am motivated to rant again on this topic.  Repeating what I said last
November, before the new release process was finalized, in response to
David Lang:

---

>> There is an interesting question of how to refer to what state of each feed
>> you use for a release. Currently OpenWRT doesn't even try to do this. The
>> feed version you get is the feed version that exists at the time you last
>> pulled from the feeds.

> Uhm - I'm a bit taken aback by that.

>> This hasn't been a big problem in practice, but it does mean that you don't
>> really have a repeatable build.

> I would have thought that that was a "show stopper".  It certainly does not
> inspire confidence.

> I say this is a "problem" and should be a high priority issue.

>> See my other e-mail about [git] submodules for a
>> discussion on this.

> Yes, I looked at that.  It would seem to address and solve a number of issues.
> There would be no need for a separate "manifest", and, most importantly, there
> would be a git "snapshot" of the *entire* project state.  If I understand,
> that also means there would be a unique git tag that would label that state,
> and could be associated with any kind of specific nickname, version, and build
> number.  It would mean that every build was repeatable.

>>> It would be possible, I suppose, that each of these linked repositories
>>> could be *required* to use the *same* versioned naming scheme.
>>
>> can't be done, these other repositories are not under our control. The most
>> we can do is reference exactly which release we use..

---

So then, nothing was done to address this issue, when developing the new release
process, where, instead, at worst, LEDE could simply "snapshot" a "feed", and
keep that copy on github, and then *under LEDE's control*.  And git submodules
are still an available solution.

I don't know that there is any polite way to express how ridiculous I find this
situation, of non-repeatable builds, let alone the failure to bump the version
number of the release.  I might call it "unprofessional", though I'm tempted to
be otherwise demeaning.

Let me say again, I think that this is an important issue that the LEDE project
needs to address and remedy.  I believe that the ultimate credibility and
reputation of the LEDE project is at stake.

James

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] Release 17.01.0 binary packages have changed and SDK inconsistency

2017-03-28 Thread James Feeney
Hi Daniel

> Well, this was actually fixed by having a specific snapshot of all
> feeds referenced in the SDK. Which is exactly the cause of all the
> confusion now...
> ...
>>> ... It would mean that every build was repeatable.
>
> Every build of what exactly?
> Do you realise that *none* of the packages from any of the feeds are
> actually included in the released target binaries?

Realize?  No - I'm still learning how this build process works in LEDE.  My
impression is that you are distinguishing between "packages" and some other type
of thing, which the lede-project.org site seems to implicitly, and generically,
refer to as just "firmware" - even though a "package" is also a type of
"firmware", and this "firmware" is also a type of "package".  I will infer that
you mean to distinguish between the "kernel and base filesystem" package from
all other "packages".

You also seem to be implying that all the various "kernel and base filesystem"
package builds are now precisely repeatable - even though this fact does not
seem to be documented anywhere.

> Strictly speaking the package feeds are simply not a part of the
> project making the release.

With respect to the lingo, "package feeds" and "project making the release", I
have no understanding of the meaning of that statement.  Perhaps you could
define precisely "package feeds" and "project making the release"?

> From my understanding the original issue which was brought up by Pau
> is the result of a lack of documentation how to properly use the SDK
> and ImageBuilder. It doesn't have much too do with that past trauma
> of yours, though obviously resembled it closely enough to trigger some
> painful memories and write an email using lots of quotation marks and
> emphasis to make us *see* "something".

Ha!  Quite!

> Release builds (ie. building the buildroot from source) are entirely
> reproducible, thanks to the long and tideous efforts of the
> reproducible builds team, eliminating timestamps and other obstacles.

Ok - I don't actually know what is meant by "buildroot", but my impression is
that you mean the kernel and base filesystem, yes?  And so then, any package
labeled in similar form to "17.01.0" will be uniquely reproducible at any time
in the future, yes?

> I fail to see the issue which would even remotely justifies the degree
> of inflated drama.

Simply a combination of my uninformed state of mind, where I am left to "fill in
the blanks" with the information presented in the past, specifically that "you
don't really have a repeatable build."  Since that seems to have changed, it
would be good to advertise that fact in public, which is to say, to document
that fact on the lede-project.org website.

> I fail to see how this is unprofessional or even
> inconsistent or anything like that. Maybe there have been
> misunderstandings caused by wrong expectations caused by a lack of
> documentation.

Perhaps, depending upon what is meant by "wrong expectations".  *My*
expectations of the LEDE project are simply *my* expectations, no matter what
the state of the LEDE project might be, documented or not.

> I also fail to see how git submodules could make things
> any better. Imho using git submodules, especially for meta-stuff is
> a very bad practise, many distributions decided against that and for
> good reason, see e.g. some input from puppetlinux [1]. Money quote:
> "All of this smells of an antipattern. Git submodules sound great
> initially, but the farther down this road that you go, the more work
> you're going to generate trying to work around the limitations of git
> submodules."
> Maybe subtrees can be better. Having an explicite manifest, like
> feeds.conf in the SDK, does the trick. I agree that it's a bit
> hidden and that practise has not been very well documented (yet).

I cannot speak to that specifically.  If, as you suggest, there is a solution
already in place for LEDE "controlling" the source code from the package source
repositories, then this is no longer of any importance.  But I am not quite sure
that I have heard that that is so.  Are all of the "package" builds versioned
and repeatable?

> Anyway. Back to the real issue here:
> Imho you shouldn't use the SDK to build core packages or even any
> package provided in a binary feed belonging to that release and then
> use that version (which you have just built locally) in the
> ImageBuilder. Yes, you may need to build it in order to build your
> local packages to satisfy build dependencies. But when it comes to use
> the ImageBuilder, always use the upstream binary feeds and only include
> your hand full of local packages in a seperate feed.
> If you really need to modify packages already included in an upstream
> binary feed, rename them and use the (now working) PROVIDES variable to
> satisfy dependencies (or make sure your modifications go upstream!!!)

The specifics of that process would be outside my purview.  As long as the
"package" builds are versioned and repeatable, 

Re: [LEDE-DEV] Release 17.01.0 binary packages have changed and SDK inconsistency

2017-03-29 Thread James Feeney
Hi Alberto

> Also the kernel is handled like a package for the build system, but
> since most devices expect it outside of root filesystem in various ways,
> it's added to the firmware image the way the device's bootloader expects it.

I haven't seen a preferred term for the class of this combined kernel and base
filesystem.  LEDE does name each of them individually, based upon the target
architecture.  It would be nice to have some generally recognized single name
for this class, "the kernel-fs packages" or some such.

Of course it's a little complicated, since most traditional Linux distros target
only one or two hardware architectures, and LEDE targets many many different
target architectures.  But then, that's the whole point of LEDE.

> You will notice that it states the official download link for the
> sources, a SHA256 hash and a specific version for the package name.
> On some other packages it will state git commit or other way to identify
> the same source to pull down and build.
> ...

So, if I understand, there always exists a set of hashes to verify that, at any
time in the future, a package can be built which is identical to any package
built in the past.

Bastian also mentions "checkout LEDE and all feeds at a specific timestamp" as
an approach.  This suggest two general tracking mechanisms: 1) tracking by hash,
and 2) tracking by time-stamp.  Is one of these mechanisms, or are both of these
mechanisms, used universally in the LEDE package management system?

> In /patches folder of each package's folder you will find any patches
> that will be applied to the source after downloading it, before
> compiling, again the example package:
> ...

Hmm - it is not entirely clear to me that, if the patch set changes in the
future, the version number of the package will be distinctly incremented, as
would be pretty standard for any other Linux distro.  Does each package have a
minor version number, in the source and binary repositories, to allow
distinguishing patch set changes, used in each build of every package?

> Is this enough for having repeatable builds?

Perhaps, assuming that these distinct version numbers exist, and that these
historic time-stamp or hash verified sources are archived somewhere and 
available.

> Yeah, I agree that adding this to the wiki would be good.
> If you confirm that this answers your questions (more or less), I'm 
> adding it to the wiki.

It sounds like the LEDE package management system has changed and improved over
the past months.  It would be great to see your description of the LEDE package
management system and build system on the wiki!

Still, as Daniel has suggested, I may not quite understand Pau's underlying
concern, which started this thread.  Looking back, Pau says:
"The SDK published then is not consistent with the current package binary
repositories", and "... if there are fixes a new revision must be published
instead of modifying the current one (i.e 17.01.1).

Are these concerns simply misunderstandings of the changing LEDE package
management system?  Or, are these concerns addressing actual shortcomings with
version control in the LEDE package management system?  I don't think I've heard
a definite answer.  I was not trying to hijack Pau's thread, but Daniel has
questioned whether my issues and Pau's issues are the same, or not.

Thanks
James

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [PATCH] musl: update to 1.1.17 - LEDE version numbers?

2017-11-02 Thread James Feeney
On 11/01/2017 12:15 PM, Hannu Nyman wrote:
> At the first glance LEDE r5217-098afa1e1b compiled with 1.1.18 booted ok and
> got normally a DHCP wan address, hostapd started etc..

Excuse me what?!  "LEDE r5217-098afa1e1b"?

Why does that look like a "release 5217" and a SHA prefix "098afa1e1b"?

So what - does LEDE have two completely different versioning systems?  Is LEDE 
switching over to the openwrt versioning system?  From where comes the "r5217"? 
 Is that "r5217" a strictly reproducible LEDE version?

Somebody, please clue me in here.

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


[LEDE-DEV] LEDE version numbers?

2017-11-06 Thread James Feeney
On the topic of version numbers of the form "LEDE r5217-098afa1e1b" about which 
I am clueless, there is some discussion about the challenge of relating git 
hash numbers and "release" version numbers:

Point releases for the GNU C Library
October 16, 2017
https://lwn.net/Articles/736429/#Comments

and then:

[RFE] Add minimal universal release management capabilities to GIT
20 Oct 2017
https://public-inbox.org/git/1290947539.4254.1508496039812.javamail.zim...@laposte.net/

Still, this is me again ranting about a problem which has no simple one 
solution.  Food for thought...

At one extreme, the linux kernel development uses a manual process to create 
formal development releases from a git repository.  On the other extreme, the 
GNU C Library (glibc) project generally refuses to provide development 
releases, or even bug fix releases, between its official releases.  
Parenthetically, I notice that those two projects were perhaps the antithetical 
archetypes for "The Cathedral and the Bazaar" development models.  Even though 
both projects use git now, they use it differently.

LEDE is even more difficult, because it is not just one "package", but a 
construction of many packages.

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] LEDE version numbers?

2017-11-06 Thread James Feeney
On 11/06/2017 09:01 AM, David Lang wrote:
> These version numbers are used between releases, the part after the - is 
> enough of the git commit id (it's hash) for you to identify it. The r#  gives 
> you an idea if it's newer or older than another one (since git hashes don't 
> give you that info)
 
Thanks for that David!  How are the r#'s known?  Are they simply incremented 
with every git commit?  And they would apply to only one particular branch?  I 
see two "heads", "master" and "lede-17.01".  Do the r#'s apply to only one of 
those?  Or, are "master" and "lede-17.01" guaranteed to not be parallel 
branches?


___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] LEDE version numbers?

2017-11-07 Thread James Feeney
On 11/06/2017 11:44 PM, Matthias Schiffer wrote:
> r# is the number of commits since the "reboot" tag. If your local branch
> (e.g. "master") has a upstream branch (e.g. "origin/master"), it will use
> number and commit ID of the last common commit of both branches, and add
> the number of local commits with a + (e.g. "r4601+95-1ab227d688" - the last
> common commit is 1ab227d688, 4601 after "reboot", and there are 95 local
> commits that aren't upstream).

Thanks Matthias, that helps a lot.  I also found some help with making sense of 
the git lingo, for anyone that has not already played with this:

Visualizing Git Concepts with D3
https://onlywei.github.io/explain-git-with-d3/

It's an interactive visual learning aid.

> Basically, we tried to mimic the "revision
> ID" SVN provided for the old OpenWrt trunk, adding some extra information
> provided by git.

Ha!  So there *was* an element of the OpenWrt revision numbering!

I'm tempted to ask if there is not some value, then, in a LEDE revision 
numbering that would look like "lede-17.01.r4601"?  Would that not be a 
precise, and monotonic, version declaration, no matter whether it was an 
"official" release, or a nightly, or even some random snapshot?

Hmm - and then, isn't a designation of the form "lede r5217" completely 
unambiguous, other than not providing a branch name, to say, for instance, that 
it is, or is not, an "official release"?

So then, LEDE does not run parallel development branches in the main git 
repository, and simply designates certain development snapshots as "official 
releases"?

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] LEDE version numbers?

2017-11-07 Thread James Feeney
On 11/07/2017 07:43 AM, Matthias Schiffer wrote:
> No, we have two official branches: master (active development for the next
> major release), and lede-17.01 (forked from master shortly before the 17.01
> release; only bugfixes and other "small" changes are backported from
> master; base for 17.01.x maintenance releases).

Aha!  That's really useful.

I looked for some help with git visualization:

Visualizing branch topology in git
https://stackoverflow.com/questions/1838873/visualizing-branch-topology-in-git

Then:
git clone git://git.lede-project.org/source.git
cd source
git log --graph --all --pretty=fuller --simplify-by-decoration

Also useful:
git-big-picture -i -m -f pdf -v okular

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


[LEDE-DEV] DirtyCOW backport

2016-10-23 Thread James Feeney
What are thoughts about backporting the DirtyCOW patch to the Lede kernels?  I
did not see any mention in the Lede-dev Archives.

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] Actual community change and additional developers compared to OpenWrt

2016-10-25 Thread James Feeney
Hi - a few "armchair" comments from a complete outsider, repeating things that
you probably already know:

> There are large PRs (think the Mikrotik changes) which are unsuitable for
> inclusion as-is, yet too worthwhile to be left rotting.

One of my favorite lines from the first chapter of ESR's CatB:

"Linus Torvalds's style of development—release early and often, delegate
everything you can, be open to the point of promiscuity—came as a surprise."

Mostly my relationship to FOSS is writing bug reports - not here, yet - and
chiding my friends who might complain about code, but then not - at least -
write bug reports.  Certainly the single most important interaction with a
software project - or any kind of social activity - is the response I get from
attempting to participate.  This can range anywhere from the "slap in the face"
experienced when being completely ignored, to actually generating a real
incremental addition to the code base.  The best way to "turn people off" is to
ignore them.  And the best way to engage their interest is to respond in a way
that empowers them, that makes them feel that they are able to make a
contribution to something that matters.  Of course, everyone already knows that.

But still, "be open to the point of promiscuity".  "Promiscuously Open" to
accepting patches from "outsiders".  "Open" to accepting "structural" changes.
Imagine someone trying to "shoehorn" systemd into LEDE.  How would that feel?

I suspect that "developer time" and "developer workload" are not really the
issue, at the root of it, not really.  Making friends with strangers, and then
letting them muck-about in your "back yard".  That's not so easy.  It's not
"safe".  But developing those "stranger" relationships, taking the risk,
allowing change, and taking the time - that's really really important.

Easy for me to say - I'm just a spectator.  I don't have to deal with the
consequences.

So far, a brief glance at the mailing list, I see people asking questions and
people actually answering those questions.  The mailing list seems quite
responsive - very very good!  And there is introspection.  It looks healthy to 
me.

One comment about the web site, and the home page, since that is the LEDE "first
point of contact".  If someone could "personalize" that - say, once a month,
update a summary about - a few idle comments about - say, the mailing list
activity and changes to the code base.  Because now, at first glance, it looks
"static", like "dead", like "nothing is happening" - and that's not true.

Home page:  Last updated 2016-08-10 20:04:24
Meeting Logs:   Last modified 30-Mar-2016 09:57
LEDE Wiki:  Last addition ??? no idea

Hmm - let me also say this another way.  Everyone with an interest in FOSS knows
who Linus Torvalds is.  Who is the "leader" of the LEDE Project?

I cannot say.  I don't know.  And I am not invested in the answer.  I'm
perfectly comfortable with the idea that it could be anybody.  I simply do not
know "who the players are".  The LEDE Project is "not personal" - it's an
"abstraction", even though I run the software.  Not even Wikipedia can tell me,
though I did find a link there, to an article from TheRegister:  "Individuals in
the process include Jo-Philipp Wich, John Crispin, Daniel Golle, Felix Fietkau,
Hauke Mehrtens, Matthias Schiffer and Steven Barth."

Whoever you are, "mystery guys", take a risk, "expose" yourselves.  Make it
personal.  I might want to get to know you - not Biblically, but still.

Easy for me to say - I'm just a spectator.  But then, I might have to deal with
the consequences.

As it is, loading Linux on Embedded Devices is kind of 'mysterious' and 'scary'
if only because most people don't dare touch the manufacturer's boot loader
without access to a soldering iron and specialized programming hardware.  To say
nothing of cross-compiling, which seems to *require* a specialized chroot
environment, to actually work effectively, without "silent failures".

And, if you want a little - well, really a lot - more public recognition,
government support, and industry funding, I believe that you just need to learn
to say "IoT DDoS".  Pick up the gauntlet and shake it at people.

I appreciate what the LEDE community is doing, and intending to do.

James

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] Release Preparation Questions

2016-11-20 Thread James Feeney
Hmm - A few comments from a naive outsider -

> 1) Images shall have a version number X.Y.Z where X is the year of
>   release, Y the month and Z the build number produced by buildbot
>
> 2) The nonshared base repository holding kmods will be copied for each
>   consecutive build, so there will be a
>
> http://downloads.lede-project.org/$version/targets/ar71xx/generic/
> packages/$buildno
>   for each build in order to ensure kmod compatibility even for older
>   installed images

Right off, I see the term "buildno" being used twice in a "name": 1) "version
number X.Y.Z ... Z the build number", and 2) "$version/targets/ar71xx/generic/
packages/$buildno".  This appears redundant, and redundancy is a bad idea in
this context.

> Assuming that for each released build we produce a tag then we would use
> the tag as designation plus the current hash, e.g. "16.11.1+git6b40471"
> or we can alternatively use the logic used for master and use the last
> tag as version number and count the number of commits since it, e.g.
> 16.11.1+r5"

"Human readability" is an issue here, where "r5" is easier to recognize than
"git6b40471".  If "information" is not essential *do not* use it in a "name".

Looking through these posts, I see the following terms used.  I "think" I know
what some of them mean, but I am naive and am probably misunderstand what all
these terms *actually* mean.  Still, this is a very long list of terms to apply
to a unique "name".  If, in fact, each of these "terms of art" are both a)
distinct, and b) essential, then the "version number", as used in the
introductory post - "any related resources like download URLs, Git repositories
etc. are using predictable names which can be constructed from the version
number" - must contain the entire set of "independent variables", in order to
convey the required information.  I count twenty independent variables:

 1) base repository
 2) external feed repos
 3) feed source branches
 4) release branch number
 5) commit tags
 6) builds
 7) master
 8) release branch
 9) release number
10) branch release builds
11) package feeds
12) commit hash
13) source branch
14) subrelease
15) new release
16) security fix
17) nickname
18) code name
19) version number
20) main firmware

You know the drill: Pretend that you are explaining this to a grade-school
child.  My naive first impression is that, if the LEDE build process actually
*requires* twenty different conceptual variables to designate a specific
"version number", then something is probably wrong with the way this process is
being managed.

Still, I would encourage, a) writing-down an "essential" and "official" list of
terms to be used in creating a LEDE software "release", b) explaining those
terms to some naive person, and c) see if that person understood you.

So far, *I* do not understand what you guys are talking about - and I've been
doing this open source software thing for over twenty years.

James

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] Release Preparation Questions

2016-11-20 Thread James Feeney
Ok - thanks for taking the time to explain this versioning process.  So now, I
should take the time to "feed it back" and see if I understand.  Ha!

> https://git.lede-project.org/source.git
404 Not Found

Hmm.  Try Google...

https://git.lede-project.org/?p=source.git
description LEDE Source Repository

Ok.

$ whois lede-project.org
Admin Name: Jo-Philipp Wich
Admin Country: DE

That helps orient things.

> it does not require twenty different variables but it has to deal
> with (currently) five independent repositories:
> - feeds.conf.default: git://git.lede-project.org/feed/packages.git

Hmm - try Google again:

https://git.lede-project.org/

Ah ha.

feed/packages.git   Mirror of packages feed Git 119 min ago
feed/routing.gitMirror of routing feed  Git 2 weeks ago
feed/telephony.git  Mirror of telephony feedGit 4 months ago
...
project/luci.gitLua Configuration Interface...  Git 28 hours ago

Ok.  I don't know what I'm seeing yet, but ok.

> ... described in feeds.conf.default within the base repo.

Hmm - still drawing a blank...

source.git  LEDE Source Repository  Git 102 min ago

https://git.lede-project.org/?p=source.git;a=tree
https://git.lede-project.org/?p=source.git;a=blob;f=README

   9 Run "./scripts/feeds update -a" to get all the latest package definitions
  10 defined in feeds.conf / feeds.conf.default respectively
  11 and "./scripts/feeds install -a" to install symlinks of all of them into
  12 package/feeds/.

... getting closer...

https://git.lede-project.org/?p=source.git;a=blob;f=feeds.conf.default

Ah ha!

   1 src-git packages https://git.lede-project.org/feed/packages.git
   2 src-git luci https://git.lede-project.org/project/luci.git
   3 src-git routing https://git.lede-project.org/feed/routing.git
   4 src-git telephony https://git.lede-project.org/feed/telephony.git
   5 #src-git targets https://github.com/openwrt/targets.git
   6 #src-git management https://github.com/openwrt-management/packages.git
   7 #src-git oldpackages http://git.openwrt.org/packages.git
   8 #src-link custom /usr/src/openwrt/custom-feed

Mmm-hmm - I seem to have gone in a circle.  So, the term "feed" is a unique
concept, referring to three "gitish" directories including the name "feed", and
one "gitish" directory *not* including the name "feed".  Hmm...  Well, that
seems like an inconsistent concept.  So, a "feed" is whatever git "directory" a
file "feeds.conf.default" says it is.  That is not a traditional hierarchy, and
it is a mistake for me to try to think of LEDE as a kind of file system
hierarchy.  It is more like a kind of linked-list, with a "root" located in a
file, which is located in a git directory "projects/source.git/tree", which is
best discovered by already knowing its location.

This is an organizational model which I have not encountered before now.  It is
certainly not the most "discoverable" model which I could imagine, but ok.

And then, there is a top-level git directory name, "source.git", where the term
"source" is not used in the usual manner, to mean literally the directory
holding the source code, but instead, seems to refer to that directory which
contains the file which enumerates the elements of the term "feed".

And also, there is the idea of "base repository", where the "base" is being
defined as the "source", and the "source" is not really the "base" in the
traditional sense, but instead is located under a traditional "base" URL,
"https://git.lede-project.org/";.

Again, this is a nontraditional use of the term "base", which seems to be used
interchangeably with the term "source" - but ok.

Lots of specialized, nontraditional, terminology, - "base", "source", "feed" -
but ok.

Now, revisiting the concept of "version number":

1) "base" repository - https://git.lede-project.org/?p=source.git
2) "feeds" - described in feeds.conf.default within the base repo.
   1 src-git packages https://git.lede-project.org/feed/packages.git
   2 src-git luci https://git.lede-project.org/project/luci.git
   3 src-git routing https://git.lede-project.org/feed/routing.git
   4 src-git telephony https://git.lede-project.org/feed/telephony.git
3) release branch number - an input variable, major.minor version, usually
year.month - or instead, the number of the build being produced from a branch.
There were two different definitions offered.  I'm guessing that you meant the
"build number" after the "major.minor" version number.
4) git tags - exactly match the source state; "commit hash".
5) builds - the binary artifacts produced, branch release builds.
6) master - master branch of the "base" repository.
7) release branch - used for *all* builds within a major.minor version; "source
branch".
8) subrelease - Any release within a base version; patch levels; security 
updates.
9) nickname - Symbolic name given to an entire release branch; all 16.11.*
releases will carry the same nickname.

Hmm - it is still not clear to me

Re: [LEDE-DEV] Release Preparation Questions

2016-11-20 Thread James Feeney

On 11/20/2016 08:26 PM, David Lang wrote:
> replying to details other than the feeds concept/
> ...
>> There were two different definitions offered.  I'm guessing that you meant 
>> the
>> "build number" after the "major.minor" version number.
> 
> not quite
> 
> the branch would be Year.Month, tags/builds within that branch would be
> Year.Month.Build

Ok, I get that.

> ...
>> Hmm - it is still not clear to me how the term "branch" will apply here,
>> because: 1) the hierarchy of "base.feeds" is referencing four *other* git
>> repositories, each of which has its *own* "head" branch name, each of which 
>> - I
>> assume - may be changed or selected independently; and 2) the "feeds" link 
>> list
>> does *not* have any version information within it, itself.
> 
> The branch is really based on the LEDE maintained git repository, ignoring the
> feeds that are not maintained by LEDE or OpenWRT.
> 
> There is an interesting question of how to refer to what state of each feed 
> you
> use for a release. Currently OpenWRT doesn't even try to do this. The feed
> version you get is the feed version that exists at the time you last pulled 
> from
> the feeds.

Uhm - I'm a bit taken aback by that.

> This hasn't been a big problem in practice, but it does mean that you don't
> really have a repeatable build.

I would have thought that that was a "show stopper".  It certainly does not
inspire confidence.

I say this is a "problem" and should be a high priority issue.

> See my other e-mail about submodules for a
> discussion on this.

Yes, I looked at that.  It would seem to address and solve a number of issues.
There would be no need for a separate "manifest", and, most importantly, there
would be a git "snapshot" of the *entire* project state.  If I understand, that
also means there would be a unique git tag that would label that state, and
could be associated with any kind of specific nickname, version, and build
number.  It would mean that every build was repeatable.

>> It would be possible, I suppose, that each of these linked repositories 
>> could be
>> *required* to use the *same* versioned naming scheme.
> 
> can't be done, these other repositories are not under our control. The most we
> can do is reference exactly which release we use..

I see that now.

> ...
> actually, the LEDE/OpenWRT releases are long, they are trying to get them down
> to only a year or so.
> 
> What most people end up using is the roughly the equivalent of the nightly
> builds, but even more granular in that people grab the source code and compile
> it, so they get up-to-the-minute changes, not even nightly snapshots.

I don't understand the point of having a LEDE "release" then.  But then, I
prefer using Arch, a rolling release distribution, where other people prefer
something like Debian, for stability.  So maybe LEDE would have a yearly
"release" version for some people, and other people can grab the latest buildbot
build?  Or compile it themselves.

With the git submodule idea, LEDE could have a repository that even includes the
entire cross-compiler tool chain?  Or maybe that's going too far?

>> Cyanogenmod uses the term "manifest" instead of "feed", and uses "repo", a
>> specialized "repository management tool that we built on top of Git."  You 
>> are
>> familiar?  In a sense, the top level of the build system is the "manifest" 
>> file
>> "default.xml" with its own web page, https://github.com/CyanogenMod/android.
>> Hmm - LEDE has a program "[source.git] / scripts / feeds", which serves the 
>> same
>> function as "repo", yes?  Maybe I begin to understand.  And then, the term
>> "feed" would actually mean one of several git source code repositories
>> enumerated in the LEDE "manifest".  And "feeds" means a LEDE git repository
>> management and build utility.
> 
> more or less. OpenWRT was stuck for a long time using subversion instead of 
> git,
> so things developed differently, but you seem to be mapping the concepts more 
> or
> less correctly.

Ok, thanks for confirming.

>> I think that, essentially, I must understand how a LEDE build version number 
>> can
>> be related to an instantaneous version of four independent git repositories.
> 
> ignore the feeds for now, they are not part of the LEDE release.

Yeah, I see now how that works - scary, but clarified.

>> Would it be useful to version the manifest, and have the versioned manifest
>> enumerate specific versions of the manifest components?  I assume that each
>> component could specify an instantaneous snapshot version of each master 
>> branch
>> of that component?  Perhaps git tags could be included inside the manifest, 
>> and
>> no one would have to memorize or recognize or refer to these, because the
>> manifest itself would have a human readable version number, as in
>> "year-month-build".
> 
> that would be inventing another layer of abstraction, I don't think we need to
> do that. But this is the submodule discussion I raised in another branch of 
> thi

Re: [LEDE-DEV] [OpenWrt-Devel] Talks between OpenWrt and LEDE

2016-12-22 Thread James Feeney

On 12/22/2016 12:27 AM, John Crispin wrote:
> or do we want to build a "one stop shop" for embedded linux

Yes, we do?

When I read that, my gut reaction was "Oh yeah - embedded linux."

I remember, when I first heard about "LEDE", as distinct from OpenWRT, I was
attracted to the broader focus on "embedded linux", in contrast to the "wireless
router" focus implied by "OpenWRT".  That promise of embedded device support is
still my mental rationalization for choosing LEDE over OpenWRT.

There is something to be said for the "evolved" branding of the LEDE name.  How
important is this focus on "embedded linux", which implies a linux distribution
that runs, additionally, on devices that are *not* wireless routers?  There are
a great number of single-board computers that exist now that did not exist when
OpenWRT was first released in 2004.

The original WRT54G was first released in December 2002.
The first generation (Raspberry Pi 1 Model B) was released in February 2012.

Consider:
https://en.wikipedia.org/wiki/Comparison_of_single-board_computers

Does LEDE have builds for all of these products?


I imagine that the stable/bleeding-edge issue might be addressed in the same way
as other projects which have designated "long term support" versions.


Just for fun:
https://en.wiktionary.org/wiki/lede

James

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [OpenWrt-Devel] Talks between OpenWrt and LEDE

2016-12-27 Thread James Feeney

OpenLEDE

The name both combines the project names and conveys that sense of greater
transparency that was, in part, the purpose of the LEDE project.

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev