mirror of
https://github.com/bitcoin/bips.git
synced 2025-07-13 05:52:26 +02:00
Promote BIP 2 Draft->Active, and implement it
- Update all Accepted status to Proposed (renamed status) - The BIP Comments preamble headers added to every BIP - The License preamble headers have been added to all BIPs with a Copyright section
This commit is contained in:
@ -9,12 +9,17 @@ my %RequiredFields = (
|
||||
BIP => undef,
|
||||
Title => undef,
|
||||
Author => undef,
|
||||
'Comments-Summary' => undef,
|
||||
'Comments-URI' => undef,
|
||||
Status => undef,
|
||||
Type => undef,
|
||||
Created => undef,
|
||||
# License => undef, (has exceptions)
|
||||
);
|
||||
my %MayHaveMulti = (
|
||||
Author => undef,
|
||||
'Comments-URI' => undef,
|
||||
License => undef,
|
||||
'Post-History' => undef,
|
||||
);
|
||||
my %DateField = (
|
||||
@ -25,11 +30,11 @@ my %EmailField = (
|
||||
Editor => undef,
|
||||
);
|
||||
my %MiscField = (
|
||||
'Comments-Summary' => undef,
|
||||
'Discussions-To' => undef,
|
||||
'Post-History' => undef,
|
||||
'Replaces' => undef,
|
||||
'Superseded-By' => undef,
|
||||
'Resolution' => undef,
|
||||
);
|
||||
|
||||
my %ValidLayer = (
|
||||
@ -42,7 +47,7 @@ my %ValidLayer = (
|
||||
my %ValidStatus = (
|
||||
Draft => undef,
|
||||
Deferred => undef,
|
||||
Accepted => "background-color: #ffffcf",
|
||||
Proposed => "background-color: #ffffcf",
|
||||
Rejected => "background-color: #ffcfcf",
|
||||
Withdrawn => "background-color: #ffcfcf",
|
||||
Final => "background-color: #cfffcf",
|
||||
@ -54,6 +59,34 @@ my %ValidType = (
|
||||
'Informational' => undef,
|
||||
'Process' => undef,
|
||||
);
|
||||
my %RecommendedLicenses = (
|
||||
'BSD-2-Clause' => undef,
|
||||
'BSD-3-Clause' => undef,
|
||||
'CC0-1.0' => undef,
|
||||
'GNU-All-Permissive' => undef,
|
||||
);
|
||||
my %AcceptableLicenses = (
|
||||
%RecommendedLicenses,
|
||||
'Apache-2.0' => undef,
|
||||
'BSL-1.0' => undef,
|
||||
'CC-BY-4.0' => undef,
|
||||
'CC-BY-SA-4.0' => undef,
|
||||
'MIT' => undef,
|
||||
'AGPL-3.0' => undef,
|
||||
'AGPL-3.0+' => undef,
|
||||
'FDL-1.3' => undef,
|
||||
'GPL-2.0' => undef,
|
||||
'GPL-2.0+' => undef,
|
||||
'LGPL-2.1' => undef,
|
||||
'LGPL-2.1+' => undef,
|
||||
);
|
||||
my %DefinedLicenses = (
|
||||
%AcceptableLicenses,
|
||||
'OPL' => undef,
|
||||
'PD' => undef,
|
||||
);
|
||||
my %GrandfatheredPD = map { $_ => undef } qw(9 36 37 38 42 49 50 60 65 69 74 80 81 83 99 105 107 109 111 112 113 114 122 124 125 126 130 131 132 133 140 141 142 143 144 146 147 150 151 152);
|
||||
my %TolerateMissingLicense = map { $_ => undef } qw(1 10 11 12 13 14 15 16 17 18 19 20 21 22 23 30 31 32 33 34 35 39 43 44 45 47 61 62 64 66 67 68 70 71 72 73 75 101 102 103 106 120 121 123);
|
||||
|
||||
my %emails;
|
||||
|
||||
@ -114,6 +147,15 @@ while (++$bipnum <= $topbip) {
|
||||
} elsif ($field eq 'Layer') { # BIP 123
|
||||
die "Invalid layer $val in $fn" unless exists $ValidLayer{$val};
|
||||
$layer = $val;
|
||||
} elsif ($field eq 'License') {
|
||||
die "Undefined license $val in $fn" unless exists $DefinedLicenses{$val};
|
||||
if (not $found{License}) {
|
||||
die "Unacceptable license $val in $fn" unless exists $AcceptableLicenses{$val} or ($val eq 'PD' and exists $GrandfatheredPD{$bipnum});
|
||||
}
|
||||
} elsif ($field eq 'Comments-URI') {
|
||||
if (not $found{'Comments-URI'}) {
|
||||
die unless $val eq sprintf('https://github.com/bitcoin/bips/wiki/Comments:BIP-%04d', $bipnum);
|
||||
}
|
||||
} elsif (exists $DateField{$field}) {
|
||||
die "Invalid date format in $fn" unless $val =~ /^20\d{2}\-(?:0\d|1[012])\-(?:[012]\d|30|31)$/;
|
||||
} elsif (exists $EmailField{$field}) {
|
||||
@ -122,6 +164,9 @@ while (++$bipnum <= $topbip) {
|
||||
die "Unknown field $field in $fn";
|
||||
}
|
||||
}
|
||||
if (not $found{License}) {
|
||||
die "Missing License in $fn" unless exists $TolerateMissingLicense{$bipnum};
|
||||
}
|
||||
for my $field (keys %RequiredFields) {
|
||||
die "Missing $field in $fn" unless $found{$field};
|
||||
}
|
||||
|
Reference in New Issue
Block a user