Pheature flags main repository

Overview

Pheature Flags

Quality Score Test Coverage Type coverage

Hi there! Welcome to our project ๐Ÿ‘‹ We are a group of online business professionals who want to learn, grow and enjoy making our jobs a better place. Weโ€™re excited that youโ€™re here to learn more about it and grow together ๐Ÿ˜‰ .

๐Ÿšง We are at early development stage, every contribution of every type will be welcome and properly attributed.

Pheature Flags is a release management system that allows to activate and deactivate specific features in controlled conditions:

Key Features

  • Rollback any part of the code when it is not working as expected.
  • Target specific audiences with dynamic versions of a product to get real insights
  • Enable/disable AB testing.
  • Start/pause pre-set marketing campaigns.
  • Develop rollout strategies.
  • Decrease the technical debt on applying complex business experiments.

Our main goal is to build trusted relationships between developers and stakeholders around the software release process.

Want to learn more?

Getting started

Check our getting started guide to get Pheature Flags up and running in minutes.

Build The Docs

Requirements

Usage

docsify serve docs

Open a browser at http://127.0.0.1:3000

Contributing

Feel free to check out the roadmap, open an issue to request new features or report a bug, sharing or writing about. Don't forget to read our contribution guidelines and our code of conduct. We are happy to listen to everybody, receive feedback, and learn from different approaches.

License

We really believe in the Open Source Software, we built our carers around it, and we feel that we need to return our knowledge to the community. For this reason we release all our packages under BSD-3-Clause licence.

Sponsors

  • JetBrains: Thanks for supporting us with the All Products Pack License for Open Source
JetBrains
Comments
  • [toggle-core] Update issue template for bugs using new issue form in a YAML file

    [toggle-core] Update issue template for bugs using new issue form in a YAML file

    In order to make easier the creation of bugs following a specific format, we should update the markdown file into a YAML file.

    See Github Docs.

    This epic contains:

    • https://github.com/pheature-flags/pheature-flags/issues/300
    • https://github.com/pheature-flags/toggle-core/issues/23
    • https://github.com/pheature-flags/api-docs/issues/8
    • https://github.com/pheature-flags/mezzio-toggle/issues/3
    • https://github.com/pheature-flags/laravel-toggle/issues/3
    • https://github.com/pheature-flags/php-sdk/issues/4
    • https://github.com/pheature-flags/symfony-toggle/issues/3
    • https://github.com/pheature-flags/toggle-crud-psr11-factories/issues/5
    • https://github.com/pheature-flags/toggle-crud-psr7-api/issues/5
    • https://github.com/pheature-flags/toggle-crud/issues/10
    • https://github.com/pheature-flags/inmemory-toggle/issues/3
    • https://github.com/pheature-flags/toggle-model/issues/8
    • https://github.com/pheature-flags/dbal-toggle/issues/3
    • https://github.com/pheature-flags/monorepo-changelog-filter/issues/3
    • https://github.com/pheature-flags/toggle-ui/issues/2
    epic Hacktoberfest 
    opened by xserrat 5
  • Update infection/infection requirement from ^0.23.0 to ^0.24.0

    Update infection/infection requirement from ^0.23.0 to ^0.24.0

    Updates the requirements on infection/infection to permit the latest version.

    Release notes

    Sourced from infection/infection's releases.

    Major performance improvent, more clevel badge logger, new Mutators

    0.24.0 (2021-07-27)

    Full Changelog

    Added:

    • [Mutator] Add Mutator SpreadAssignment #1529
    • [Mutator] Add Mutator SpreadRemoval #1529

    Changed:

    • [Performance] Improve Infection performance executed against slow test suites #1539
    • Allow using MSI Badge for multiple branches #1538
    • Add Mutator information to GitHub annotation logger #1540
    • [BC BREAK] Rename Spread mutator to SpreadOneItem #1529
    Changelog

    Sourced from infection/infection's changelog.

    0.24.0 (2021-07-25)

    Full Changelog

    Added:

    • [Mutator] Add Mutator SpreadAssignment #1529
    • [Mutator] Add Mutator SpreadRemoval #1529

    Changed:

    • [Performance] Improve Infection performance executed against slow test suites #1539
    • Allow using MSI Badge for multiple branches #1538
    • Add Mutator information to GitHub annotation logger #1540
    • [BC BREAK] Rename Spread mutator to SpreadOneItem #1529

    0.23.0 (2021-05-13)

    Full Changelog

    Added:

    • Add support for Pest test framework #1516

    Fixed:

    • Multiplication mutator should not mutate when return value is integer #1515

    Changed:

    • [BE BREAK] Remove CodeCoverageAnnotationIgnorer #1517
    • Upgrade xdebug-handler to v2 #1510

    0.22.0 (2021-04-24)

    Full Changelog

    Added:

    • Add INFECTION and TEST_TOKEN environment variables for each Mutant process #1504

    Fixed:

    0.21.0 (2021-01-27)

    ... (truncated)

    Commits
    • cfc3263 Add changelog for 0.24.0 release
    • fd58f99 Fix CS
    • 1eff6c2 Use preg_quote() instead of escapeshellcmd to prepare string to be a regu...
    • 50f972a Add --only-covering-test-cases option to enable/disable filtering by coveri...
    • 0fa6025 Use more performant way of building --filter option, not escaping non-uniqu...
    • 4e7e9e6 Add special char for Pest e2e test to make sure it works as expected
    • 119ca3f Add more tests, remove redundant .* from regular expression
    • 87efcb2 Split ArgumentsAndOptionsBuilder::build into 2 methods: for initial tests r...
    • e9b7549 Run only those test cases that cover mutated line
    • 0dde91a Made logs.badge.branch capable of accepting a regular expression (#1538)
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 5
  • [#266][symfony-toggle] fix api test in symfony toggle

    [#266][symfony-toggle] fix api test in symfony toggle

    Closes #266. @xserrat we have to check this because we are using a test class from another package, which is not autoloaded by default. I simply duplicate the test class and add it to the Symfony package test namespace.

    bug mvp 
    opened by kpicaza 4
  • [#178][Symfony-toggle] Create Toggle API Compiler pass

    [#178][Symfony-toggle] Create Toggle API Compiler pass

    It closes #178

    Changes applied:

    • Create ToggleApiPass compiler pass that loads controllers and services only when api_enabled config flag is true
    • Add routes.yaml and services related to the API into the src/Resources/config folder (See 1)
    • Add new controllers compatible with Symfony (See 2)

    So the user will need to:

    • Enable the bundle:
    <?php
    // config/bundles.php from a Symfony App
    return [
        // ...
        Pheature\Community\Symfony\PheatureFlagsBundle::class => ['all' => true],
        // ...
    ];
    
    • Create the config file:
    # config/packages/pheature_flags.yaml
    
    pheature_flags:
      # ...
      api_enabled: true
      # ...
    
    
    • Import our routes:
    # config/routes.yaml from a Symfony App
    pheature_flags:
      resource: '@PheatureFlagsBundle/Resources/config/toggle_api/routes.yaml'
      prefix: 'feature-flags'   # i.e: GET /feature-flags/features
    

    1. Add routes.yaml and services related to the API into the src/Resources/config folder

    The path directory for config it was something complicated because checking documentation there're different options:

    • https://symfony.com/doc/current/bundles/best_practices.html#directory-structure -> our current structure except the configuration that is under src/Resources/config.
    • https://symfony.com/doc/current/bundles.html#bundle-directory-structure -> everything under root path (Resources/config)

    I finally opted to set all configurations that can be imported by the final Symfony application under src/Resources/config because regarding importing routes, it's not possible to import them from the Extension or Bundle classes. The final user is the responsible for importing the routes under their own prefix:

    # config/routes.yaml from a Symfony App
    pheature_flags:
      resource: '@PheatureFlagsBundle/Resources/config/toggle_api/routes.yaml'
      prefix: 'feature-flags'
    

    Also, using this way of importing routes, the routes must be placed under src/ because the current directory of the @PheatureFlagsBundle is just src/ and it's not allowed the use of relative paths like:

    # config/routes.yaml from a Symfony App
    pheature_flags:
      resource: '@PheatureFlagsBundle/../config/toggle_api/routes.yaml' # <-- ".." is not allowed
      prefix: 'feature-flags'
    

    Another clue about that is checking out the following bundles:

    2. Add new controllers compatible with Symfony

    Checking our current controllers, they're PSR compatible, but due to the fact that Symfony controllers need a specific Request and Response objects, I've created each Symfony compatible controller under src/Controller that is only responsible for converting the Symfony Request into a PSR ServerRequestInterface, call our PSR compatible controller and then, transform the PSR ResponseInterface into a Symfony Response.

    image

    To do this conversion I installed two packages suggested by the Symfony documentation:

    • symfony/psr-http-message-bridge
    • nyholm/psr7
    enhancement mvp 
    opened by xserrat 4
  • Discuss about Strategies and Segments implemetations

    Discuss about Strategies and Segments implemetations

    Epic: https://github.com/pheature-flags/pheature-flags/issues/2 Toggle Model Package: https://github.com/pheature-flags/toggle-model

    Description:

    At this moment, we have provisional implementations for both object types.

    We need to discuss:

    • How we can left end users adding custom strategies without breaking our strictness policies.
    • What types of strategies should be shipped as core models.
    • What types of segments should be shipped as core models.

    [UPDATE] Let check Martin Fowlers article on subject https://martinfowler.com/articles/feature-toggles.html

    help wanted question mvp 
    opened by kpicaza 4
  • Fix twig extension documentation

    Fix twig extension documentation

    Describe the Pull Request Fixes previous errors and documents function and test usages

    • [x] I read contribution guidelines
    • [ ] Pull request introduces a BC-Break
    • [ ] Pull request is covered by tests
    • [x] Pull request is properly documented in docs
    documentation 
    opened by ajgarlag 3
  • [#319] Logo added

    [#319] Logo added

    Related to issue #319

    Describe the Pull Request Adds a logo

    • [ ] I read contribution guidelines
    • [ ] Pull request introduces a BC-Break
    • [ ] Pull request is covered by tests
    • [ ] Pull request is properly documented in docs
    documentation enhancement Hacktoberfest 
    opened by ananya224 3
  • Update infection/infection requirement from ^0.23.0 to ^0.25.1

    Update infection/infection requirement from ^0.23.0 to ^0.25.1

    Updates the requirements on infection/infection to permit the latest version.

    Release notes

    Sourced from infection/infection's releases.

    Count syntax errors caused by a mutatan as a failure of a mutant

    Added:

    • Count syntax errors caused by a mutatan as a failure of a mutant #1571
    Commits
    • 854bc7f Update name in mt-annotations.yaml (#1572)
    • 86e423c Count syntax errors caused by a mutatan as a failure of a mutant (#1571)
    • 5c18760 Use smaller epsilon and relative error for float comparison (#1570)
    • 77b684a Added changelog for 0.25.0
    • cb952c6 Make the --filter option shorter for PHPUnit (#1548)
    • bba07d8 [Performance] Cache phpunit results and run defects first to speed up the Mut...
    • c87fab9 Display time and consumed memory even in case of insufficient MSI (#1562)
    • 8cc8140 Update comment, use indented heredoc syntax (#1557)
    • b07e053 Merge pull request #1555 from infection/feature/syntax-error
    • 5784a36 Fix CS
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 3
  • Update symplify/monorepo-builder requirement from ^9.2 to ^11.1

    Update symplify/monorepo-builder requirement from ^9.2 to ^11.1

    Updates the requirements on symplify/monorepo-builder to permit the latest version.

    Commits
    • 065aa4d Monorepo Builder 11.1.1
    • e1fcab3 Updated Monorepo Builder to commit effe9645fba71ee256c1284ec1fc3aa529942a57
    • d6da9d9 Updated Monorepo Builder to commit fc931246a7c115a8952d0d98d7b00290eeb64b0e
    • d03ac19 Updated Monorepo Builder to commit e5ca249e2ecf02abb293e052f039ccf78a433770
    • 9b48cf8 Updated Monorepo Builder to commit adb9dcbc239869c9301e28536bbde305ee3666b2
    • 0f5eabd Updated Monorepo Builder to commit 24fa21a70366b18209801742b7364779e330fe72
    • 0f179fa Monorepo Builder 11.1.0
    • faf199c Updated Monorepo Builder to commit ba4ffc5efa2262221381e99d2bd5f1760e85ea1f
    • f30790c Updated Monorepo Builder to commit b97d5859eb40a155f3e0a2cdcb7ac40ec893bccd
    • 59f4b76 Updated Monorepo Builder to commit 9637f4a4db7ed51fc58c0ee212f5c078e3b46996
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Update symplify/monorepo-builder requirement from ^9.2 to ^11.0

    Update symplify/monorepo-builder requirement from ^9.2 to ^11.0

    Updates the requirements on symplify/monorepo-builder to permit the latest version.

    Commits
    • f205102 Monorepo Builder 11.0.3
    • 57d111d Updated Monorepo Builder to commit a475f081880c724fee91c0c472c2f49c94484184
    • e0c7e77 Updated Monorepo Builder to commit 6a31a05280c1a528009a9762a5ada587835aec1c
    • 67b0c89 Updated Monorepo Builder to commit 8117340c0c29d2f83dfe24e748888c6f7748951d
    • 0453771 Updated Monorepo Builder to commit 6b0325a3b18c4b07a631540f3004ceefcfb4a3f7
    • 79ad985 Updated Monorepo Builder to commit 4c9ff1aaacda1285da4bd5e606233784b0e23811
    • a491c09 Monorepo Builder 11.0.2
    • 47073b2 Updated Monorepo Builder to commit 4ac9399da67e02483aa593681de37b0aafac843c
    • 625e8c3 Updated Monorepo Builder to commit dc3a521b654898daa23d7e26e2eac441291f1dac
    • 7a13e53 Updated Monorepo Builder to commit 6918cd0339f993b1d5ffe764f85666be0d9f3e65
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Update symplify/monorepo-builder requirement from ^9.2 to ^10.3

    Update symplify/monorepo-builder requirement from ^9.2 to ^10.3

    Updates the requirements on symplify/monorepo-builder to permit the latest version.

    Commits
    • adee4ca Monorepo Builder 10.3.0
    • f65631f Updated Monorepo Builder to commit 18f8c02dbeed287991a808fbc0c0cbac6963295b
    • 972fefa Updated Monorepo Builder to commit c119b3df94fdab2b123521b1fe965238071dc54d
    • aff8c3b Updated Monorepo Builder to commit 15e53bb7107c744845c686d437f431ca95dba684
    • 0be52d6 Updated Monorepo Builder to commit ba591be51066d5b4710725520cfeee89838b6170
    • 9e1b534 Updated Monorepo Builder to commit 042552f4f9c1ed9aac57588bd1b0e35d03b40a3d
    • 99b01b5 Updated Monorepo Builder to commit bd7f735eff337cc76571f0c3c7c3ac96792d4608
    • b7511ab Updated Monorepo Builder to commit eaff1b45922e84dbc021fbb988a508d20cfddfd6
    • 623fa97 Updated Monorepo Builder to commit fb78b0468485de67c9dd42f79a132c8c166a130f
    • 6b37cfc Updated Monorepo Builder to commit 3cacb9a9498670b129d7251c47ae9196ceb330d5
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • [Bug]: Contribution guidelines points to monorepo

    [Bug]: Contribution guidelines points to monorepo

    What happened?

    Contribution guidelines point to the monorepo package. It can lead to misunderstandings with contributors.

    Steps To Reproduce

    Open CONTRIBUTING.md in any of our packages

    Integration

    Standalone (Default)

    Relevant log output

    No response

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    bug triage 
    opened by kpicaza 0
  • [Toggle Model] Create a EnableByDateTimeInterval Toggle Strategy

    [Toggle Model] Create a EnableByDateTimeInterval Toggle Strategy

    Epic: https://github.com/pheature-flags/pheature-flags/issues/2 Toggle Model Package: https://github.com/pheature-flags/toggle-model

    Description:

    Create a new toggle strategy type based on DateTime intervals. It should implement a ToggleStrategy interface, and it should take care of applying to an audience defined in segments if they are.

    enhancement 
    opened by kpicaza 7
  • ๐Ÿ”ด Pheature Flags Hacktoberfest 2022 ๐ŸŸข

    ๐Ÿ”ด Pheature Flags Hacktoberfest 2022 ๐ŸŸข

    Welcome to the Pheature Flags ๐Ÿ”ด๐ŸŸข repository! ๐Ÿ‘‹

    Thanks for choosing us for Open Source contributions. Here you can find the list of Hacktoberfest issues you can do:

    • #190
    • #197
    • https://github.com/pheature-flags/symfony-toggle/issues/32
    • https://github.com/pheature-flags/pheature-flags/issues/350
    • https://github.com/pheature-flags/pheature-flags/issues/116
    • https://github.com/pheature-flags/pheature-flags/issues/349
    • #263
    • https://github.com/pheature-flags/awesome-feature-flags/issues/1
    • https://github.com/pheature-flags/awesome-feature-flags/issues/2
    • https://github.com/pheature-flags/awesome-feature-flags/issues/3
    • https://github.com/pheature-flags/awesome-feature-flags/issues/4
    Hacktoberfest 
    opened by xserrat 0
  • [pheature-flags] Remove Scrutinizer Hooks and badges

    [pheature-flags] Remove Scrutinizer Hooks and badges

    We need to remove scrutinizer hooks and badges from all repositories.

    Why?

    • Since we are using Infection 0.25, the scrutinize test starts failing every time generating a lot of noise in form of emails, blocking PRs
    • Also, since we are using Psalm Types, scrutinize was started to notify every comment with a psalm type as a bug.
    documentation epic 
    opened by kpicaza 0
  • [prototype] Add Mezzio prototype as an example of Pheature flags in a Mezzio project

    [prototype] Add Mezzio prototype as an example of Pheature flags in a Mezzio project

    Here is the repository where an example of the usage is done: https://github.com/xserrat/pheature-flags-mezzio-example.

    To mark this issue as done we should:

    • [x] Finish the implementation in the third party repository
    • [ ] Add the repository as a submodule in the mono-repository.
    enhancement 
    opened by xserrat 0
Releases(0.3.0)
  • 0.3.0(Nov 21, 2021)

    What's Changed

    • [toggle-crud-psr11-factories] add psalm badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/260
    • [toggle-crud-psr11-factories] add mutation badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/259
    • [toggle-crud-psr11-factories] add code climate badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/258
    • [toggle-crud-psr11-factories] add packagist version badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/257
    • [toggle-crud-psr11-factories] add scrutinizer badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/256
    • [toggle-crud-psr7-api] add codeclimate badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/239
    • [toggle-crud-psr7-api] add scrutinizer badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/237
    • [toggle-crud-psr-7-api] add codecov badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/236
    • [toggle-crud-psr-7-api] add striker mutation badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/235
    • [toggle-crud-psr7-api] fix typo by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/262
    • [#264][toggle-crud] fix dependency issue in toggle crud by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/268
    • [#266][symfony-toggle] fix api test in symfony toggle by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/269
    • [#247][dbal-toggle] add scrutinizer badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/270
    • [#253][dbal-toggle] add packagist version and downloads badges by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/271
    • [#249][dbal-toggle] add code climate badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/272
    • [#250][dbal-toggle] add psalm badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/273
    • [#251][dbal-toggle] add striker badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/274
    • [#252][dbal-toggle] add codecov badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/275
    • [#261] [mezzio-toggle] Make as optional the installation of some pheature packages by @xserrat in https://github.com/pheature-flags/pheature-flags/pull/276
    • [#261][pheature-flags] fix dependency issues between some packages an psr-11 package by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/277
    • [#278][pheature-flags] test packages independently by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/279
    • Issue#261 fix tests by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/280
    • [#224][mezzio-toggle] Update Mezzio package documentation by @xserrat in https://github.com/pheature-flags/pheature-flags/pull/265
    • [#83] add inmemory toggle badges by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/281
    • [#267] Add PHP Security Checker GitHub Action by @pcs289 in https://github.com/pheature-flags/pheature-flags/pull/282
    • [#223] set development versions on composer to allow dealing bc-breaks by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/284
    • [#223] add segment types getter in toggle config by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/285
    • [#223] set missing development versions on composer dev to allow dealโ€ฆ by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/286
    • Issue#223 laravel configuration by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/283
    • [#287] add QA badges to laravel toggle package by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/288
    • add pull request template by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/289
    • [#223][laravel-toggle] fix dependency and compatibility issues by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/292
    • [#300][pheature-flags] Update issue template for bugs using new issue form in a YAML file by @xserrat in https://github.com/pheature-flags/pheature-flags/pull/302
    • [#300][pheature-flags] Replace "Version" to "Integration" by @xserrat in https://github.com/pheature-flags/pheature-flags/pull/303
    • [#307][monorepo-submodule] Submodules are cloned in http mode by @xserrat in https://github.com/pheature-flags/pheature-flags/pull/306
    • [#313] add security policy in docs by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/314
    • [#313] add security policy in github by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/315
    • [#310] document new chain option in symfony toggle by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/311
    • [#316] create internal api doc by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/317
    • [#316] add CII best practices badge by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/318
    • [#319] Logo added by @ananya224 in https://github.com/pheature-flags/pheature-flags/pull/325
    • Fix command to initiate the database schema for Mezzio by @xserrat in https://github.com/pheature-flags/pheature-flags/pull/329
    • [#319] Add package badges in docs by @kpicaza in https://github.com/pheature-flags/pheature-flags/pull/333

    New Contributors

    • @ananya224 made their first contribution in https://github.com/pheature-flags/pheature-flags/pull/325

    Full Changelog: https://github.com/pheature-flags/pheature-flags/compare/v0.1.1...0.3.0

    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Jun 20, 2021)

    Implemented enhancements:

    [pheature-flags]Try azjezz/psl library to avoid assertions #230 [pheature-flags] Add Makefile to run a single precommit check #227 [toggle-core] ChainTogleStrategyFactory must implement ToggleStrategyFactory interface #219 [toggle-core] Add id and type to strategy and segment read models #217 Run GrumPHP used in the pre-commit hook in a Docker container #211 [pheature-flags] install roave infection-static-analysis-plugin #206 [Symfony-toggle] Allow multiple driver implementations #179 [Symfony-toggle] Create Toggle API Compiler pass #178 [Symfony-toggle] Split configuration in different methods for better readability #176 [Symfony-toggle] Create FeatureRepository Compiler pass #174 [Symfony-toggle] Create SegmentFactory Compiler pass #170 [Symfony-toggle] Create ToggleStrategy Compiler pass #169 [Toggle PSR-11 Factories] Add static version to RemoveStrategyFactory #135 [Toggle PSR-11 Factories] Add static version to RemoveFeatureFactory #134 [Toggle PSR-11 Factories] Add static version to PostFeatureFactory #133 [Toggle PSR-11 Factories] Add static version to PatchFeatureFactory #132 [Toggle PSR-11 Factories] Add static version to GetFeaturesFactory #131 [Toggle PSR-11 Factories] Add static version to GetFeatureFactory #130 [Toggle PSR-11 Factories] Add static version to FeatureRepositoryFactory #129 [Toggle PSR-11 Factories] Add static version to FeatureFinderFactory #128 [Toggle PSR-11 Factories] Add static version to EnableFeatureFactory #127 [Toggle PSR-11 Factories] Add static version to DisableFeatureFactory #126 [Toggle PSR-11 Factories] Add static version to DeleteFeatureFactory #125 [Toggle PSR-11 Factories] Add static version to CreateFeatureFactory #124 [Toggle PSR-11 Factories] Add static version to AddStrategyFactory #123 [Toggle Model] Create a Segment type that finds a match in a collection of values #118 Fix Psalm checks in Toggle CRUD PSR-7 API package #88 Fix unit test in Toggle CRUD PSR-7 API package #87 Fix coding standard issues in Toggle CRUD PSR-7 API package #86 [#227][pheature-flags] Add Makefile to run a single precommit check #228 (@xserrat) [#219] update chain toggle strategy factory to fit strategy factory contract #220 (@kpicaza) [#217] add id and type to strategy and segment read models #218 (kpicaza) [#211] Run GrumPHP used in the pre-commit hook in a Docker container #212 (xserrat) [#206] install psalm infection plugin #207 (kpicaza) [#178][Symfony-toggle] Create Toggle API Compiler pass #199 (xserrat) [#176] [Symfony-toggle] Split configuration in different methods for better readability #196 (xserrat) [#174] create feature repository compiler pass #194 (kpicaza) [#179] Implement a ChainFeatureFinder #191 (xserrat) [#118] [Toggle Model] Create a Segment type that finds a match in a collection of values #182 (xserrat) [#170] create segment factory compiler pass #181 (kpicaza) [#169] create toggle strategy factory compiler pass #180 (kpicaza) [#117] Rename current Segment to StrictMatchingSegment #168 (xserrat) [Toggle PSR-11 Factories] Add static version to PostFeatureFactory #167 (xserrat) [#131] GetFeaturesFactory Static & Test #165 (pcs289) [#97] WIP create symfony bundle #163 (kpicaza) [#129] FeatureRepositoryFactory Static & Test #162 (pcs289) [#115] create segment factory #161 (kpicaza) Issue#114 create factory for existing strategy types #160 (kpicaza) [#113]: create chain segment factory #159 (kpicaza) [#112]: create chain toggle strategy factory #158 (kpicaza) [Toggle PSR-11 Factories] Add static version to RemoveFeatureFactory #153 (xserrat) [Toggle PSR-11 Factories] Add static version to RemoveStrategyFactory #151 (xserrat) [#125] DeleteFeatureFactory Static #147 (pcs289) [#124] CreateFeatureFactory Static + Tests #146 (pcs289) Core model tests #144 (kpicaza) Strategy contracts #143 (kpicaza) [#128] FeatureFinderFactory static #141 (pcs289) [#127] EnableFeatureFactory static #140 (@pcs289) [#126] DisableFeatureFactory static #139 (pcs289) [#123] AddStrategyFactory static #136 (pcs289) [crud-psr-7-api] cover type checks and tests #105 (kpicaza) Update README.md #96 (luismartinmartinez) add reviewdog language tool action #93 (kpicaza) Fixed bugs:

    [mezzio-toggle] Fix Mezzio Toggle to run as Symfony Toggle #225 [monorepo] maintain commit attribution on split #215 [toggle-crud] Allow adding strategiees with segments #209 [Monorepo] maintain user reference on split repository commits #108 [#222] fix sidebar menu names #233 (kpicaza) [#222] document symfony toggle #232 (kpicaza) [#255] [mezzio-toggle] Fix Mezzio Toggle to run as Symfony Toggle #226 (xserrat) [#215] get commit user in github action #216 (kpicaza) HOTFIX: add consistency on serializing segment criteria #214 (kpicaza) [#209] support adding segments via API #210 (kpicaza) [#200] fix strategy deserialization #205 (kpicaza) [#200] Some fixes creating db schema #201 (kpicaza) HOTFIX: load compiler passes from bundle class #198 (kpicaza) [Symfony Toggle]: send phpunit report to codecov #189 (kpicaza) add pheaturbot as split commiter #142 (kpicaza) test remove github user from split action #110 (kpicaza) update contributing repo link #101 (kpicaza) Update Readme.md #95 (pcs289) fix missing links in docs #89 (kpicaza) Closed issues:

    [symfony-toggle] Update Symfony Bundle documentation #222 [symfony-toggle] Add package badges #183 [Toggle PSR-11 Factories] Add factories compatible with Symfony framework #122 [Toggle Model] Rename current Segment to something as ExactMatchingSegment #117 [Toggle Model] Create Segment factory for our existing Segment type #115 [Toggle Model] Create Strategy factory for our existing Toggle strategy types #114 [Toggle Core] Create ChainSegmentFactory #113 [Toggle Core] Create ChainToggleStrategyFactory #112 [Toggle Core] Create ToggleStrategyFactory and SegmentFactory contracts #111 Add Code climate badge to Toggle Core package #85 Add psalm type check badge to Toggle CRUD PSR-7 API package #80 Add Packagist downloads badge to Toggle CRUD PSR-7 API package #77 Add Packagist version badge to Toggle CRUD PSR-7 API package #76 Add Toggle CRUD PSR-7 API package to packagist #75 Create API docs using slate for Toggle CRUD PSR-7 API #74 Add Infection Mutation testing coverage Badge to Toggle CRUD package #72 Add psalm type check badge to Toggle CRUD package #71 Add Codecov badge to Toggle CRUD package #70 Add Scrutinizer badges (code quality and test coverage) to Toggle CRUD package #69 Add Packagist downloads badge to Toggle CRUD package #68 Add Packagist version badge to Toggle CRUD package #67 Add the package to Packagist to Toggle CRUD package #66 Make public Toggle CRUD package #65 Add Infection Mutation testing coverage Badge to Toggle Model package #62 Add psalm type check badge to Toggle Model package #61 Add Codecov badge to Toggle Model package #60 Add Scrutinizer badges (code quality and test coverage) to Toggle Model package #59 Add Packagist downloads badge to Toggle Model package #58 Add Packagist version badge to Toggle Model package #57 Add Toggle Model package to packagist #56 Make public Toggle Model package #55 Add Infection Mutation testing coverage Badge to Toggle Core package #54 Add Psalm type check badge to Toggle Core package #53 Add Codecov badge to Toggle Core package #52 Add Scrutinizer badges (code quality and test coverage) to Toggle Core package #51 Add Packagist downloads badge to Toggle Core package #50 Add Packagist version badge to Toggle Core package #49 Add Toggle Core package to packagist #48 Make public Toggle Core package #47 Create DockerHub Organization Account #46 Create a Docs page as Github pages #43 Merged pull requests:

    [#222] Document symfony bundle #229 (kpicaza) HOTFIX: set correct service name for set strategy in sf bundle #213 (kpicaza) [#80] Add psalm type check badge to Toggle CRUD PSR-7 API package #193 (xserrat) [#185] WIP start documenting Symfony toggle #186 (kpicaza) [#183] add symfony toggle package badges #184 (kpicaza) [#132] PatchFeatureFactory Static & Test #166 (pcs289) [#130] GetFeatureFactory Static & Test #164 (pcs289) add code-quality badge #155 (kpicaza) add psalm badge #150 (kpicaza) add jetbrains as a first sponsor #149 (kpicaza) add codecov badge to main package #148 (kpicaza) First example #145 (kpicaza) add local pipeline to monorepo #109 (kpicaza) point getting started link to docs page #107 (kpicaza) [#86] Fix toggle-crud-psr7-api coding standards #104 (pcs289) Uniform repo name as subtitle in README #103 (pcs289) [#76] Version badge & [#77] Downloads Badge #102 (pcs289) add wip icon on main readme #100 (kpicaza) small change in description #92 (kpicaza) add temporal og image #91 (kpicaza) add code of conduct on docs #90 (kpicaza) start writing docs #44 (kpicaza)

    Source code(tar.gz)
    Source code(zip)
Owner
Pheature Flags
Pheature Flags is a release management framework that allows to activate and deactivate specific features in controlled conditions
Pheature Flags
Laravel Feature Flags allows instant, zero-deployment toggling of application features.

Dynamic Feature Flags for Laravel Laravel Feature Flags allows instant, zero-deployment toggling of application features. The state of each feature fl

Coding Labs 35 Oct 4, 2022
Pheature flags toggle CRUD implementation

Pheature Flags Toggle CRUD Pheature flags toggle CRUD implementation Installation Describe package installation composer require pheature/toggle-crud

Pheature Flags 5 Dec 14, 2022
Pheature flags toggle model implementation

Pheature Flags Toggle Model implementation Pheature flags toggle model implementation Installation Describe package installation composer require phea

Pheature Flags 5 Dec 12, 2022
Main ABRouter product repository that contains docker-compose file and orchestrates the project containers.

ABRouter-Compose ?? ABRouter is the open-source tool to perform and track A/B tests which is also known as the experiments. Additionally, feature flag

ABRouter 29 Dec 22, 2022
Database Repository / PHP Repository / Laravel Repository

Database Repository / PHP Repository / Laravel Repository Installation Use following command to add this package to composer development requirement.

Bakery 6 Dec 21, 2022
An Unleash bundle for Symfony applications to provide an easy way to use feature flags

Unleash Bundle An Unleash bundle for Symfony applications. This provide an easy way to implement feature flags using Gitlab Feature Flags Feature. Ins

Stogon 7 Oct 20, 2022
A PHP implementation of the Unleash protocol aka Feature Flags in GitLab.

A PHP implementation of the Unleash protocol aka Feature Flags in GitLab. This implementation conforms to the official Unleash standards and implement

Dominik Chrรกsteckรฝ 2 Aug 18, 2021
A PHP implementation of the Unleash protocol aka Feature Flags in GitLab

A PHP implementation of the Unleash protocol aka Feature Flags in GitLab. You may also be interested in the Symfony Bundle for this package. This impl

Unleash 38 Dec 25, 2022
Generic PHP command line flags parse library

PHP Flag Generic PHP command line flags parse library Features Generic CLI options and arguments parser. Support set value data type(int,string,bool,a

PHP Toolkit 23 Nov 13, 2022
A small library that provides functionality to PHP 8.1 enums to act as BitMask flags

PHP Enum BitMask A small library that provides functionality to PHP 8.1 enums to act as BitMask flags. Why? Sometimes you need some flags on the objec

FramJet 53 Dec 11, 2022
Easily interact and control your feature flags from Filament

Easily interact and control your feature flags from Filament

Ryan Chandler 32 Nov 29, 2022
An opinionated feature flags package for Laravel

This package provides an opinionated API for implementing feature flags in your Laravel applications. It supports application-wide features as well as model specific feature flags.

Ryan Chandler 157 Nov 24, 2022
Laravel Feature Flags allows instant, zero-deployment toggling of application features.

Dynamic Feature Flags for Laravel Laravel Feature Flags allows instant, zero-deployment toggling of application features. The state of each feature fl

Coding Labs 35 Oct 4, 2022
[READ-ONLY] Easy to use Caching library with support for multiple caching backends. This repo is a split of the main code that can be found in https://github.com/cakephp/cakephp

CakePHP Caching Library The Cache library provides a Cache service locator for interfacing with multiple caching backends using a simple to use interf

CakePHP 49 Sep 28, 2022
[READ-ONLY] A flexible, lightweight and powerful Object-Relational Mapper for PHP, implemented using the DataMapper pattern. This repo is a split of the main code that can be found in https://github.com/cakephp/cakephp

CakePHP ORM The CakePHP ORM provides a powerful and flexible way to work with relational databases. Using a datamapper pattern the ORM allows you to m

CakePHP 146 Sep 28, 2022
[READ-ONLY] Collection library in CakePHP. This repo is a split of the main code that can be found in https://github.com/cakephp/cakephp

CakePHP Collection Library The collection classes provide a set of tools to manipulate arrays or Traversable objects. If you have ever used underscore

CakePHP 85 Nov 28, 2022
[READ-ONLY] The event dispatcher library for CakePHP. This repo is a split of the main code that can be found in https://github.com/cakephp/cakephp

CakePHP Event Library This library emulates several aspects of how events are triggered and managed in popular JavaScript libraries such as jQuery: An

CakePHP 21 Oct 6, 2022
[READ-ONLY] Validation library from CakePHP. This repo is a split of the main code that can be found in https://github.com/cakephp/cakephp

CakePHP Validation Library The validation library in CakePHP provides features to build validators that can validate arbitrary arrays of data with eas

CakePHP 39 Oct 11, 2022
[READ-ONLY] CakePHP Utility classes such as Inflector, Text, Hash, Security and Xml. This repo is a split of the main code that can be found in https://github.com/cakephp/cakephp

CakePHP Utility Classes This library provides a range of utility classes that are used throughout the CakePHP framework What's in the toolbox? Hash A

CakePHP 112 Feb 15, 2022