On 6/3/12 10:14 PM, Saul Wold wrote:

Folks,

As this project has progressed, we have found the distro_tracking_fields
to become a bit cumbersome and dated, I want to therefore propose we get
rid of it ;-), nah that would be too easy!

I would like to propose the following, split it into smaller files with
more specific meaning, and move some of the data contained in the
original file into the recipes directly. Some of the fields will be
deprecated, others renamed and finally others will be used for a burn
down list of things to be checked or converted to be automagically
generated.

Currently the data contained in these fields is used to generate the
database that the Package reporting system uses and will continue to use
in it's new form. (https://packages.yoctoproject.org) We also use the
data for tracking the recipe updating to ensure we keep the system as up
to date as possible.

The new split would make this data part of Poky in meta-yocto, and not
in oe-core (other than the modifications to the recipes). The split
would be as follows:

maintainers.inc
   - RECIPE_MAINTAINER = "Full Name<u...@example.com>"
   - This is the name of the person currently watching the upstream and
     updating the recipe and/or fixing bugs filed against, this person
     should also help review incoming patches for that recipe.
   - NOTE to REVIEWERS: I still need to better define what the Roles and
Responsibilities of a maintainer are for recipes!

recipe_color.inc
   - RECIPE_COLOR = "green|yellow|red" - defaults to green
   - Burn down list of recipes that need to be checked for general issues
   - red means there are some issues that might be legacy or function
     need review
   - yellow means recipe needs review
   - once reviewed and issues resolved the recipe's entry can be removed

upstream_tracking.inc
   - RECIPE_UPSTREAM_VERSION = "<version>"
   - RECIPE_UPSTREAM_DATE = "Mmm, dd, yyyy"
     - Version info from the Upstream, mostly this can be generated, but
       in some cases we need to track it manually, this should just be
       the manually tracked info, it currently contains more than that,
       this will be corrected over time as we can generate it
       automatically
   - RECIPE_NO_UPDATE_REASON = "Free form text"
     - Used by the package and update tracking to explain why a recipe
       should not be updated.


No real comments on the above.. I think that is all fine.

Insert into recipe.bb or .inc files:

My biggest concern with this is that any fields only get updated when the recipe itself is changed in some way... package uprev or modification. Arbitrary changes to the fields will cause checksums (file and otherwise) to invalidate causing reparsing and possibly even package rebuilds. Both of which take additional time....

   - NOTES =<free form text>
     - was RECIPE_COMMENTS
     - Information that would useful in the package reporting system, but
       not part of the DESCRIPTION, could be existing comments

Right now anything tricky with an uprev or comments about why it was done a certain way are generally stored as comments in the recipe. Formalizing it would be nice. Only concern with this is the word "NOTES" seems awfully generic.

   - CHECK_DATE = "Mmm, dd, yyyy"
     - was RECIPE_MANUAL_CHECK_DATE
     - The date when the upstream was last checked, specifically for the
       Manual check process when a recipe's upstream could not be checked
       automagically, this should become fewer and fewer as we determine
       ways to check.

This is a primary concern. If this is updated each time someone checks the recipes are still current and don't need modifications -- we're forcing a modification into the system. One alternative approach:

Document the date when the recipe was upreved. Then in a separate file, document the check dates. Then the check dates and the uprev dates can be compared and it'll be easier to watch to see if things are being neglected or let go out of date.

(Note, using git, it should be possible to also discover the data of the uprev as well....)

   - DISTRO_PN_ALIAS = "Distro:package alias, Distro:package alias, ..."
     - This is a comma separated list of mainline distros, such as
       Fedora, Debian, OpenSuse which also ship a similar package, but
       with a different name possibly.
     - Used by package reporting system and is fairly static
     - Many Commercial users would like to know that a given package is
       already shipping with other distributions

I've not seen this requirement from any of my customers. I can understand the uses of this -- how widely used is this? if it's not, then chances are there may be licensing or functional issues with the component... But I'm not sure if this is useful, or if the OE-core contributors would want the additional work involved.

Any fields not mentioned above will be deprecated.

The first three files are ready to merged, I need to finish updating the
recipes for the last part.  This will not require any PR bumps as there
is no packaging changes, just metadata that is used by the package
reporting system.


Comments?

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to