public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [DRAFT] GLEP 84: Standard format for package.mask files
@ 2023-10-04 18:43 Arthur Zamarin
  2023-10-05  3:12 ` Michał Górny
  2023-10-05 18:40 ` [gentoo-dev] " Ulrich Mueller
  0 siblings, 2 replies; 8+ messages in thread
From: Arthur Zamarin @ 2023-10-04 18:43 UTC (permalink / raw)
  To: gentoo-dev, glep


[-- Attachment #1.1: Type: text/plain, Size: 11120 bytes --]

Hi all

As result of the discussion on gentoo-dev ML [1], I've been working on a
GLEP for the standard format for package.mask files. I've tried to
incorporate all the things spoken on that thread.

Currently this GLEP draft can be found on the glep-0084 branch [2].
Please also note that English isn't my first language (and also not
second), so if you think any paragraph isn't quite readable or simple to
understand, feel free to suggest improvements - nothing will be taken as
offense.

As noted in the draft, some of the TODOs is implementing this GLEP in
pkgcheck, pkgdev, and soko. I know that implementing the GLEP isn't a
requirement to accept the GLEP, but this should be simple enough and
should show the GLEP is mature enough.

[1] https://public-inbox.gentoo.org/gentoo-dev/b2a2515f-8c1e-4422-8cec-cd4fe3a4727c@gentoo.org/T/#u

[2] https://gitweb.gentoo.org/data/glep.git/tree/glep-0084.rst?h=glep-0084


---
GLEP: 84
Title: Standard format for package.mask files
Author: Arthur Zamarin <arthurzam@gentoo.org>
Type: Standards Track
Status: Draft
Version: 1.0
Created: 2023-09-30
Content-Type: text/x-rst
---

Abstract
========

This GLEP specifies the format of ``package.mask`` files under profiles
directory.

Motivation
==========

At the moment of writing this GLEP, ``package.mask`` files didn't have a full
format specification. While PMS sections 4.4 [#PMS-4.4]_ and 5.2.8
[#PMS-5.2.8]_ specifies the raw format which the package manager must support
for correct behavior, it does not specify how comments must be formatted, how
entries must be grouped, how last-rite masks should be written, etc.

Various tools have been developed to handle that mask message. A non exhaustive
list includes ``lr-add-pmask`` [#lr-add-pmask]_, ``pkgdev mask`` [#pkgdev-mask]_,
and ``soko`` [#soko-mask]_. Those tools have different purposes, filing a new
mask message with all relevant information, and showing a nice rendered mask
message to users. Those tools are very complicated (since they need to handle
various edge cases of existing masks, and try to prepare for future mask
messages).

For a long time, ``profiles/package.mask`` had a special header [#CURR-MASK]_
whose purpose was to define the mask message formatting. While it has served
its purpose for a long time indeed, it still left a lot of wiggle room for the
message.

Therefore, the motivation for this GLEP is to provide unified, clear and
complete specification for package.mask entries across the repository.

Specification
=============

Header
------

As an opt-in GLEP for files, files which want to use this GLEP format should
define a special header line which tools should use to know the format of the
file. This line should appear as the first non empty line after the copyright
header. The line should be:

    # Uses GLEP 84 format

This header should come instead of the current very long header [#CURR-MASK]_,
as mentioning the GLEP is enough.

Files can decide to add some extra file documentation, in which case, the
entries start after the line:

    #--- END OF EXAMPLES ---

Entries Grouping
----------------

Each mask entry consists of 2 parts: `comments block`_ and `packages list`_,
which aren't separated by a blank line between the 2 parts. Between entries, a
mandatory blank line must appear.

New entries added to the file must be inserted at the beginning, after the file
header.

Packages List
-------------

Must conform to PMS sections 4.4 [#PMS-4.4]_ and 5.2.8 [#PMS-5.2.8]_. This GLEP
further limits the syntax to one item per line, without any leading or
proceeding whitespaces, no comments inside the packages list, and no blank
lines between items in the list.

Comments Block
--------------

The comments block consists of 2 mandatory parts (`author line`_ and
`explanation`_) and one optional part (`last-rite epilogue`_). A blank line to
separate the parts is optional. Trailing whitespaces should be dropped.

The comments block is prefixed with a "#" symbol. The comments should be
separated with single space from the "#", unless this is trailing whitespace,
in which case it should be removed (meaning blank lines in comments block are
just "#\n").

The lines of the comments block should use column wrapping of 80 characters
(including the "#" prefix). The author line is excluded from this maximum
width.

For simplifying the explanation, we wouldn't mention the "#" prefix.
Implementations are advised to drop this prefix before further processing the
block.

Author Line
'''''''''''

A line of the format: ``${AUTHOR-NAME} <${EMAIL}> (${SINGLE-DATE})``. The author
name and email should correspond to the mask author, and should confirm to the
GLEP 76 rules. The date should be of RFC-3339 full-date format, meaning
``YYYY-MM-DD``. The date is recommended to use the date at UTC timezone at the
moment of commit push.

Explanation
'''''''''''

In this block the reasons for the block should be listed, with extra
explanation where needed. If referencing bugs, use the `bugs list`_ format
(mask rendering tools should render mentioned bugs also in this part).

In this part, a paragraph separator is a blank line, similar to ReStructuredText
format. Using multiple blank lines between paragraphs is prohibited.

Last-Rite Epilogue
''''''''''''''''''

If the last paragraph starts with "Removal after", then this mask entry is
considered as last-rite mask, and the last paragraph must conform to the
last-rite epilogue format.

The paragraph should be of format ``Removal after ${DATE}. ${BUGS-LIST}``,
where the date is RFC-3339 full-date format, meaning ``YYYY-MM-DD``, and the
bugs list is of the `bugs list`_ format. The listed bugs should include the
last-rite bug opened, and potentially more relevant bugs which weren't listed
in the explanation paragraphs.

Bugs List
'''''''''

A list of bugs should start with a word matching the regular expression
``"[Bb]ugs?"`` (Bug, Bugs, bug, bugs), a single space, and a comma-separated
list of bug numbers, where each bug number starts with "#" symbol. For example
``Bugs #667687, #667689``. Parsers for bugs list should handle bugs list
wrapping to multiple lines because of its length.

Rationale
=========

Not using a hard-coded format
-----------------------------

While using a hard coded format, of some key-value kind (for example TOML, XML,
INI), might be the correct path in the future, for the moment of writing this
GLEP, it is preferred to stay with a format resembling most of the masks. Also,
this GLEP prefers staying with a format close to an organized free-text.

Specific format for bugs list
-----------------------------

It is preferable to specify the exact expected format for the bugs list, so
rendering tools (such as ``soko``) can render the bugs numbers as links. Other
use-cases for extracting the bug numbers exist, for example a new tool for
tree-cleaning last-rited packages.

UTC time zone for dates
-----------------------

Specifying a time zone is quite sensible for an international project such as
Gentoo. While a difference in a date-only timestamp because of time zone is
quite unlikely, the main purpose of standardizing on UTC is to prevent the case
of new entries having a date prior to existing one. Since creating a mask entry
using tools (such as pkgdev mask) is recommended, the tool should generate the
correct date, which should be transparent to the user.

Disallow "removal in X days"
----------------------------

Another existing variant of last-rite epilogue is using "removal in X days". It
complicates the knowledge of the last date, since the user needs to compute
what is the correct date (consider the amount of days in the same month). The
existence of tools helping to file mask entries means that computing the
removal date is simple for the writer. No gain is seen from allowing "removal
in X days" format.

Backwards Compatibility
=======================

This specification does not break the raw entries format specified in PMS,
meaning all existing package managers implementations confirming to PMS will
also support this new specification.

However, multiple existing entries would need to be manually updated to conform
to the new specification, so the updated tools can parse and work with all
existing entries. Only after fixing all entries, the special header should be
added, opting in the new format. Tools which might be used for overlays are
recommended to not crash upon non-confirming entries, and verify the existence
of this special header.

Reference Implementation
========================

..
    TODO: add reference implementations for:
    1. pkgcheck check for confirming format
    2. pkgdev updated for new format
    3. soko updated to use new format

BNF Grammar
-----------

.. code:: bnf

    BUGS-LIST    ::= [Bb]ugs? #\d+(, +#\d+)*
    DATE         ::= YYYY-MM-DD
    LAST-RITE    ::= Removal after {DATE}. +{BUGS-LIST}.?
    AUTHOR-LINE  ::= {AUTHOR-NAME} <{AUTHOR-EMAIL}> ({DATE})
    PARAGRAPH    ::= # [^\n]+(\n# [^\n]+)*
    EXPLANATION  ::= {PARAGRAPH}(\n#\n{PARAGRAPH})*
    MASK-COMMENT ::= # {AUTHOR-LINE}\n{EXPLANATION}
                 ::= # {AUTHOR-LINE}\n{EXPLANATION}\n# {LAST-RITE}
    MASK-PKGS    ::= {ATOM}(\n{ATOM})*
    ENTRY        ::= {MASK-COMMENT}\n{MASK-PKGS}

Example Entries
---------------

.. code::

    # Arthur Zamarin <arthurzam@gentoo.org> (2023-09-21)
    # Very broken, no idea why packaged, need to drop ASAP. The project
    # is done with supporting this package. See for history bug #667889.
    #
    # As a better plan, you should migrate to dev-lang/perl, which has
    # better compatibility with dev-lang/ruby when used with dev-lang/lua
    # bindings.
    # Removal after 2023-10-21.  Bugs #667687, #667689.
    dev-lang/python

    # Arthur Zamarin <arthurzam@gentoo.org> (2023-09-20)
    # Normal mask for testing
    dev-lang/lua:5.1

References and Footnotes
========================

.. [#PMS-4.4] "PMS section 4.4"
   (https://projects.gentoo.org/pms/8/pms.html#x1-320004.4)

.. [#PMS-5.2.8] "PMS section 5.2.8"
   (https://projects.gentoo.org/pms/8/pms.html#x1-510005.2.8)

.. [#CURR-MASK] "Existing ``packages.mask`` header before this GLEP"
   (https://gitweb.gentoo.org/repo/gentoo.git/tree/profiles/package.mask?id=9acaae3e1a70ec6bd72e3c324b115bae1a05ed5f)

.. [#lr-add-pmask] https://github.com/projg2/mgorny-dev-scripts/blob/52ceab3a579b35fb0d92f7a1f060cd7d4659f24f/lr-add-pmask

.. [#pkgdev-mask] https://gitweb.gentoo.org/proj/pkgcore/pkgdev.git/tree/src/pkgdev/scripts/pkgdev_mask.py?h=v0.2.8

.. [#soko-mask] https://gitweb.gentoo.org/sites/soko.git/tree/pkg/portage/repository/mask.go?h=v1.0.3

Copyright
=========

This work is licensed under the Creative Commons Attribution-ShareAlike 4.0
International License.  To view a copy of this license, visit
https://creativecommons.org/licenses/by-sa/4.0/.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-dev] [DRAFT] GLEP 84: Standard format for package.mask files
  2023-10-04 18:43 [gentoo-dev] [DRAFT] GLEP 84: Standard format for package.mask files Arthur Zamarin
@ 2023-10-05  3:12 ` Michał Górny
  2023-10-05 18:49   ` Arthur Zamarin
                     ` (2 more replies)
  2023-10-05 18:40 ` [gentoo-dev] " Ulrich Mueller
  1 sibling, 3 replies; 8+ messages in thread
From: Michał Górny @ 2023-10-05  3:12 UTC (permalink / raw)
  To: gentoo-dev, glep

On Wed, 2023-10-04 at 21:43 +0300, Arthur Zamarin wrote:
> Specification
> =============
> 
> Header
> ------
> 
> As an opt-in GLEP for files, files which want to use this GLEP format should
> define a special header line which tools should use to know the format of the
> file. This line should appear as the first non empty line after the copyright
> header. The line should be:
> 
>     # Uses GLEP 84 format
> 
> This header should come instead of the current very long header [#CURR-MASK]_,
> as mentioning the GLEP is enough.
> 
> Files can decide to add some extra file documentation, in which case, the
> entries start after the line:
> 
>     #--- END OF EXAMPLES ---
> 
> Entries Grouping
> ----------------
> 
> Each mask entry consists of 2 parts: `comments block`_ and `packages list`_,
> which aren't separated by a blank line between the 2 parts. Between entries, a
> mandatory blank line must appear.
> 
> New entries added to the file must be inserted at the beginning, after the file
> header.
> 
> Packages List
> -------------
> 
> Must conform to PMS sections 4.4 [#PMS-4.4]_ and 5.2.8 [#PMS-5.2.8]_. This GLEP
> further limits the syntax to one item per line, without any leading or
> proceeding whitespaces, no comments inside the packages list, and no blank
> lines between items in the list.

That kinda sucks.  For very long masks, it is useful to be able to split
the entry into subgroups.  I suppose it's technically still doable via
splitting the entry but that sounds a bit backwards.

> Comments Block
> --------------
> 
> The comments block consists of 2 mandatory parts (`author line`_ and
> `explanation`_) and one optional part (`last-rite epilogue`_). A blank line to
> separate the parts is optional. Trailing whitespaces should be dropped.

"Trailing whitespace".

> 
> The comments block is prefixed with a "#" symbol. The comments should be

"The lines in the comment block are ..."

> separated with single space from the "#", unless this is trailing whitespace,
> in which case it should be removed (meaning blank lines in comments block are
> just "#\n").
> 
> The lines of the comments block should use column wrapping of 80 characters
> (including the "#" prefix). The author line is excluded from this maximum
> width.
> 
> For simplifying the explanation, we wouldn't mention the "#" prefix.

"To simplify the specification, the following sections will skip
mentioning the "#" prefix." (still imperfect)

> Explanation
> '''''''''''
> 
> In this block the reasons for the block should be listed, with extra

"Block" in two meanings, confusing.

> explanation where needed. If referencing bugs, use the `bugs list`_ format
> (mask rendering tools should render mentioned bugs also in this part).
> 
> In this part, a paragraph separator is a blank line, similar to ReStructuredText
> format. Using multiple blank lines between paragraphs is prohibited.
> 
> Last-Rite Epilogue
> ''''''''''''''''''
> 
> If the last paragraph starts with "Removal after", then this mask entry is
> considered as last-rite mask, and the last paragraph must conform to the
> last-rite epilogue format.

This is inconsistent with the current usage, and confusing.  "After"
makes it unclear whether the list is inclusive (i.e. "remove on that day
or later") or exclusive ("remove the next day or later"),
and in the latter case it's quite backwards.



-- 
Best regards,
Michał Górny



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [gentoo-dev] Re: [DRAFT] GLEP 84: Standard format for package.mask files
  2023-10-04 18:43 [gentoo-dev] [DRAFT] GLEP 84: Standard format for package.mask files Arthur Zamarin
  2023-10-05  3:12 ` Michał Górny
@ 2023-10-05 18:40 ` Ulrich Mueller
  2023-10-05 19:19   ` Arthur Zamarin
  1 sibling, 1 reply; 8+ messages in thread
From: Ulrich Mueller @ 2023-10-05 18:40 UTC (permalink / raw)
  To: Arthur Zamarin; +Cc: gentoo-dev, glep

[-- Attachment #1: Type: text/plain, Size: 707 bytes --]

>>>>> On Wed, 04 Oct 2023, Arthur Zamarin wrote:

> Files can decide to add some extra file documentation, in which case, the
> entries start after the line:

>     #--- END OF EXAMPLES ---

This agrees with current package.mask, but seems rather specific.
Instead of reinventing the wheel, maybe a "scissors line" could be used,
i.e. a line consisting mainly of "-", ">8" and "8<", similar to the line
used by git-mailinfo?

I'm also wondering if we shouldn't have a similar marker for the end of
the mask entries, i.e. everything after it would be ignored. This isn't
currently needed for package.mask, but other files in profiles have an
Emacs local variables block or a Vim modeline at the end.

Ulrich

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 507 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-dev] [DRAFT] GLEP 84: Standard format for package.mask files
  2023-10-05  3:12 ` Michał Górny
@ 2023-10-05 18:49   ` Arthur Zamarin
  2023-10-05 19:36     ` Ulrich Mueller
  2023-10-05 19:31   ` Arthur Zamarin
  2023-10-05 19:44   ` Ulrich Mueller
  2 siblings, 1 reply; 8+ messages in thread
From: Arthur Zamarin @ 2023-10-05 18:49 UTC (permalink / raw)
  To: gentoo-dev, glep


[-- Attachment #1.1: Type: text/plain, Size: 1445 bytes --]

On 05/10/2023 06.12, Michał Górny wrote:

> "Block" in two meanings, confusing.

Thanks for the improvements, I'll apply them soon on the branch, and
send as DRAFT v2 when some more changes collect.

> 
>> explanation where needed. If referencing bugs, use the `bugs list`_ format
>> (mask rendering tools should render mentioned bugs also in this part).
>>
>> In this part, a paragraph separator is a blank line, similar to ReStructuredText
>> format. Using multiple blank lines between paragraphs is prohibited.
>>
>> Last-Rite Epilogue
>> ''''''''''''''''''
>>
>> If the last paragraph starts with "Removal after", then this mask entry is
>> considered as last-rite mask, and the last paragraph must conform to the
>> last-rite epilogue format.
> 
> This is inconsistent with the current usage, and confusing.  "After"
> makes it unclear whether the list is inclusive (i.e. "remove on that day
> or later") or exclusive ("remove the next day or later"),
> and in the latter case it's quite backwards.
> 

Hmm, I don't really care what word we use here, but I do want us to
agree on one word (cause I'll need to update `pkgdev mask`). Some of the
considerations against "on" (currently used) is the fact: does it mean
it isn't fine to remove after it?
Does English has a nice word for ">= time"?

-- 
Arthur Zamarin
arthurzam@gentoo.org
Gentoo Linux developer (Python, pkgcore stack, Arch Teams, GURU)


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-dev] Re: [DRAFT] GLEP 84: Standard format for package.mask files
  2023-10-05 18:40 ` [gentoo-dev] " Ulrich Mueller
@ 2023-10-05 19:19   ` Arthur Zamarin
  0 siblings, 0 replies; 8+ messages in thread
From: Arthur Zamarin @ 2023-10-05 19:19 UTC (permalink / raw)
  To: gentoo-dev; +Cc: glep


[-- Attachment #1.1: Type: text/plain, Size: 1821 bytes --]

On 05/10/2023 21.40, Ulrich Mueller wrote:
>>>>>> On Wed, 04 Oct 2023, Arthur Zamarin wrote:
> 
>> Files can decide to add some extra file documentation, in which case, the
>> entries start after the line:
> 
>>     #--- END OF EXAMPLES ---
> 
> This agrees with current package.mask, but seems rather specific.
> Instead of reinventing the wheel, maybe a "scissors line" could be used,
> i.e. a line consisting mainly of "-", ">8" and "8<", similar to the line
> used by git-mailinfo?
> 
> I'm also wondering if we shouldn't have a similar marker for the end of
> the mask entries, i.e. everything after it would be ignored. This isn't
> currently needed for package.mask, but other files in profiles have an
> Emacs local variables block or a Vim modeline at the end.
> 
> Ulrich

After fast discussion on #gentoo-dev IRC between me and ulm, we agreed
that the "scissors line" from git-mailinfo would be very overkill and
also very complicated to implement.

So we agreed on something simpler and good enough. Comment line
containing at least 5 "-" on beginning and end. As regex:

# -{5,}.*-{5,}

All lines before first occurrence of such line (except the GLEP header
to opt in) are ignored as generic comments not part of mask, and all
lines after second occurrence (if exists) are also ignored.

Those lines are optional, which does mean that implementation should
firstly filter out the ignored part (before first time if found, and
after second time if found), and only that part parse. This means
implementing it as a straight stream is much-much harder, but since the
file are never very big, I think it won't impact performance to perform
multiple text runs.

-- 
Arthur Zamarin
arthurzam@gentoo.org
Gentoo Linux developer (Python, pkgcore stack, Arch Teams, GURU)


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-dev] [DRAFT] GLEP 84: Standard format for package.mask files
  2023-10-05  3:12 ` Michał Górny
  2023-10-05 18:49   ` Arthur Zamarin
@ 2023-10-05 19:31   ` Arthur Zamarin
  2023-10-05 19:44   ` Ulrich Mueller
  2 siblings, 0 replies; 8+ messages in thread
From: Arthur Zamarin @ 2023-10-05 19:31 UTC (permalink / raw)
  To: gentoo-dev, Michał Górny, glep


[-- Attachment #1.1: Type: text/plain, Size: 934 bytes --]

On 05/10/2023 06.12, Michał Górny wrote:
> On Wed, 2023-10-04 at 21:43 +0300, Arthur Zamarin wrote:
>> Specification
>> =============
>>
>> ...
>>
>> Must conform to PMS sections 4.4 [#PMS-4.4]_ and 5.2.8 [#PMS-5.2.8]_. This GLEP
>> further limits the syntax to one item per line, without any leading or
>> proceeding whitespaces, no comments inside the packages list, and no blank
>> lines between items in the list.
> 
> That kinda sucks.  For very long masks, it is useful to be able to split
> the entry into subgroups.  I suppose it's technically still doable via
> splitting the entry but that sounds a bit backwards.
> 

Good point. I'll update the draft to allow single blank lines between
package lists, but I'll still add recommendation to consider splitting
into multiple separate masks.

-- 
Arthur Zamarin
arthurzam@gentoo.org
Gentoo Linux developer (Python, pkgcore stack, Arch Teams, GURU)


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-dev] [DRAFT] GLEP 84: Standard format for package.mask files
  2023-10-05 18:49   ` Arthur Zamarin
@ 2023-10-05 19:36     ` Ulrich Mueller
  0 siblings, 0 replies; 8+ messages in thread
From: Ulrich Mueller @ 2023-10-05 19:36 UTC (permalink / raw)
  To: Arthur Zamarin; +Cc: gentoo-dev, glep

[-- Attachment #1: Type: text/plain, Size: 860 bytes --]

>>>>> On Thu, 05 Oct 2023, Arthur Zamarin wrote:

> On 05/10/2023 06.12, Michał Górny wrote:
>> This is inconsistent with the current usage, and confusing.  "After"
>> makes it unclear whether the list is inclusive (i.e. "remove on that day
>> or later") or exclusive ("remove the next day or later"),
>> and in the latter case it's quite backwards.

> Hmm, I don't really care what word we use here, but I do want us to
> agree on one word (cause I'll need to update `pkgdev mask`). Some of the
> considerations against "on" (currently used) is the fact: does it mean
> it isn't fine to remove after it?
> Does English has a nice word for ">= time"?

Make it "on", because the date specified is the intended removal date
when the entry is added.

That is, users cannot rely on the package still being present at any
later date.

Ulrich

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 507 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-dev] [DRAFT] GLEP 84: Standard format for package.mask files
  2023-10-05  3:12 ` Michał Górny
  2023-10-05 18:49   ` Arthur Zamarin
  2023-10-05 19:31   ` Arthur Zamarin
@ 2023-10-05 19:44   ` Ulrich Mueller
  2 siblings, 0 replies; 8+ messages in thread
From: Ulrich Mueller @ 2023-10-05 19:44 UTC (permalink / raw)
  To: Michał Górny; +Cc: gentoo-dev, glep

[-- Attachment #1: Type: text/plain, Size: 1190 bytes --]

>>>>> On Thu, 05 Oct 2023, Michał Górny wrote:

>> Entries Grouping
>> ----------------
>> 
>> Each mask entry consists of 2 parts: `comments block`_ and `packages list`_,
>> which aren't separated by a blank line between the 2 parts. Between entries, a
>> mandatory blank line must appear.
>> 
>> New entries added to the file must be inserted at the beginning, after the file
>> header.
>> 
>> Packages List
>> -------------
>> 
>> Must conform to PMS sections 4.4 [#PMS-4.4]_ and 5.2.8 [#PMS-5.2.8]_. This GLEP
>> further limits the syntax to one item per line, without any leading or
>> proceeding whitespaces, no comments inside the packages list, and no blank
>> lines between items in the list.

> That kinda sucks.  For very long masks, it is useful to be able to split
> the entry into subgroups.  I suppose it's technically still doable via
> splitting the entry but that sounds a bit backwards.

I think it could say that blank lines between items are allowed, without
any other change to the spec. The fact that each entry must start with a
comments block will still guarantee that assigning of packages to an
entry will be well-defined.

Ulrich

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 507 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-10-05 19:44 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-04 18:43 [gentoo-dev] [DRAFT] GLEP 84: Standard format for package.mask files Arthur Zamarin
2023-10-05  3:12 ` Michał Górny
2023-10-05 18:49   ` Arthur Zamarin
2023-10-05 19:36     ` Ulrich Mueller
2023-10-05 19:31   ` Arthur Zamarin
2023-10-05 19:44   ` Ulrich Mueller
2023-10-05 18:40 ` [gentoo-dev] " Ulrich Mueller
2023-10-05 19:19   ` Arthur Zamarin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox