forked from Qiskit/qiskit
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move release note in wrong location and add script to block this (Qis…
…kit#8320) * Move release note in wrong location and add script to block this In Qiskit#8201 I added a release note as part of the PR which documented the change in behavior. However, I accidentally committed this file in the wrong location (by running reno new outside of the repo root). This meant the file was never actually included in the release notes for the 0.21.0 release. This commit corrects this oversight and moves it back to the proper location. However, since this isn't my first time making this mistake and I can expect that others will make it too in the future. This commit also adds a new script to detect this and raise an error when release notes are present outside of the proper location. By running this as part of lint jobs we'll block this mistake from happening again. * Fix lint Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
- Loading branch information
1 parent
925d8cb
commit bb4d52a
Showing
5 changed files
with
62 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
#!/usr/bin/env python3 | ||
# This code is part of Qiskit. | ||
# | ||
# (C) Copyright IBM 2022 | ||
# | ||
# This code is licensed under the Apache License, Version 2.0. You may | ||
# obtain a copy of this license in the LICENSE.txt file in the root directory | ||
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. | ||
# | ||
# Any modifications or derivative works of this code must retain this | ||
# copyright notice, and modified files need to carry a notice indicating | ||
# that they have been altered from the originals. | ||
|
||
"""Utility script to verify qiskit copyright file headers""" | ||
|
||
import argparse | ||
import multiprocessing | ||
import subprocess | ||
import sys | ||
import re | ||
|
||
# release notes regex | ||
reno = re.compile(r"releasenotes\/notes") | ||
# exact release note regex | ||
exact_reno = re.compile(r"^releasenotes\/notes") | ||
|
||
|
||
def discover_files(): | ||
"""Find all .py, .pyx, .pxd files in a list of trees""" | ||
cmd = ["git", "ls-tree", "-r", "--name-only", "HEAD"] | ||
res = subprocess.run(cmd, capture_output=True, check=True, encoding="UTF8") | ||
files = res.stdout.split("\n") | ||
return files | ||
|
||
|
||
def validate_path(file_path): | ||
"""Validate a path in the git tree.""" | ||
if reno.search(file_path) and not exact_reno.search(file_path): | ||
return file_path | ||
return None | ||
|
||
|
||
def _main(): | ||
parser = argparse.ArgumentParser(description="Find any stray release notes.") | ||
_args = parser.parse_args() | ||
files = discover_files() | ||
with multiprocessing.Pool() as pool: | ||
res = pool.map(validate_path, files) | ||
failed_files = [x for x in res if x is not None] | ||
if len(failed_files) > 0: | ||
for failed_file in failed_files: | ||
sys.stderr.write("%s is not in the correct location.\n" % failed_file) | ||
sys.exit(1) | ||
sys.exit(0) | ||
|
||
|
||
if __name__ == "__main__": | ||
_main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters