File: TODO

package info (click to toggle)
libregexp-pattern-license-perl 3.11.2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 1,580 kB
  • sloc: perl: 12,506; makefile: 2; sh: 1
file content (99 lines) | stat: -rw-r--r-- 4,829 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Cleanup:
  * drop undocumented gen option 'anchorleft'
    when String::License no longer use it
    and require newer R::P::License anyway

Options:
  * Add pattern tolerance option:
    + none
    + case
    + punctuation
    + names
    + versioning
    + hyphenation - add hyphenation pattern at each syllable (or suppress original hyphenation): (?:[-·]\s*)?
  * Add pattern scope option.
  * Extend pattern named captures to include suffixes:
    + canonical - for the variation of a (sub)pattern preferred upstream
    + popular - skip obscure variations
  * Add pattern parno option
    to support PARNO syntax:
    <https://metacpan.org/pod/perlre#(?PARNO)-(?-PARNO)-(?+PARNO)-(?R)-(?0)>
    or maybe instead add pattern options balanced and delimited
    similar to <https://metacpan.org/pod/Regexp::Common::balanced>
    and <https://metacpan.org/pod/Regexp::Common::delimited>

Patterns:
  * tighten trait object version_number to not capture trailing zero segments
    '(?P<version_number>\d(?:(?:\.0)?\.[1-9])*)(?:\.0)*'
  * relax trait object license_label to match 'license": "'
  * Cover license directories:
    + SPDX (later than 3.0)
    + FSF: https://directory.fsf.org/wiki/Category:License
    + CC (redirected): https://github.com/creativecommons/sre-salt-prime/blob/HEAD/states/apache2/files/ccengine.conf#L74
    + GNU: https://www.gnu.org/licenses/license-list.html
    + SUSE: https://github.com/openSUSE/spec-cleaner
    + Microsoft (non-free): https://en.wikipedia.org/wiki/Shared_source
    + Wikipedia: https://en.wikipedia.org/wiki/Category:Copyright_licenses
    + Debian (website): https://www.debian.org/legal/licenses/
    + Debian (wiki): https://wiki.debian.org/DFSGLicenses
    + W3C: https://www.w3.org/Consortium/Legal/2002/ipr-notice-20021231
    + linfo: http://www.linfo.org/main_index.html
    + ifross: https://github.com/LeChasseur/ifrOSS/blob/master/Lizenzcenter.md
    * copyfree: http://copyfree.org/standard/licenses
    * ODRL: https://rdflicense.linkeddata.es/
  * Cover traits:
    + Comment styles (most possible):
      https://en.wikipedia.org/wiki/Comparison_of_programming_languages_(syntax)#Comments
    + RFN notice: https://wiki.debian.org/Fonts/Bugs/rfn-violation
    + Patent-related clauses:
      http://en.swpat.org/wiki/Patent_clauses_in_software_licences
  * Cover P2P licensing:
    * https://wiki.p2pfoundation.net/P2P_Licensing
  * Locate and cover previous lesser-free licenses:
    * https://en.wikipedia.org/wiki/List_of_formerly_proprietary_software
  * Provide subject patterns grant license (not any) by default:
    + Cover either grant or license for all objects
    + Use subject patterns grant license (not any avilable) by default
    + Document promise of full coverage, and default.

Metadata:
  * Tag classifications:
    * https://en.wikipedia.org/wiki/Free_license#Classification_and_licenses
  * Map to Creative Commons license spectrum
    * https://en.wikipedia.org/wiki/Creative_Commons_license#Types_of_license
  * Maybe tag non-free licenses by their nature (guild/peace/etc.)
    * https://wiki.creativecommons.org/wiki/Parametric_license
  * Maybe link (where appropriate) to kemitchell:
    * https://writing.kemitchell.com/
  * Relax tag "versioned" to any (even unknown) version

Testsuite:
  * Add author test checking validity of URLs.
    + Prepend alt.archive properties with https://web.archive.org/web/
  * Add author test checking coverage of URL directories
  * Test static patterns directly (i.e. not using Regexp::Pattern::re)
  * Distinguish between TODO (pending) and SKIP (irrelevant)

Misc.
  * Implement resolving popularity scores, as needed by debian-policy team:
    * https://sources.debian.org/src/debian-policy/4.1.3.0/tools/license-count/?hl=63#L63
  * Synthesize type:versioned iri from singleversion:$STEM as iri.alt.version.[/^$STEM_/]
  * Speedup synthesizing by processing simplest first
  * Improve grant synthesizing:
    + Expand to also cover lowercased names/captions
    + Expand to replace leading "Creative Commons" with "CC"
    + Expand to make leading "Creative Commons" (or "CC") optional
  * Improve iri synthesizing:
    + Expand protocol https → http
    + Expand to alternate websites with same identifier
  * Fix join data from other licenses in code loop (not declared as a seed) e.g. for group gnu
  * Assemble DefHash during build.
    + Maybe use Regexp::Assemble at build-time (but then optionally disable to support deterministic builds)
    + Install as YAML (and JSON?) below /usr/share/misc, for reuse by non-Perl tools.
  * Turn most possible into seed patterns.

Document new features:
  * Document gen option "capture"
  * Add note about "re" use...:
    adaptable by passing option C<subject> to L<Regexp::Pattern::re>.
  * Maybe reference https://rightsstatements.org/