radiantearth / stac-spec

SpatioTemporal Asset Catalog specification - making geospatial assets openly searchable and crawlable
https://stacspec.org
Apache License 2.0
777 stars 178 forks source link

Assign code owners to extensions #928

Closed m-mohr closed 3 years ago

m-mohr commented 3 years ago

From @jisantuc on gitter:

it could be useful to assign code owners to extensions, especially since with the organization in the run-up to 1.0 it's hard to tell who's worked on something in the past [...]

@cholmes responded:

[...] indeed having someone who is willing to be a code owner should probably be on one of the maturity levels.

m-mohr commented 3 years ago

I'm happy to take over:

jisantuc commented 3 years ago

I can take the label extension since we use it a few places, but there are also several plausible code owners there (the contributor list for that README is long).

jisantuc commented 3 years ago

Here's a nice table we can fill in (everyone -- feel free to edit this comment):

Extension Proposed Owner(s)
collection-assets @m-mohr
datacube @m-mohr
eo @matthewhanson
file @m-mohr
item-assets @matthewhanson
label @jisantuc
pointcloud @matthewhanson
processing @emmanuelmathot
projection @matthewhanson
sar @emmanuelmathot @m-mohr
sat @emmanuelmathot
scientific @m-mohr
single-file-stac @matthewhanson
tiled-assets @constantinius
timestamps @m-mohr
version @m-mohr
view @matthewhanson
emmanuelmathot commented 3 years ago

I'd take processing, sat and possibly sar. I cannot edit the comment

m-mohr commented 3 years ago

@emmanuelmathot Great, I added it for you.

matthewhanson commented 3 years ago

I wrote up the view, eo, item-assets, single-file-stac extensions so happy to take those. Also worked on proj extension and have it implemented for the Sentinel-2 COG dataset so can take that.

I can take the pointcloud one as well.

jisantuc commented 3 years ago

That made a significant dent, thanks!

m-mohr commented 3 years ago

Tiled Assets was written by @constantinius and others from EOX, so maybe one of them can take over the code ownership of the extension?

m-mohr commented 3 years ago

And of couse we can also assign multiple people to an extension, so feel free to sound in. For example, @philvarner designed projection and there were also some other people involved in Label, Pointcloud and SAR.

constantinius commented 3 years ago

@m-mohr Yes, I'd be happy to take over the ownership of the tiled-assets extension.

m-mohr commented 3 years ago

@constantinius Great to hear, thanks.

By the way, are you aware of issue #839?

@jisantuc Have you planned to PR the code owners into the respective extension README files?

constantinius commented 3 years ago

@m-mohr no, not really. Thanks for noticing me (notification seems to have been lost, sorry)

jisantuc commented 3 years ago

@m-mohr my understanding is that with the correct magic file we'll get nice in-context ownership information --

So I don't think we'll need to document ownership in the extensions themselves. An explanation in the README about the use of code owners probably makes sense though

m-mohr commented 3 years ago

@jisantuc Wow, that is some fancy rocket science there 😅 Didn't know that this is a thing... Is it shown in the rendered READMEs though? It looks like a "code" thing and if it's not shown there, I would think it could be helpful there to mention the owner.

jisantuc commented 3 years ago

I tried science-ing that by browsing the branch, but I think maybe nothing works until the CODEOWNERS file is on the base branch 🙄, so I'll add them precautionarily.

Relatedly, I found a nice validator that gives output like:

==> Executing Duplicated Pattern Checker (11.5µs)
    Check OK
==> Executing Valid Syntax Checker (17µs)
    Check OK
==> Executing File Exist Checker (80.9µs)
    Check OK
==> Executing [Experimental] Not Owned File Checker (29.7612ms)
    [err] Found 48 not owned files (skipped patterns: ""): 
            * .circleci/config.yml
            * .circleci/publish-schemas.js
            * .circleci/rc.yaml
            * .github/CODEOWNERS
            * .github/pull_request_template.md
            * .gitignore
            * .remarkignore
            * CHANGELOG.md
            * CODE_OF_CONDUCT.md
            * CONTRIBUTING.md
            * LICENSE
            * README.md
            * STAC-UML.drawio
            * STAC-UML.pdf
            * best-practices.md
            * catalog-spec/README.md
            * catalog-spec/catalog-spec.md
            * catalog-spec/examples/catalog-items.json
            * catalog-spec/examples/catalog.json
            * catalog-spec/json-schema/catalog.json
            * collection-spec/README.md
            * collection-spec/collection-spec.md
            * collection-spec/examples/landsat-collection.json
            * collection-spec/examples/sentinel2.json
            * collection-spec/json-schema/collection.json
            * extensions/README.md
            * item-spec/README.md
            * item-spec/common-metadata.md
            * item-spec/examples/CBERS_4_MUX_20181029_177_106_L4.json
            * item-spec/examples/README.md
            * item-spec/examples/datetimerange.json
            * item-spec/examples/digitalglobe-sample.json
            * item-spec/examples/landsat8-sample.json
            * item-spec/examples/planet-sample.json
            * item-spec/examples/sample-full.json
            * item-spec/examples/sample.json
            * item-spec/examples/sentinel2-sample.json
            * item-spec/item-spec.md
            * item-spec/json-schema/basics.json
            * item-spec/json-schema/datetime.json
            * item-spec/json-schema/instrument.json
            * item-spec/json-schema/item.json
            * item-spec/json-schema/licensing.json
            * item-spec/json-schema/provider.json
            * overview.md
            * package.json
            * principles.md
            * process.md
==> Executing Valid Owner Checker (910.1466ms)
    [err] line 16: User "@m-mohr" is not a member of the organization
    [err] line 18: User "@matthewhanson" is not a member of the organization
    [err] line 23: User "@emmanuelmathot" is not a member of the organization
    [err] line 29: User "@constantinius" is not a member of the organization

5 check(s) executed, 2 failure(s)

It also has a GitHub action so if we collectively decide that we like code owners we can make sure that all code is owned

m-mohr commented 3 years ago

@jisantuc Re validation: We have outside collaborators that are not part of the organization. Can we disable it? And I'm not sure whether everything must be owned or just extensions. For everything else the code owner would likely be @cholmes ?