Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -200,3 +200,32 @@
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.

================================================================================
Contributions from other Apache Software Foundation projects
================================================================================

This product incorporates project-agnostic code contributed from
other Apache Software Foundation projects:

- Apache Airflow (https://airflow.apache.org/) — the framework that
became this project was first developed and proven within Apache
Airflow, already structured under Apache License 2.0 for reuse
inside and outside the ASF.
- Apache Groovy (https://groovy.apache.org/) — contributions from
the Groovy PMC at the early stage of this project.

Apache Airflow
Copyright 2016-2026 The Apache Software Foundation

Apache Groovy
Copyright 2003-2026 The Apache Software Foundation

Comment on lines +208 to +223

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the "Contributions from other ASF projects" block should've just been moved as-is.

Groovy: this traces back to #146. Paul (@paulk-asert) built these skills on the Groovy side first, then contributed the same work to Magpie himself, under his own CLA. Same author both times — this isn't "the Groovy project" as some separate copyright holder handing us code, it's one person contributing his own work to two ASF projects he's part of. I don't think there's anything here that actually needs crediting.

Airflow: honestly not sure what Airflow files/code we actually pulled in here — could someone clarify what this is referring to? But regardless of what it turns out to be, one thing seems off procedurally: if it's real enough to need a mention in LICENSE, then per AL 2.0 §4(d) it should also show up in NOTICE (that's how notice-bubbling from an included work's own NOTICE file is supposed to work — LICENSE and NOTICE aren't interchangeable for this). Right now it's only in LICENSE and NOTICE was trimmed to nothing, which is inconsistent — either it needs to be in both, or (if it turns out to be more like project-naming history — this repo used to be apache/airflow-steward before #593 renamed it) it doesn't need to be in either.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So it is a bit verbose and strictly not needed (the history part), but I did intend to put those copyright statements in NOTICE, not LICENSE, so that’s on me. However, they are not strictly required there either, as they are an ASF project - there is a legal dicuss discussion on this. It's just good to include them for completeness.

For the contributions from Paul and from Airflow - it is unknown if other people worked on those contributions so I would err on the side of caution and include them.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text from "Contributions from other ASF projects" should not be in NOTICE, btw, as license information doesn't belong in NOTICE.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before we settle this — mind if we just check with Jarek and Paul what's actually going on here? Otherwise LICENSE just keeps piling up stuff nobody can double-check down the line.

If we genuinely pulled in some Airflow code, that's totally fine to mention in LICENSE, but we'd also need to copy the relevant bit of Airflow's own NOTICE into our NOTICE file— right now only LICENSE got touched, so it'd be incomplete.

If this is really just us saying thanks — like, the repo used to be airflow-steward before it got renamed, and Paul's Groovy skills were his own contribution under CLA rather than code copied out of apache/groovy — then none of this belongs in LICENSE or NOTICE anyway, it should just live in the README as a normal shoutout.

@potiuk @paulk-asert , Could you two clarify which case this actually is? Can send a follow-up PR once we know.

@justinmclean justinmclean Jul 9, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically, we did pull in some code from airflow, as the airflow-steward repo was under the control of the Airflow PMC.

@potiuk potiuk Jul 9, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes - the code was transferred from "stewardship" of Airflow and Groovy - but I think the "ownership" of the code was not changed - Apache Software Foundation still owns the copyright. As far as I understand (and well, that's somewhat of a legalese that probably people will have different opinion on) - NOTICE comment is really not needed when ownership does not change.

I consider the Airflow and Groovy mentionig more of attribution than notice.

And yeah - putting it LICENCE is not good either in retrospect.

I did some chatting with Claude :) ... and this is the proposal we both came up with:

The whole framing of "contributions from other ASF projects" is the confusion. There is no separate copyright holder here. Airflow, Groovy, airflow‑steward, and Magpie are all Copyright The Apache Software Foundation, all AL 2.0. Code moving from one ASF project to another is the same rightsholder — it's not a third‑party inclusion.

That resolves every branch of Calvin's question:

  • AL 2.0 §4(d) NOTICE‑bubbling doesn't apply — that mechanism exists to carry required attributions from an included third‑party work's own NOTICE. Neither Airflow's nor Groovy's NOTICE has anything to bubble beyond the standard ASF line already present. So Justin's "must also go in NOTICE" concern is moot: nothing needs to.
  • It definitely doesn't belong in LICENSE — it's neither a license grant nor a third‑party license text. Justin conceded moving it there was his mistake.
  • Groovy: Paul's own CLA contribution → nothing to attribute as third‑party. Remove.
  • Airflow: genuine lineage (this was an Airflow‑PMC repo), but still same rightsholder → not legally required in either file. It's project history.
  • The fabricated‑looking Apache Groovy / Copyright 2003‑2026 span Update LICENSE and NOTICE file #778 added to LICENSE is particularly wrong — we ship no file from apache/groovy that it corresponds to.

Recommendation: drop the entire "Contributions from other ASF projects" block from LICENSE and don't restore it to NOTICE. If you want to preserve the lineage, it's a README / MISSION.md shout‑out. Keep the separate "Third‑party content" block (Julius Brussee / awesome‑claude‑skills) — that is the one genuine non‑ASF contributor and correctly belongs in LICENSE.

I would do that:

  • Remove the LICENCE addition
  • Do not add it back to NOTICE
  • Move the attribution to README

@CalvinKirs @justinmclean @paulk-asert - WDYT ? I am also happy to cancel rc1 and let others know the result of that interesting discussion in devlist VOTE thread :D

Good learning for everyone.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same logic as the Groovy case, actually — if all of the Airflow-derived code was originally written by Jarek himself, then this is just him contributing his own work to another ASF project he's part of, same as Paul did with Groovy. No separate copyright holder, so nothing needs to go in LICENSE or NOTICE at all.

But if the code includes stuff written by other Airflow contributors too, that's different — then it really is someone else's copyrighted work getting pulled in; we'd need to bubble the relevant bits of Airflow's NOTICE into ours.

https://infra.apache.org/licensing-howto.html#bundle-asf-product

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically, we did pull in some code from airflow, as the airflow-steward repo was under the control of the Airflow PMC.↳

Honestly... I'm not sure which way to go here — should we be going off governance (who officially controls the repo) or actual code provenance (what files really got copied)?

And if it's governance, whose NOTICE do we even go by? Airflow's got a ton of repos, not just one. And to make it messier — what if that NOTICE file has a bunch of other stuff bundled into it too?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah - there were other people from Airflow (and even external contributors) that contributed to airflow-steward.

Is there any issue with adding the Airflow and Groovy to NOTICE - where it was before? I would be rather over-cautious and put extra information - even if it makes the NOTICE file longer and potentially someone bubbling it up having to carry the complexity.

I do not think we should optimize here for "the smallest and most concise" set of attributions, but "one that protects everyone's rights even if we have some extra - possibly unnecesary stuff in".

So ... for the sake of pragmatism vs. purism :), how about we come back to what it was and move the Airflow and Groovy back to NOTICE ?

It may be not necessary, but if it does not hurt and saves us some unnecesary discussions - I am all for it.

================================================================================
Third-party content
================================================================================

This product includes substantially-modified content adapted from the
"skill-creator" skill in the awesome-claude-skills repository by
Julius Brussee (https://github.com/JuliusBrussee/awesome-claude-skills),
licensed under the Apache License, Version 2.0.
27 changes: 0 additions & 27 deletions NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,3 @@ Copyright 2026 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (https://www.apache.org/).

================================================================================
Contributions from other Apache Software Foundation projects
================================================================================

This product incorporates project-agnostic code contributed from
other Apache Software Foundation projects:

- Apache Airflow (https://airflow.apache.org/) — the framework that
became this project was first developed and proven within Apache
Airflow, already structured under Apache License 2.0 for reuse
inside and outside the ASF.
- Apache Groovy (https://groovy.apache.org/) — contributions from
the Groovy PMC at the early stage of this project.

================================================================================
Third-party content
================================================================================

This product includes substantially-modified content adapted from the
"skill-creator" skill in the awesome-claude-skills repository by
Julius Brussee (https://github.com/JuliusBrussee/awesome-claude-skills),
licensed under the Apache License, Version 2.0. See
.claude/skills/write-skill/LICENSE.txt for the full upstream license
text and .claude/skills/write-skill/SKILL.md § "Provenance" for the
specific upstream commit and the scope of the framework's
modifications.
201 changes: 0 additions & 201 deletions skills/write-skill/LICENSE.txt

This file was deleted.

4 changes: 0 additions & 4 deletions skills/write-skill/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,6 @@ This skill is adapted from the **`skill-creator`** skill in the
repository, distributed under the Apache License 2.0. The
upstream commit at the time of adoption is
[`5380239`](https://github.com/JuliusBrussee/awesome-claude-skills/tree/5380239b724883543db9e9e2de56c4dd8796090d/skill-creator).
See [`LICENSE.txt`](LICENSE.txt) for the full upstream licence
text and the project root [`NOTICE`](../../NOTICE) for the
attribution under the *"Third-party content"* section, per
[ASF licensing-howto guidance](https://infra.apache.org/licensing-howto.html).

The framework's adaptations of the upstream content are
substantial. They are summarised in the bullets below, in
Expand Down