[Git][ghc/ghc][wip/ghc-9.12-release] 4 commits: hadrian-multi: warn on unused imports
Zubin (@wz1000)
gitlab at gitlab.haskell.org
Fri Dec 13 18:12:14 UTC 2024
Zubin pushed to branch wip/ghc-9.12-release at Glasgow Haskell Compiler / GHC
Commits:
dde3796b by Zubin Duggal at 2024-12-13T23:41:56+05:30
hadrian-multi: warn on unused imports
os-string has redundant imports
- - - - -
52b58a66 by Zubin Duggal at 2024-12-13T23:41:56+05:30
ghcup metadata: output metadata fragment in CI
- - - - -
39e4fed1 by Zubin Duggal at 2024-12-13T23:41:56+05:30
rel-eng: ghcup metadata generation: generated yaml anchors with meaningful names
(cherry picked from commit d83f5bd730a8aef37d8a38b3560590d9798f8e45)
(cherry picked from commit 280b627869da55a22b4b9a3458e6115b06b5fff4)
- - - - -
6cb5e233 by Zubin Duggal at 2024-12-13T23:41:56+05:30
RELEASE=YES
- - - - -
3 changed files:
- .gitlab-ci.yml
- .gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py
- configure.ac
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -435,7 +435,7 @@ hadrian-multi:
# workaround for docker permissions
- sudo chown ghc:ghc -R .
variables:
- GHC_FLAGS: "-Werror -Wwarn=deprecations"
+ GHC_FLAGS: "-Werror -Wwarn=deprecations -Wwarn=unused-imports"
CONFIGURE_ARGS: --enable-bootstrap-with-devel-snapshot
tags:
- x86_64-linux
@@ -1220,6 +1220,7 @@ ghcup-metadata-release:
# No explicit needs for release pipeline as we assume we need everything and everything will pass.
extends: .ghcup-metadata
script:
+ - nix shell --extra-experimental-features nix-command -f .gitlab/rel_eng -c ghcup-metadata --release-mode --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" --fragment
- nix shell --extra-experimental-features nix-command -f .gitlab/rel_eng -c ghcup-metadata --release-mode --metadata ghcup-0.0.7.yaml --date="$(date -d $CI_PIPELINE_CREATED_AT +%Y-%m-%d)" --pipeline-id="$CI_PIPELINE_ID" --version="$ProjectVersion" > "metadata_test.yaml"
rules:
- if: '$RELEASE_JOB == "yes"'
=====================================
.gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py
=====================================
@@ -67,6 +67,7 @@ class Artifact(NamedTuple):
download_name: str
output_name: str
subdir: str
+ anchor_name: str
# Platform spec provides a specification which is agnostic to Job
# PlatformSpecs are converted into Artifacts by looking in the jobs-metadata.json file.
@@ -77,11 +78,13 @@ class PlatformSpec(NamedTuple):
source_artifact = Artifact('source-tarball'
, 'ghc-{version}-src.tar.xz'
, 'ghc-{version}-src.tar.xz'
- , 'ghc-{version}' )
+ , 'ghc-{version}'
+ , 'ghc{version}-src')
test_artifact = Artifact('source-tarball'
, 'ghc-{version}-testsuite.tar.xz'
, 'ghc-{version}-testsuite.tar.xz'
- , 'ghc-{version}/testsuite' )
+ , 'ghc-{version}/testsuite'
+ , 'ghc{version}-testsuite')
def debian(n, arch='x86_64'):
return linux_platform(arch, "{arch}-linux-deb{n}".format(arch=arch, n=n))
@@ -132,6 +135,8 @@ def download_and_hash(url):
hash_cache[url] = digest
return digest
+uri_to_anchor_cache=dict()
+
# Make the metadata for one platform.
def mk_one_metadata(release_mode, version, job_map, artifact):
job_id = job_map[artifact.job_name].id
@@ -169,6 +174,9 @@ def mk_one_metadata(release_mode, version, job_map, artifact):
res["dlOutput"] = output
eprint(res)
+
+ # add the uri to the anchor name cache so we can lookup an anchor for this uri
+ uri_to_anchor_cache[final_url] = artifact.anchor_name
return res
# Turns a platform into an Artifact respecting pipeline_type
@@ -179,7 +187,8 @@ def mk_from_platform(pipeline_type, platform):
return Artifact(info['name']
, f"{info['jobInfo']['bindistName']}.tar.xz"
, "ghc-{version}-{pn}.tar.xz".format(version="{version}", pn=platform.name)
- , platform.subdir)
+ , platform.subdir
+ , f"ghc{{version}}-{platform.name}")
# Generate the new metadata for a specific GHC mode etc
@@ -297,6 +306,19 @@ def setNightlyTags(ghcup_metadata):
ghcup_metadata['ghcupDownloads']['GHC'][version]["viTags"].append("Nightly")
+def mk_dumper(version):
+ class CustomAliasDumper(yaml.Dumper):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+
+ def generate_anchor(self, node):
+ if isinstance(node, yaml.MappingNode):
+ node_dict = { k.value : v.value for (k,v) in node.value }
+ if 'dlUri' in node_dict:
+ return uri_to_anchor_cache[node_dict['dlUri']].format(version=version.replace('.',''))
+ return super().generate_anchor(node)
+
+ return CustomAliasDumper
def main() -> None:
@@ -332,7 +354,7 @@ def main() -> None:
new_yaml = mk_new_yaml(args.release_mode, args.version, args.date, pipeline_type, job_map)
if args.fragment:
- print(yaml.dump({ args.version : new_yaml }))
+ print(yaml.dump({ args.version : new_yaml }, Dumper=mk_dumper(args.version)))
else:
with open(args.metadata, 'r') as file:
=====================================
configure.ac
=====================================
@@ -13,7 +13,7 @@ dnl
# see what flags are available. (Better yet, read the documentation!)
#
-AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.12.0], [glasgow-haskell-bugs at haskell.org], [ghc-AC_PACKAGE_VERSION])
+AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.12.1], [glasgow-haskell-bugs at haskell.org], [ghc-AC_PACKAGE_VERSION])
# Version on master must be X.Y (not X.Y.Z) for ProjectVersionMunged variable
# to be useful (cf #19058). However, the version must have three components
# (X.Y.Z) on stable branches (e.g. ghc-9.2) to ensure that pre-releases are
@@ -22,7 +22,7 @@ AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.12.0], [glasgow-ha
AC_CONFIG_MACRO_DIRS([m4])
# Set this to YES for a released version, otherwise NO
-: ${RELEASE=NO}
+: ${RELEASE=YES}
# The primary version (e.g. 7.5, 7.4.1) is set in the AC_INIT line
# above. If this is not a released version, then we will append the
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/32f7a9ab6c1a52e34e705c8d99deda6068980b5f...6cb5e233c48f5b26b7081c207067b7ef92bcc72b
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/32f7a9ab6c1a52e34e705c8d99deda6068980b5f...6cb5e233c48f5b26b7081c207067b7ef92bcc72b
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20241213/a8fc4384/attachment-0001.html>
More information about the ghc-commits
mailing list