Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[4.2][WIP] Move pro items outside core (aka open-core split) #4113

Closed
wants to merge 27 commits into from

Conversation

tabacitu
Copy link
Member

WHY

Fixes #4098

BEFORE - What was wrong? What was happening before this PR?

All of our features were public-source, but under a restricted proprietary license. This was bad in two ways:

  • bad for maintainers - devs could easily pirate Backpack, that's what 99.1% of them did (instead of paying for it);
  • bad for OSS developers - devs could NOT use Backpack as a base for their open-source projects; I mean they could, but then they'd have to tell their users to buy a Backpack license which... was very inconvenient; their project, in the end, was not truly open-source either, because it had a dependency with a restrictive license for commercial use (Backpack);

AFTER - What is happening after this PR?

We've slit the features into two projects:

  • Backpack\CRUD
    • we consider it the Backpack Core (might rename it later);
    • will be released under an open-source license (MIT or smth);
    • will include all basic features you need to build an admin panel;
  • Backpack\PRO

HOW

How did you achieve that, in technical terms?

Created a new repo and moved what was needed there.

Is it a breaking change or non-breaking change?

VERY breaking.

How can we test the before & after?

If you install 4.2, you should NOT get all the features. Only after you add this to your composer.json:

    "repositories": [
        {
            "type": "composer",
            "url": "https://repo.backpackforlaravel.com/"
        }
    ],

and run composer require backpack/pro should you be able to do all you could previously do in Backpack.

@tabacitu tabacitu self-assigned this Jan 24, 2022
@tabacitu tabacitu changed the base branch from master to 4.2 January 24, 2022 07:57
@tabacitu
Copy link
Member Author

tabacitu commented Jan 24, 2022

TODO on Github:

  • what do we use as a default field & column now, for relationships, since we moved relationship to PRO? later: defaulted to select and select_multiple
  • should we move the JS and CSS to this backpack/pro repo too? or just keep it here for now, until v5? later: let's keep them in backpack/crud for now;
  • change backpack/crud's license to an open-source one (instead of Yummy aka dual-license); later: chose MIT;
  • change backpack/crud readme to highlight the open-core split;
  • MUST: move license check from backpack/crud to backpack/pro... or...
    • remove the license code entirely, in favor of the API token; the new .env variable could be BACKPACK_TOKEN_USERNAME, which is already unique and has a randomly-generated part;
    • when people purchase a backpack/pro license, they are instructed to add the BACKPACK_TOKEN_USERNAME to their .env file; this will be taken into account by the stats ping, and sent with it; then we'll be able to corroborate the website with the purchase, just like we do with the license code;
  • MUST: disable PRO features in FREE add-ons (eg. Clone, BulkClone, BulkDelete); alternatively, make them depend on Backpack/PRO too;
  • MUST: make changes in backpack/pro to files that were removed by this PR (diff or re-do this PR);
  • MUST: merge this into the 4.2 branch (by Jan 31st);
  • SHOULD: gracefully error if the dev is trying to use a pro feature but doesn't have it installed
    • operation
    • field
    • column
    • button
    • widget
  • SHOULD: move artisan commands for Chart and Chart-Controller from backpack/generators to backpack/pro
  • COULD: add backpack.base.send_usage_stats config value (defaults to true); nah, we can do that later maybe;

TODO on our website:

  • MUST: change installation docs to include "pro" package installation instructions;
  • MUST: add comparison table to docs (free vs pro features);
  • MUST: add "PRO" notice next to each pro feature in the docs (with link to comparison table);
  • MUST: ability to purchase backpack/pro on our website (add product for it);
  • MUST: give access to backpack/pro to everybody who's purchased Backpack in the past year;
  • MUST: change pricing page;
  • SHOULD: add "PRO" notice next to each pro feature in the demo;

Sorry, something went wrong.

@tabacitu tabacitu changed the title [4.2] Move pro items outside core (aka open-core split) [4.2][WIP] Move pro items outside core (aka open-core split) Jan 24, 2022
@scrutinizer-notifier
Copy link

The inspection completed: 554 Issues, 75 Patches

tabacitu and others added 9 commits January 24, 2022 13:45

Verified

This commit was signed with the committer’s verified signature. The key has expired.
StyleCIBot StyleCI Bot
[ci skip] [skip ci]

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
tabacitu and others added 5 commits January 27, 2022 10:19
…ove-pro-items-outside-core

# Conflicts:
#	src/resources/views/crud/fields/inc/repeatable_row.blade.php
#	src/resources/views/crud/fields/relationship/entries.blade.php
it no longer makes sense after the open-core split

Verified

This commit was signed with the committer’s verified signature. The key has expired.
StyleCIBot StyleCI Bot
[ci skip] [skip ci]

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
tabacitu and others added 6 commits January 28, 2022 09:44

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
# Conflicts:
#	src/resources/views/crud/columns/table.blade.php
#	src/resources/views/crud/fields/inc/repeatable_row.blade.php
#	src/resources/views/crud/fields/relationship.blade.php
#	src/resources/views/crud/fields/relationship/entries.blade.php
#	src/resources/views/crud/fields/relationship/select.blade.php
#	src/resources/views/crud/fields/repeatable.blade.php
#	src/resources/views/crud/fields/select2_grouped.blade.php
#	src/resources/views/crud/fields/select2_multiple.blade.php
#	src/resources/views/crud/fields/select_grouped.blade.php
#	src/resources/views/crud/filters/date_range.blade.php
#	src/resources/views/crud/filters/range.blade.php
#	src/resources/views/crud/filters/select2.blade.php
#	src/resources/views/crud/filters/select2_ajax.blade.php
#	src/resources/views/crud/filters/select2_multiple.blade.php
#	src/resources/views/crud/filters/text.blade.php
@tabacitu tabacitu mentioned this pull request Feb 4, 2022
Merged
@tabacitu
Copy link
Member Author

tabacitu commented Feb 4, 2022

It is DONE. I've merged both this and 4.2 into a branch I've called v5. And made a separate PR from it #4152

I'm going to close both this and the 4.2 branch, so that from now on we work with the v5 branch.

@tabacitu tabacitu closed this Feb 4, 2022
@tabacitu tabacitu deleted the move-pro-items-outside-core branch February 4, 2022 10:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[4.2][Feature] Go open-core (move pro features to a separate package)
3 participants