diff --git a/.asf.yaml b/.asf.yaml index cda93fe..5281db6 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -26,7 +26,7 @@ notifications: jira_options: link label worklog github: description: "Rust object_store crate" - homepage: https://github.com/apache/arrow-rs-object-store + homepage: https://crates.io/crates/object_store labels: - object-store enabled_merge_buttons: diff --git a/.github/workflows/object_store.yml b/.github/workflows/object_store.yml index 93d289f..30049be 100644 --- a/.github/workflows/object_store.yml +++ b/.github/workflows/object_store.yml @@ -67,10 +67,6 @@ jobs: run: cargo clippy --all-features --all-targets -- -D warnings # test doc links still work - # - # Note that since object_store is not part of the main workspace, - # this needs a separate docs job as it is not covered by - # `cargo doc --workspace` docs: name: Rustdocs runs-on: ubuntu-latest diff --git a/dev/release/check-rat-report.py b/dev/release/check-rat-report.py new file mode 100644 index 0000000..e30d72b --- /dev/null +++ b/dev/release/check-rat-report.py @@ -0,0 +1,59 @@ +#!/usr/bin/python +############################################################################## +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +############################################################################## +import fnmatch +import re +import sys +import xml.etree.ElementTree as ET + +if len(sys.argv) != 3: + sys.stderr.write("Usage: %s exclude_globs.lst rat_report.xml\n" % + sys.argv[0]) + sys.exit(1) + +exclude_globs_filename = sys.argv[1] +xml_filename = sys.argv[2] + +globs = [line.strip() for line in open(exclude_globs_filename, "r")] + +tree = ET.parse(xml_filename) +root = tree.getroot() +resources = root.findall('resource') + +all_ok = True +for r in resources: + approvals = r.findall('license-approval') + if not approvals or approvals[0].attrib['name'] == 'true': + continue + clean_name = re.sub('^[^/]+/', '', r.attrib['name']) + excluded = False + for g in globs: + if fnmatch.fnmatch(clean_name, g): + excluded = True + break + if not excluded: + sys.stdout.write("NOT APPROVED: %s (%s): %s\n" % ( + clean_name, r.attrib['name'], approvals[0].attrib['name'])) + all_ok = False + +if not all_ok: + sys.exit(1) + +print('OK') +sys.exit(0) diff --git a/dev/release/rat_exclude_files.txt b/dev/release/rat_exclude_files.txt new file mode 100644 index 0000000..d08a0ea --- /dev/null +++ b/dev/release/rat_exclude_files.txt @@ -0,0 +1,22 @@ +venv/* +testing/* +target/* +dev/release/rat_exclude_files.txt +arrow/test/data/* +arrow-csv/test/data/* +arrow-json/test/data/* +arrow/test/dependency/* +arrow-integration-test/data/* +parquet_derive/test/dependency/* +.gitattributes +**.gitignore +.gitmodules +Cargo.lock +filtered_rat.txt +rat.txt +# auto-generated +arrow-flight/src/arrow.flight.protocol.rs +arrow-flight/src/sql/arrow.flight.protocol.sql.rs +.github/* +parquet/src/bin/parquet-fromcsv-help.txt +arrow-flight/examples/data/*