Skip to content

Relicense Bevy under dual MIT/Apache-2.0 #2373

Description

@cart

What?

We would like to relicense Bevy under the "dual MIT / Apache-2.0 license". This allows users to select either license according to their own preferences. There are Very Good Reasons for this (see the "Why?" section below). However I can't just arbitrarily relicense open source code, despite being the maintainer / lead developer. Bevy has hundreds of contributors and they all agreed to license their contributions exclusively under our current instance of the MIT license.

If you are mentioned in this issue, we need your help to make this happen

To agree to this relicense, please read the details in this issue, then leave a comment with the following message:

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

If you disagree, please respond with your reasoning (just don't expect us to change course at this point). Anyone who doesn't agree to the relicense will have any Bevy contributions that qualify as "copyrightable" removed or re-implemented.

Why?

I originally chose to license Bevy exclusively under MIT for a variety of reasons:

  1. People and companies generally know and trust the MIT license more than any other license. Apache 2.0 is less known and trusted.
  2. It is short and easy to understand
  3. Many people aren't familiar with the "multiple license options ... choose your favorite" approach. I didn't want to scare people away unnecessarily.
  4. Other open source engines like Godot have had a lot of success with MIT-only licensing

However there were a variety of issues that have come up that make dual-licensing Bevy under both MIT and Apache-2.0 compelling:

  1. The MIT license (arguably) requires binaries to reproduce countless copies of the same license boilerplate for every MIT library in use. MIT-only engines like Godot have complicated license compliance rules as a result
  2. The Apache-2.0 license has protections from patent trolls and an explicit contribution licensing clause.
  3. The Rust ecosystem is largely Apache-2.0. Being available under that license is good for interoperation and opens the doors to upstreaming Bevy code into other projects (Rust, the async ecosystem, etc).
  4. The Apache license is incompatible with GPLv2, but MIT is compatible.

Additionally, Bevy's current MIT license includes the Copyright (c) 2020 Carter Anderson line. I don't want to force Bevy users to credit me (and no one else) for the rest of time. If you agree to the relicense, you also agree to allow us to remove this copyright line crediting me.

What will this look like?

After getting explicit approval from each contributor of copyrightable work
(as not all contributions qualify for copyright, due to not being a "creative
work", e.g. a typo fix), we will add the following file to our README:

### License

Licensed under either of

 * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
 * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

at your option.

### Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.

We will add LICENSE-{MIT,APACHE} files containing the text of each license. We will also update the license metadata in our Cargo.toml to:

license = "MIT OR Apache-2.0"

Contributor checkoff

  • @0x22fe
  • @8bit-pudding
  • @aclysma
  • @adam-bates
  • @adamaq01
  • @aevyrie
  • @ak-1
  • @akiross
  • @Alainx277
  • @alec-deason
  • @alexb910
  • @alexschrod
  • @alice-i-cecile
  • @alilee
  • @AlisCode
  • @aloucks
  • @amberkowalski
  • @AmionSky
  • @anchpop
  • @andoco
  • @andreheringer
  • @andrewhickman
  • @AngelicosPhosphoros
  • @AngelOnFira
  • @Archina
  • @ashneverdawn
  • @BafDyce
  • @bgourlie
  • @BimDav
  • @bitshifter
  • @bjorn3
  • @blaind
  • @blamelessgames
  • @blunted2night
  • @Bobox214
  • @Boiethios
  • @bonsairobo
  • @BoxyUwU
  • @Byteron
  • @CAD97
  • @CaelumLaron
  • @caelunshun
  • @cart
  • @CGMossa
  • @CleanCut
  • @ColdIce1605
  • @Cupnfish
  • @dallenng
  • @Dash-L
  • @Davier
  • @dburrows0
  • @dependabot[bot]
  • @deprilula28
  • @DGriffin91
  • @dintho
  • @Dispersia
  • @DivineGod
  • @Divoolej
  • @DJMcNab
  • @e00E
  • @easynam
  • @ElArtista
  • @eliaspekkala
  • @enfipy
  • @figsoda
  • @fintelia
  • @Fishrock123
  • @FlyingRatBull
  • @forbjok
  • @frewsxcv
  • @freylint
  • @Frizi
  • @FSMaxB
  • @FuriouZz
  • @GabLotus
  • @gcoakes
  • @gfreezy
  • @Git0Shuai
  • @giusdp
  • @GrantMoyer
  • @Gregoor
  • @Grindv1k
  • @guimcaballero
  • @Halfwhit
  • @Havvy
  • @HackerFoo
  • @Hugheth
  • @huhlig
  • @hymm
  • @ifletsomeclaire
  • @iMplode-nZ
  • @Incipium
  • @iwikal
  • @Ixentus
  • @J-F-Liu
  • @jacobgardner
  • @jak6jak
  • @jakerr
  • @jakobhellermann
  • @jamadazi
  • @Jbat1Jumper
  • @JCapucho
  • @jcornaz
  • @Jerald
  • @jesseviikari
  • @jihiggins
  • @jleflang
  • @jngbsn
  • @joejoepie
  • @JohnDoneth
  • @Josh015
  • @joshuajbouw
  • @julhe
  • @kaflu
  • @karroffel
  • @kedodrill
  • @kokounet
  • @Kurble
  • @lachlansneff
  • @lambdagolem
  • @lassade
  • @lberrymage
  • @lee-orr
  • @logannc
  • @Lowentwickler
  • @lukors
  • @Lythenas
  • @M2WZ
  • @marcusbuffett
  • @MarekLg
  • @marius851000
  • @MatteoGgl
  • @maxwellodri
  • @mccludav
  • @memoryruins
  • @mfrancis107
  • @MGlolenstine
  • @MichaelHills
  • @MilanVasko
  • @MinerSebas
  • @mjhostet
  • @mkhan45
  • @mnmaita
  • @mockersf
  • @Moxinilian
  • @MrEmanuel
  • @mrk-its
  • @msklywenn
  • @mtsr
  • @multun
  • @mvlabat
  • @naithar
  • @NathanSWard
  • @navaati
  • @ncallaway
  • @ndarilek
  • @Nazariglez
  • @Neo-Zhixing
  • @nic96
  • @NiklasEi
  • @Nilirad
  • @no1hitjam
  • @notsimon
  • @nside
  • @ocornoc
  • @Olaren15
  • @OptimisticPeach
  • @payload
  • @Philipp-M
  • @Plecra
  • @PrototypeNM1
  • @r00ster91
  • @Ratysz
  • @RedlineTriad
  • @refnil
  • @reidbhuntley
  • @Restioson
  • @RichoDemus
  • @rmsc
  • @rmsthebest
  • @RobDavenport
  • @robertwayne
  • @rod-salazar
  • @rparrett
  • @ryanleecode
  • @sapir
  • @saveriomiroddi
  • @sburris0
  • @schell
  • @sdfgeoff
  • @ShadowMitia
  • @simensgreen
  • @simlay
  • @simpuid
  • @SmiteWindows
  • @smokku
  • @StarArawn
  • @stefee
  • @superdump
  • @SvenTS
  • @sY9sE33
  • @szunami
  • @tangmi
  • @tarkah
  • @TehPers
  • @Telzhaak
  • @termhn
  • @tiagolam
  • @the-notable
  • @thebluefish
  • @TheNeikos
  • @TheRawMeatball
  • @therealstork
  • @thirdsgames
  • @Tiagojdferreira
  • @tigregalis
  • @Toniman20
  • @toothbrush7777777
  • @TotalKrill
  • @tristanpemble
  • @trolleyman
  • @turboMaCk
  • @TypicalFork
  • @undinococo
  • @verzuz
  • @Veykril
  • @vgel
  • @VitalyAnkh
  • @w1th0utnam3
  • @W4RH4WK
  • @Waridley
  • @Weibye
  • @Weibye-Breach
  • @wilk10
  • @will-hart
  • @willcrichton
  • @WilliamTCarroll
  • @woubuc
  • @wyhaya
  • @Xavientois
  • @YohDeadfall
  • @yrns
  • @zaszi
  • @zgotsch
  • @zicklag
  • @Zooce

Contributors with "obsolete" changes (no need for approval)

  • adekau
  • ColonisationCaptain
  • temhotaokeaha

Contributors with "trivial" changes that are ok to keep

  • follower
  • HyperLightKitsune
  • liufuyang
  • Raymond26
  • themilkybit
  • walterpie
  • EthanYidong

Contributors with changes we reverted to unblock the relicense

  • TomBebb

Activity

  1. added
    C-FeatureA new feature, making something new possible
    S-Needs-TriageThis issue needs to be labelled
    on Jun 22, 2021
  2. zicklag commented on Jun 22, 2021

    @zicklag
    Member

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  3. YohDeadfall commented on Jun 22, 2021

    @YohDeadfall
    Member

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  4. cart commented on Jun 22, 2021

    @cart
    MemberAuthor

    I will now mention people in chunks of 50, as that is the max number of mentions per message.

  5. ColdIce1605 commented on Jun 22, 2021

    @ColdIce1605
    Contributor

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  6. bonsairobo commented on Jun 22, 2021

    @bonsairobo
    Contributor

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  7. adam-bates commented on Jun 22, 2021

    @adam-bates
    Contributor

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  8. frewsxcv commented on Jun 22, 2021

    @frewsxcv
    Contributor

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  9. OptimisticPeach commented on Jun 22, 2021

    @OptimisticPeach
    Contributor

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  10. 278 remaining items

  11. james7132 commented on Sep 20, 2021

    @james7132
    Member

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  12. dcz-self commented on Dec 9, 2021

    @dcz-self

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  13. Looooong commented on Jan 7, 2022

    @Looooong
    Contributor

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  14. horvbalint commented on Jan 16, 2022

    @horvbalint
    Contributor

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  15. cab commented on Mar 19, 2022

    @cab

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  16. geckoxx commented on Apr 12, 2022

    @geckoxx
    Contributor

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  17. zmerp commented on Apr 22, 2022

    @zmerp

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  18. TheArchitect4855 commented on Apr 22, 2022

    @TheArchitect4855

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  19. nihohit commented on Apr 25, 2022

    @nihohit
    Contributor

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  20. The5-1 commented on Apr 25, 2022

    @The5-1

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

  21. KirmesBude commented on Jul 30, 2022

    @KirmesBude
    Contributor

    I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-MetaAbout the project itselfC-FeatureA new feature, making something new possible

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions