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/
|