Actually build all releases

This entails some other changes:

* Disable older releases, which don't have the same OpenAPI spec as newer ones
  do

* Add some `dhall-kubernetes-generator` fixes to handle weird behavior for
  certain versions
This commit is contained in:
Gabriel Gonzalez 2020-01-10 19:15:28 -08:00
parent 3e6e17f914
commit 9a1f76be55
61 changed files with 213 additions and 246 deletions

View File

@ -53,7 +53,7 @@ In the following example, we:
-- examples/deploymentSimple.dhall
let kubernetes =
../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53
../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3
let deployment =
kubernetes.Deployment::{
@ -152,7 +152,7 @@ let map = Prelude.List.map
let kv = Prelude.JSON.keyText
let kubernetes =
../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53
../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3
let Service = { name : Text, host : Text, version : Text }

View File

@ -735,31 +735,31 @@
, CustomResourceConversion =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion.dhall sha256:bdffed4de47429d51c58edc4bcaf4c65a02a942c5a91d2c10b04bb00f8829b0b
, CustomResourceDefinition =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:336b72958ef16de1522a4df63369ed958cd0dce56ef5d30e58647fa450943a7a
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:2a51ba49b6bb3a550cb786e6b2ee2366866bad889601cdba3af3addecb10a332
, CustomResourceDefinitionCondition =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition.dhall sha256:fef63958bc998f900417bd68974df7936535249af83edf1183721637fa3e7257
, CustomResourceDefinitionList =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:652d515d9b0ff855301f78e4f647c23de73c3e5e695fd3bddc102ebba7a7929d
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:452a8886d9c8e40d5de75c4c80d121ff79d6cf831be8daeaff63ecfc24a849f5
, CustomResourceDefinitionNames =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames.dhall sha256:73f1528045b5541c009f74e02026661616223dc23bc0df9c0d640fd0184eef0a
, CustomResourceDefinitionSpec =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:19e995d543bcba13a88b7aea1de4c4d3bad4c620ee437fc3fc47f713ab9ab8a5
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:b7c84df71059878b76d75f2a23316169f4854ec3d26341c8d8e2ddde0a7e52fa
, CustomResourceDefinitionStatus =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus.dhall sha256:318553c0327930257e05495251cafe571a94670e29285b7aa6b834cea63ac849
, CustomResourceDefinitionVersion =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:2db28c6f5c40ad9e27c1f0c039a9afb3bdd8587c609be0ecfeff93b513a7bc79
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:0902dcee8c4fbcf739bf02e5aec3380f79c5ab51cc1ac2b75e8c075835be411c
, CustomResourceSubresourceScale =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale.dhall sha256:265a09b4bd7a8452253edec4c5a15e1d9f8c4805350ac7b19fac74eca23b266e
, CustomResourceSubresources =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources.dhall sha256:9ae05caacec1bcc4f030d8eef9b82d5416b9f22134b108c7db6b56c859d86ba3
, CustomResourceValidation =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:3038e3161e96beabd1d70e9d0ebfda501fe8a7cce778df7f7964fad87f5b4537
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:a442aa0bd3be3cf8dbdda4f209af4732b12e8ab8c263535bc55e92f075db922b
, ExternalDocumentation =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall sha256:ef72045716c5bc714c4a81aa7218ade9eec702588c9a2650fe5b7d6331445032
, JSON =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall sha256:9bb9dcb5bf6f795291686f59383bcd01c8e79b87fc3fb63351d46dea100ac51b
, JSONSchemaProps =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:63d200dfe11f927576fa3a694fc9d8e6fd9ba317d5a8c65ace4c4117c804b65e
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:7f257b567eed8ba4d53b2553413c48b5aec2f18479b1924b873fc150ce0c86c9
, JSONSchemaPropsOrArray =
./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall sha256:9bb9dcb5bf6f795291686f59383bcd01c8e79b87fc3fb63351d46dea100ac51b
, JSONSchemaPropsOrBool =

View File

@ -1,8 +1,4 @@
{ additionalItems =
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool.dhall
, additionalProperties =
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool.dhall
, default =
{ default =
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall
, definitions = [] : List { mapKey : Text, mapValue : Text }
, dependencies = [] : List { mapKey : Text, mapValue : Text }
@ -13,8 +9,6 @@
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall
, externalDocs =
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall
, items =
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall
, patternProperties = [] : List { mapKey : Text, mapValue : Text }
, properties = [] : List { mapKey : Text, mapValue : Text }
, required = [] : List Text

View File

@ -1,8 +1,4 @@
{ additionalItems =
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool.dhall
, additionalProperties =
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool.dhall
, default =
{ default =
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON.dhall
, definitions = [] : List { mapKey : Text, mapValue : Text }
, dependencies = [] : List { mapKey : Text, mapValue : Text }
@ -13,8 +9,6 @@
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON.dhall
, externalDocs =
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation.dhall
, items =
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray.dhall
, patternProperties = [] : List { mapKey : Text, mapValue : Text }
, properties = [] : List { mapKey : Text, mapValue : Text }
, required = [] : List Text

View File

@ -296,6 +296,7 @@ getImportsMap prefixMap duplicateNameHandler objectNames folder toInclude
namespaced = case filter filterFn namespacedNames of
[name] -> Just name
[] -> Nothing
names -> duplicateNameHandler (kind, names)
stripPrefix :: (Generic a, GFromJSON Zero (Rep a)) => Int -> Value -> Parser a

View File

@ -11,4 +11,15 @@ patchCyclicImports :: Definition -> Definition
patchCyclicImports Definition{ properties = oldProps, .. } = Definition{..}
where
properties = fmap (\propsMap -> Data.Map.withoutKeys propsMap toRemove) oldProps
toRemove = Set.fromList $ ModelName <$> [ "allOf", "anyOf", "not", "oneOf" ]
toRemove =
Set.fromList $
( ModelName
<$> [ "allOf"
, "anyOf"
, "not"
, "oneOf"
, "additionalItems"
, "additionalProperties"
, "items"
]
)

View File

@ -126,11 +126,11 @@ parseVersion = Megaparsec.try parseSuffix <|> parsePrefix
parseVersion
getVersion :: ModelName -> Version
getVersion :: ModelName -> Maybe Version
getVersion ModelName{..} =
case Megaparsec.parse parseVersion "" unModelName of
Left errors -> error (show errors)
Right version -> version
Left errors -> Nothing
Right version -> Just version
preferStableResource :: DuplicateHandler
preferStableResource (_, names) =

View File

@ -1,5 +1,5 @@
let kubernetes =
../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53
../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3
let release = "wintering-rodent"

View File

@ -2,7 +2,7 @@ let Prelude =
../Prelude.dhall sha256:771c7131fc87e13eb18f770a27c59f9418879f7e230ba2a50e46f4461f43ec69
let kubernetes =
../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53
../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3
let kv = Prelude.JSON.keyText

View File

@ -1,5 +1,5 @@
let kubernetes =
../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53
../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3
let deployment =
kubernetes.Deployment::{

View File

@ -6,7 +6,7 @@ let map = Prelude.List.map
let kv = Prelude.JSON.keyText
let kubernetes =
../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53
../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3
let Service = { name : Text, host : Text, version : Text }

View File

@ -2,7 +2,7 @@ let Prelude =
../Prelude.dhall sha256:771c7131fc87e13eb18f770a27c59f9418879f7e230ba2a50e46f4461f43ec69
let kubernetes =
../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53
../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3
let kv = Prelude.JSON.keyText

View File

@ -1,85 +1,42 @@
{ coreutils
, dhall
, dhall-json
, dhallPackages
, glibcLocales
, haskellPackages
, kubernetes-openapi-spec
, lib
, python3
, stdenv
}:
{ fetchurl, make-dhall-kubernetes, lib, stdenv }:
version:
let
kubernetesDirectory = ./kubernetes;
let
# Ignore generated files
ignoreOutputs =
name: type:
!(lib.elem name
(map toString
[ ../README.md
../types
../defaults
../schemas
../defaults.dhall
../types.dhall
../typesUnion.dhall
../schemas.dhall
]
)
);
kubernetesPaths = builtins.readDir kubernetesDirectory;
toKeyValue =
file: _:
let
version = builtins.replaceStrings [ ".txt" ] [ "" ] file;
in
{ name = version;
value =
let
spec =
stdenv.mkDerivation {
name = "kubernetes-openapi-spec-${version}";
src =
fetchurl {
url = "https://github.com/kubernetes/kubernetes/archive/release-${version}.tar.gz";
sha256 =
builtins.replaceStrings [ "\n" ] [ "" ]
(builtins.readFile (kubernetesDirectory + "/${file}"));
};
phases = [ "unpackPhase" "installPhase" ];
installPhase = ''
cp api/openapi-spec/swagger.json $out
'';
};
in
make-dhall-kubernetes spec;
};
in
stdenv.mkDerivation {
name = "dhall-kubernetes";
DHALL_PRELUDE = "${dhallPackages.prelude}/package.dhall";
XDG_CACHE_HOME = ".";
buildInputs =
[ dhall
dhall-json
python3
glibcLocales
];
buildPhase = ''
patchShebangs ./scripts/build-readme.sh
./scripts/build-readme.sh
${coreutils}/bin/mkdir -p types defaults
${haskellPackages.dhall-kubernetes-generator}/bin/dhall-kubernetes-generator '${kubernetes-openapi-spec."${version}"}'
for file in ./types.dhall ./typesUnion.dhall ./defaults.dhall ./schemas.dhall ./package.dhall ./examples/*.dhall; do
echo "Freezing file '$file'"
${dhall}/bin/dhall freeze --all --inplace "$file"
done
'';
checkPhase = ''
patchShebangs ./scripts/build-examples.py
patchShebangs ./scripts/check-source.py
LC_ALL=en_US.UTF-8 ./scripts/check-source.py
mkdir -p tmp
LC_ALL=en_US.UTF-8 ./scripts/build-examples.py tmp
'';
installPhase = ''
${coreutils}/bin/mkdir --parents "$out"
cp -r types defaults schemas examples types.dhall defaults.dhall typesUnion.dhall schemas.dhall package.dhall README.md "$out"
'';
src =
lib.cleanSourceWith
{ filter = ignoreOutputs; src = lib.cleanSource ./..; };
}
lib.mapAttrs' toKeyValue kubernetesPaths

View File

@ -1,37 +0,0 @@
{ lib, stdenv }:
let
kubernetesDirectory = ./kubernetes;
kubernetesPaths = builtins.readDir kubernetesDirectory;
toKeySpec =
file: _:
let
version = builtins.replaceStrings [ ".txt" ] [ "" ] file;
in
{ name = version;
value =
stdenv.mkDerivation {
name = "kubernetes-openapi-spec-${version}";
src =
builtins.fetchTarball {
url = "https://github.com/kubernetes/kubernetes/archive/release-${version}.tar.gz";
sha256 =
builtins.replaceStrings [ "\n" ] [ "" ]
(builtins.readFile (kubernetesDirectory + "/${file}"));
};
phases = [ "unpackPhase" "installPhase" ];
installPhase = ''
cp api/openapi-spec/swagger.json $out
'';
};
};
in
lib.mapAttrs' toKeySpec kubernetesPaths

View File

@ -1 +0,0 @@
1wx9xfqd5a0srkfj15vgbhc5pxy43g76xxjm0i8lygyb2869vwb7

View File

@ -1 +0,0 @@
0lq8zl9v2966sa32i1kkvz9szqjdy95bdaax96fzf6wyx6gw8zjd

View File

@ -1 +0,0 @@
0dirl056vaj8xxj54gyfi96952983a1iwjisjz464ry9s4bamzp3

View File

@ -1 +0,0 @@
16p2mqafpl7sw191slx9dwg44sv8nvjh20maj7j4h269xnd3pj8y

View File

@ -1 +0,0 @@
0wxcdqj42ls0sdg1l2fkyka98rlr34ifakwq56f2xg2jamp3a2wm

View File

@ -1 +0,0 @@
1jmghxhjklypgcqr06m0yhcjwkvsa8jgc77zznq03jawy5v9jb88

View File

@ -1 +0,0 @@
1bbfly9k5iw0yxd2ayhl1l9ha2h5ysmak8l3dh8mkzwv7c763p7g

View File

@ -1 +0,0 @@
06phj5k1pjbwn8mjmlbw8k7fz60p0n1qczq0sixzxwk9n6ysfb27

View File

@ -1 +0,0 @@
0yk3pilr599aisi67lwcdall9jgssxv0m9iz5af26myywgqx88qw

View File

@ -1 +0,0 @@
14ijvyhnl1gjdnqy81msf065iv75ywwvys8hkypn6zam8vni3jk6

View File

@ -1 +0,0 @@
060dmbkqlcrsfwxwc20dx8nc5hni416x4sk29yfnpncgx9nzfb47

View File

@ -1 +0,0 @@
0rig5chq70knkxnbf21majpjb8dpfsywnpzwpj3abqldwh82nkz3

View File

@ -1 +0,0 @@
1jsdcwi1rzjs7snngdcwia5a0kadllwdx848ipnfvzr8lm3901x9

View File

@ -1 +0,0 @@
1hpq72zqwl8djg83jvi1ql14g003s8kb1c2jir7ch57d9ya5c4sl

View File

@ -1 +0,0 @@
02sk0csbsnf6nkhxjx5gdh0p98kfirgg4bfzvzr0ancs2vjdc6yd

View File

@ -1 +0,0 @@
16gg51j4yk7m6zzvi7nhlfb2nmhhp3hbq8l99hdpaj01ahbsn8f9

View File

@ -1 +0,0 @@
05xjwgk1gq6r3kqypbq67hrqzv8fpav4wm17xm6cals2s2xzcci2

View File

@ -1 +0,0 @@
188yr7x13gmi8fv77jxpx4nwz1kpr78da8xqlwpp2fd0ak3xy9x0

View File

@ -1 +0,0 @@
01x8sa1z10prwml4j8ybrxpdan94hh9qnkbczz7q3yrrlj8ywz7b

View File

@ -1 +1 @@
16zv5hcxhp65lryxv96dlg37ckzyjha5d70pa3yhlb19hap89hh8
0p6djqdz296r18n0kf2lfq96yynngd3b5qc6d5pcqh2dfs2v9ydm

View File

@ -1 +1 @@
1zifl2f4k4icgijyss25krm4ccc1a4zd5pdz2l0bc6g769dbnxgc
1hcry5rsa2ngi1wdg8cnwh4s53l9xggl5ynfa8jwdnjq0nhsiryd

View File

@ -1 +1 @@
0g07k5zf9nh49b11yxikp8f7mv3a32fqx47qkbnkmnznxih0rg7f
18kixk3i9c2vgl5yrnvi7ybchskyvfpzs9cgc8jk9w921ryvwavg

View File

@ -1 +1 @@
1bhnhx3mzf3l311cpwfy586n9z4s08k1kqf2lvyjp10zlich6rbh
0bp716qd67dc96ibwxjn03njq7g4p0ix82dnm8a264l15rzj8v01

View File

@ -1 +1 @@
10h6asa6hj3a9mgf4ld7smli6fiv4grkwhd0cnbc22zwa2x69706
0z2chn8dqinc6cpyl9w1f3rn77qfxbbgzmrcvzal18a8pzd5rkcy

View File

@ -1 +1 @@
1dmjdc0l1k4mgl1bdpvgjrkksq3j5nyiqlj7nlkfgjhqh9s6ynya
1gwvlflf0yha1qsv6lp1skqpbm22qiyc5bicp6s1w8rxz8wlcv91

View File

@ -1 +1 @@
1awapdsvp5qnaaxr20zd9lvfzrk5a2wzxpqnbyh4jhpyv22li16g
01m3pcymbfg7vzdx9z08iilqlfn8w5myw6rlf4mjny76x380d94x

View File

@ -1 +1 @@
1fy2c2j5f61zx7vcj4pnzfpcyifm6kqxl9g9w30jq1w96r769k3i
0q84xf16dl15s30awirsg73y9fbd9n6sr6163xvyjq5x8vf9axgj

View File

@ -1 +0,0 @@
1d92nykr6s9ngdnsbnbfi4zrc08f7h8d5v1pr09hyqbl9r430xnc

View File

@ -1 +0,0 @@
0ha2izcfvcyg1l8qrjs8c32afm9mlwvy5d33aqcfjpvy40nszzpg

View File

@ -1 +0,0 @@
1383iiy3n1l4vzk5wrv7dd7vl3q3mw2x4wq2k799zgxdvwp1wmbp

View File

@ -1 +1 @@
0kdycfxvmanah9cpvkxs9blhhqgpxwf49bcf1hcy2fhkibgr33v4
1838jrzk7xn2m92xj9wl47rrg4ac46qrpcc99c3l06y9hlhhjfg5

View File

@ -1 +1 @@
1waxkr4ycrd23w8pi83gyf6jmawi1nhfzixp70fcwwka5h7p2y91
08yzbcigmy35qi7xbpcm3sxbfw2bhvna2m6rqqnzfh64bl13c219

View File

@ -1 +1 @@
0qgcxa9ra20zk7yldg5dhqmdxngm6va5x664rasda22sb4sc7x3y
0szzcn0w8gsar2v0fm360abfbpjhakdnqhdxjpvddfwcbyz5f3c7

View File

@ -1 +1 @@
0vrxjb6rkrmxby108h2d4vw4mxwg8q9yqx7ic0khc86adpa2x7wy
1icgc4b4jhf2zxvjczmmycn4kbg3k878jvpxzbw5kxbcql431754

View File

@ -1 +1 @@
1jicbyy1lpah1wvqpgn0gy5m65xbm75psd951x8alfpannlk6plw
02rdcly2vymakc94ivpy7wmmhwmm1j2wb7zk5jd5mynk5jighmij

View File

@ -1 +1 @@
1ij0v3b8brkir9z45i7599zznrggds0w836p3rhp5n8rk5n1k0dj
1k01ww4qc8rsfk919gpyygmhmd31rjkzj20ng4mp5caii8fm821b

View File

@ -0,0 +1,84 @@
{ coreutils
, dhall
, dhall-json
, dhallPackages
, glibcLocales
, haskellPackages
, lib
, python3
, stdenv
}:
spec:
let
# Ignore generated files
ignoreOutputs =
name: type:
!(lib.elem name
(map toString
[ ../README.md
../types
../defaults
../schemas
../defaults.dhall
../types.dhall
../typesUnion.dhall
../schemas.dhall
]
)
);
in
stdenv.mkDerivation {
name = "dhall-kubernetes";
DHALL_PRELUDE = "${dhallPackages.prelude}/package.dhall";
XDG_CACHE_HOME = ".";
buildInputs =
[ dhall
dhall-json
python3
glibcLocales
];
buildPhase = ''
patchShebangs ./scripts/build-readme.sh
./scripts/build-readme.sh
${coreutils}/bin/mkdir -p types defaults
${haskellPackages.dhall-kubernetes-generator}/bin/dhall-kubernetes-generator '${spec}'
for file in ./types.dhall ./typesUnion.dhall ./defaults.dhall ./schemas.dhall ./package.dhall ./examples/*.dhall; do
echo "Freezing file '$file'"
${dhall}/bin/dhall freeze --all --inplace "$file"
done
'';
checkPhase = ''
patchShebangs ./scripts/build-examples.py
patchShebangs ./scripts/check-source.py
LC_ALL=en_US.UTF-8 ./scripts/check-source.py
mkdir -p tmp
LC_ALL=en_US.UTF-8 ./scripts/build-examples.py tmp
'';
installPhase = ''
${coreutils}/bin/mkdir --parents "$out"
cp -r types defaults schemas examples types.dhall defaults.dhall typesUnion.dhall schemas.dhall package.dhall README.md "$out"
'';
src =
lib.cleanSourceWith
{ filter = ignoreOutputs; src = lib.cleanSource ./..; };
}

View File

@ -8,19 +8,9 @@ let
config = {
packageOverrides = pkgs: rec {
make-dhall-kubernetes = pkgs.callPackage ./dhall-kubernetes.nix {};
make-dhall-kubernetes = pkgs.callPackage ./make-dhall-kubernetes.nix {};
dhall-kubernetes =
let
latestKubernetesRelease =
builtins.replaceStrings [ "\n" ] [ "" ]
(builtins.readFile ./preferred.txt);
in
make-dhall-kubernetes latestKubernetesRelease;
kubernetes-openapi-spec =
pkgs.callPackage ./kubernetes-openapi-spec.nix {};
dhall-kubernetes = pkgs.callPackage ./dhall-kubernetes.nix {};
haskellPackages = pkgs.haskellPackages.override (old: {
overrides =

View File

@ -1,7 +1,7 @@
./schemas.dhall sha256:bd5cfc1abae136959fc13c483d6ebe7ffef906dc23cdd5153cc57da9f6aa6fce
./schemas.dhall sha256:f6943c82da5de5d5734d519795a9a0a07fbb88b848e7cbb66fd3b9244b8eee1e
∧ { IntOrString =
( ./types.dhall sha256:59cfe76addc3e3be9c80a82f47e08aaee3b4ce8df11f57bf1800917ce709babe
( ./types.dhall sha256:e62539f41a3b4bf302318f95da6fdea5d28aae856405f7e280627040887a4039
).IntOrString
, Resource =
./typesUnion.dhall sha256:c861da8dcaa0d1b0f542fa8bb97536a746d3cc4d3d2e1284012be0596bc08c15
./typesUnion.dhall sha256:ba8ebd9c402a007aea9db8c5faf0f5f4f9d9f8d8acc415485f55302462c2f555
}

View File

@ -2,17 +2,24 @@
, src ? { rev = ""; }
, ...
}:
rec {
inherit (pkgs) dhall-kubernetes;
inherit (pkgs.haskellPackages) dhall-kubernetes-generator;
# Derivation that trivially depends on the input source code revision.
# As this is included in the "dhall-lang" aggregate, it forces every
# commit to have a corresponding GitHub status check, even if the
# commit doesn't make any changes (which can happen when merging
# master in).
rev = pkgs.runCommand "rev" {} ''echo "${src.rev}" > $out'';
let
products = {
inherit (pkgs.haskellPackages) dhall-kubernetes-generator;
# Derivation that trivially depends on the input source code revision.
# As this is included in the "dhall-lang" aggregate, it forces every
# commit to have a corresponding GitHub status check, even if the
# commit doesn't make any changes (which can happen when merging
# master in).
rev = pkgs.runCommand "rev" {} ''echo "${src.rev}" > $out'';
} // builtins.removeAttrs pkgs.dhall-kubernetes
[ "override" "overrideDerivation" ];
aggregate = pkgs.releaseTools.aggregate {
name = "dhall-kubernetes-agggregate";
constituents = [ dhall-kubernetes dhall-kubernetes-generator rev ];
name = "dhall-kubernetes-aggregate";
constituents = pkgs.lib.mapAttrsToList (_: v: v) products;
};
}
in
products // { inherit aggregate; }

View File

@ -735,31 +735,31 @@
, CustomResourceConversion =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion.dhall sha256:84389e86c876d527da8d0a915cd4036f6666ae94486cc2fb58173ce06b23333f
, CustomResourceDefinition =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:8a1979bbfef150e1e1504d19f844c4b839e1216243e97879d66d507d1060704c
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:a84ce984f7f33f0c9d8967b854f55c05e42cb7854491377a5103fcfc027140b8
, CustomResourceDefinitionCondition =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition.dhall sha256:47ec59edf7c6f9429301ee78bfdfc84bbfdbf494fe3b461db05ae03de8c6817d
, CustomResourceDefinitionList =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:3e833717414b5d3a47dfd5b89d79cf7509e0fcafb3e249796322f8be2f601a75
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:991bc92cd163f2c2d86bad3fdf92f2dd167da5ea276b37eb71e264a73c016e57
, CustomResourceDefinitionNames =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames.dhall sha256:e1397c76ee13f2ef8d1c3a4a39d42a3541e26751940d9a92b2dac3443f4b2ef3
, CustomResourceDefinitionSpec =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:477749de30bad77861bbffe5271ccc4abd239926a91430b10fe131843b2c5de8
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:2a3a7c3f6df1b8d519c8158601b2c9b9ef0b9707ddbff69aa89a8c4b18199bc7
, CustomResourceDefinitionStatus =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus.dhall sha256:4df5a2b66e0f4c0ea728989c7873b634c912b9598296da2c7272a0425b5f351e
, CustomResourceDefinitionVersion =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:f835db9d839f378ac790bc1f9153a6dc8fb6a2143d4ba7fb08bb663a3592f223
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:5b85808062cc90aed738f2230313b9b4a96a2ca7a5fea5a22dd998bb31957ed2
, CustomResourceSubresourceScale =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale.dhall sha256:f88ea71fc0f62e1bdbf5dfa141837e4be12f302248528b61d20c0adf0b5cff63
, CustomResourceSubresources =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources.dhall sha256:1d0db47454d301f02169fb4d472b3bd1f9331750a00d7d108f67074367ebb483
, CustomResourceValidation =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:17b2ff74aa50cd9cb3f0771edf42bc76199da03bd84dc51ac712538f180ad2f8
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:0400fd741482ff4882b6ed717dd950da84f9bcac78756222a7d7a1a965d7b6a2
, ExternalDocumentation =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall sha256:d028dfb12958fddb9658597805976d8e72509c0b058970e7f9be3519c91f37d0
, JSON =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall sha256:81a1bf11fb9dc588941bd83400ed571298585a700a53e858456806f7ea3b8ce2
, JSONSchemaProps =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:c362693ae3241b29db963ce04ea41e42c89a8b6f353fbf4a63dfc1f9bfa8d598
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:92ef0421a9c4cb27b778cfdee336120304cce4dd4920b9dbda844d269c662160
, JSONSchemaPropsOrArray =
./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall sha256:81a1bf11fb9dc588941bd83400ed571298585a700a53e858456806f7ea3b8ce2
, JSONSchemaPropsOrBool =

View File

@ -4,4 +4,4 @@ set -eu
VERSION="$1"
nix-prefetch-url --unpack "https://github.com/kubernetes/kubernetes/archive/release-${VERSION}.tar.gz" > "nix/kubernetes/${VERSION}.txt"
nix-prefetch-url "https://github.com/kubernetes/kubernetes/archive/release-${VERSION}.tar.gz" > "nix/kubernetes/${VERSION}.txt"

View File

@ -1,5 +1,5 @@
#!/bin/sh
if dir=$(nix-build release.nix --attr dhall-kubernetes --no-out-link); then
if dir=$(nix-build release.nix --attr "\"$(< ./nix/preferred.txt)\"" --no-out-link); then
rm -rf ./defaults ./types
cp -r "$dir"/defaults .
chmod u+w ./defaults

View File

@ -735,19 +735,19 @@
, CustomResourceConversion =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion.dhall sha256:52f61f62579efc9b87e5fed9951acc40fddbdd8eecca922f6cc551a5588b3712
, CustomResourceDefinition =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:3bc3280d014370cc259768bf853fb0257db91ab9072de8d87967983970d35758
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:cb1a053f9fc10c6f52a5f83c97e64a82352e2f3d7d2b2f73b6a3ec548801eb0e
, CustomResourceDefinitionCondition =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition.dhall sha256:10de5e5aed3f6e1721f79bd8e2f9ffcecb92658fbe7442e6eaf74c6780b4779d
, CustomResourceDefinitionList =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:ac73aa4ab0fb2e9968aeea4d1aa8255d0971c63873a103aadd3bfeef860e0cf1
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:adfbed123664ac31d68dda0880a503436d784565958671a4b3e0c27a711aceaa
, CustomResourceDefinitionNames =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames.dhall sha256:0278161a6b3294f036a73cd3c4dc3d0b304f683ba9de276a119c634ff73e9fb1
, CustomResourceDefinitionSpec =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:64f5e17c0be23ef0cc9cebde90d887a4ed50ea724a866596fe5f205269682aa7
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:58465ddaeee8ef1d1ffc5105671dd69d5ab6001968627bdc6fce124fd8bc0535
, CustomResourceDefinitionStatus =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus.dhall sha256:9760548a849877dfd2a7411930d68a4974da897b83937d1e5c4c0e9bdf82d50f
, CustomResourceDefinitionVersion =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:4397e19113e06dff2dff0aa43dd97d87fc9305611e0e46bde9d2dbc44267ccd0
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:0dff46037720814fafe44d019b8b16abf3195e2d7d6c27c89ba4a74f8b819d60
, CustomResourceSubresourceScale =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale.dhall sha256:6733049a96431ae2b72e7d6b17a24204a0ef148aef08725e02f8da00339525a6
, CustomResourceSubresourceStatus =
@ -755,13 +755,13 @@
, CustomResourceSubresources =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources.dhall sha256:0581868225988fcffb65edf1f9e9c9edd9bb509b8821ffd6941728d00f976640
, CustomResourceValidation =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:44ae4096d58f78fae63b89981954e142788fd7968be4738070b4fbdb8a7767dc
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:a7144e84a9a050ebd8768596da8c24b2f69dd30cc2374827025be2508b775136
, ExternalDocumentation =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall sha256:75a79c871f43a432b402f8a5d52f277bb827f5170ecfed101ed356a91ccbce91
, JSON =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall sha256:0912602a19e01dcff30f351958d2d9b69519c9be61b57b1b32a2a569bf8bf5f9
, JSONSchemaProps =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:32b8c3a4615735cbf9f5d9fe3f99b47a28e9ce4c6d2e11bbeaf1a925c7bdf3b4
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:712211f2527ee07ca2a1f1dbbfdf7d1822d9844107aa170c37d67b4103d264cd
, JSONSchemaPropsOrArray =
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall sha256:0912602a19e01dcff30f351958d2d9b69519c9be61b57b1b32a2a569bf8bf5f9
, JSONSchemaPropsOrBool =

View File

@ -1,8 +1,4 @@
{ additionalItems :
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool.dhall
, additionalProperties :
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool.dhall
, default :
{ default :
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall
, definitions : List { mapKey : Text, mapValue : Text }
, dependencies : List { mapKey : Text, mapValue : Text }
@ -12,8 +8,6 @@
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall
, externalDocs :
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall
, items :
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall
, patternProperties : List { mapKey : Text, mapValue : Text }
, properties : List { mapKey : Text, mapValue : Text }
, required : List Text

View File

@ -1,8 +1,4 @@
{ additionalItems :
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool.dhall
, additionalProperties :
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool.dhall
, default :
{ default :
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON.dhall
, definitions : List { mapKey : Text, mapValue : Text }
, dependencies : List { mapKey : Text, mapValue : Text }
@ -13,8 +9,6 @@
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON.dhall
, externalDocs :
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation.dhall
, items :
./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray.dhall
, patternProperties : List { mapKey : Text, mapValue : Text }
, properties : List { mapKey : Text, mapValue : Text }
, required : List Text

View File

@ -735,19 +735,19 @@
| CustomResourceConversion :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion.dhall sha256:52f61f62579efc9b87e5fed9951acc40fddbdd8eecca922f6cc551a5588b3712
| CustomResourceDefinition :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:3bc3280d014370cc259768bf853fb0257db91ab9072de8d87967983970d35758
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:cb1a053f9fc10c6f52a5f83c97e64a82352e2f3d7d2b2f73b6a3ec548801eb0e
| CustomResourceDefinitionCondition :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition.dhall sha256:10de5e5aed3f6e1721f79bd8e2f9ffcecb92658fbe7442e6eaf74c6780b4779d
| CustomResourceDefinitionList :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:ac73aa4ab0fb2e9968aeea4d1aa8255d0971c63873a103aadd3bfeef860e0cf1
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:adfbed123664ac31d68dda0880a503436d784565958671a4b3e0c27a711aceaa
| CustomResourceDefinitionNames :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames.dhall sha256:0278161a6b3294f036a73cd3c4dc3d0b304f683ba9de276a119c634ff73e9fb1
| CustomResourceDefinitionSpec :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:64f5e17c0be23ef0cc9cebde90d887a4ed50ea724a866596fe5f205269682aa7
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:58465ddaeee8ef1d1ffc5105671dd69d5ab6001968627bdc6fce124fd8bc0535
| CustomResourceDefinitionStatus :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus.dhall sha256:9760548a849877dfd2a7411930d68a4974da897b83937d1e5c4c0e9bdf82d50f
| CustomResourceDefinitionVersion :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:4397e19113e06dff2dff0aa43dd97d87fc9305611e0e46bde9d2dbc44267ccd0
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:0dff46037720814fafe44d019b8b16abf3195e2d7d6c27c89ba4a74f8b819d60
| CustomResourceSubresourceScale :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale.dhall sha256:6733049a96431ae2b72e7d6b17a24204a0ef148aef08725e02f8da00339525a6
| CustomResourceSubresourceStatus :
@ -755,13 +755,13 @@
| CustomResourceSubresources :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources.dhall sha256:0581868225988fcffb65edf1f9e9c9edd9bb509b8821ffd6941728d00f976640
| CustomResourceValidation :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:44ae4096d58f78fae63b89981954e142788fd7968be4738070b4fbdb8a7767dc
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:a7144e84a9a050ebd8768596da8c24b2f69dd30cc2374827025be2508b775136
| ExternalDocumentation :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall sha256:75a79c871f43a432b402f8a5d52f277bb827f5170ecfed101ed356a91ccbce91
| JSON :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall sha256:0912602a19e01dcff30f351958d2d9b69519c9be61b57b1b32a2a569bf8bf5f9
| JSONSchemaProps :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:32b8c3a4615735cbf9f5d9fe3f99b47a28e9ce4c6d2e11bbeaf1a925c7bdf3b4
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:712211f2527ee07ca2a1f1dbbfdf7d1822d9844107aa170c37d67b4103d264cd
| JSONSchemaPropsOrArray :
./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall sha256:0912602a19e01dcff30f351958d2d9b69519c9be61b57b1b32a2a569bf8bf5f9
| JSONSchemaPropsOrBool :