edx-toggles


Nameedx-toggles JSON
Version 5.2.0 PyPI version JSON
download
home_pagehttps://github.com/openedx/edx-toggles
SummaryLibrary and utilities for feature toggles
upload_time2024-04-03 20:39:46
maintainerNone
docs_urlNone
authoredX
requires_pythonNone
licenseAGPL 3.0
keywords django edx
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            edx-toggles
=============================

|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|
|license-badge|

Library and utilities for implementing and reporting on feature toggles.

Documentation is on `Read the Docs`_.  Code repository is on `GitHub`_.

.. _Read the Docs: https://edx.readthedocs.io/projects/edx-toggles/en/latest/readme.html
.. _GitHub: https://github.com/openedx/edx-toggles

See the `scripts README`_ for more information on the scripts for reporting on the status of
feature toggles.

.. _scripts README: https://github.com/openedx/edx-toggles/blob/master/scripts/README.rst

License
-------

The code in this repository is licensed under the AGPL 3.0 unless
otherwise noted.

Please see ``LICENSE.txt`` for details.

How To Contribute
-----------------

Contributions are very welcome.

Please read `How To Contribute <https://github.com/openedx/.github/blob/master/CONTRIBUTING.md>`_ for details.


PR description template should be automatically applied if you are sending PR from github interface; otherwise you
can find it it at `PULL_REQUEST_TEMPLATE.md <https://github.com/openedx/edx-toggles/blob/master/.github/PULL_REQUEST_TEMPLATE.md>`_

Issue report template should be automatically applied if you are sending it from github UI as well; otherwise you
can find it at `ISSUE_TEMPLATE.md <https://github.com/openedx/edx-toggles/blob/master/.github/ISSUE_TEMPLATE.md>`_

Reporting Security Issues
-------------------------

Please do not report security issues in public. Please email security@openedx.org.

Getting Help
------------

Have a question about this repository, or about Open edX in general?  Please
refer to this `list of resources`_ if you need any assistance.

.. _list of resources: https://open.edx.org/getting-help


.. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-toggles.svg
    :target: https://pypi.python.org/pypi/edx-toggles/
    :alt: PyPI

.. |ci-badge| image:: https://github.com/openedx/edx-toggles/workflows/Python%20CI/badge.svg?branch=master
    :target: https://github.com/openedx/edx-toggles/actions?query=workflow%3A%22Python+CI%22
    :alt: Github CI

.. |codecov-badge| image:: http://codecov.io/github/edx/edx-toggles/coverage.svg?branch=master
    :target: http://codecov.io/github/edx/edx-toggles?branch=master
    :alt: Codecov

.. |doc-badge| image:: https://readthedocs.org/projects/edx-toggles/badge/?version=latest
    :target: http://edx-toggles.readthedocs.io/en/latest/
    :alt: Documentation

.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/edx-toggles.svg
    :target: https://pypi.python.org/pypi/edx-toggles/
    :alt: Supported Python versions

.. |license-badge| image:: https://img.shields.io/github/license/edx/edx-toggles.svg
    :target: https://github.com/openedx/edx-toggles/blob/master/LICENSE.txt
    :alt: License


Change Log
----------

..
   All enhancements and patches to edx_toggles will be documented
   in this file.  It adheres to the structure of https://keepachangelog.com/ ,
   but in reStructuredText instead of Markdown (for ease of incorporation into
   Sphinx documentation and the PyPI description).

   This project adheres to Semantic Versioning (https://semver.org/).

.. There should always be an "Unreleased" section for changes pending release.

Unreleased
~~~~~~~~~~

[5.2.0] - 2024-03-31
--------------------

* Added python3.11 and 3.12 support. Dropped django32 support.

[5.1.1] - 2024-01-31
--------------------

* Fix toggle report to output all settings.

[5.1.0] - 2023-08-02
--------------------

* Added support for Django 4.2
* Rename toggle_warnings to toggle_warning for consistency with setting_warning.
* Switch from ``edx-sphinx-theme`` to ``sphinx-book-theme`` since the former is
  deprecated

[5.0.0] - 2022-04-22
--------------------

* BREAKING CHANGE: Removed LegacyWaffle* classes. Although this is a breaking change, all known uses have already been fixed.
* Handle the case where certain toggle names come in as ``None`` when generating summary reports.
* Add ADR for updating annotations for toggle life expectancy and use cases.

[4.3.0] - 2022-01-31
--------------------

Removed
~~~~~~~

* Removed Django22, 30, 31

Added
~~~~~~~
* Added Django40 support in CI

[4.2.0] - 2021-07-07
~~~~~~~~~~~~~~~~~~~~

* Added support for django3.0, 3.1 and 3.2

[4.1.0] - 2021-02-10
~~~~~~~~~~~~~~~~~~~~

* Expose toggle state report via a Python API.

[4.0.0] - 2021-01-24
~~~~~~~~~~~~~~~~~~~~

* BREAKING CHANGE: Remove now unnecessary ``edx_toggles.toggles.__future__`` module.
* BREAKING CHANGE: Remove the following methods and properties: ``LegacyWaffleFlagNamespace.set_monitor_value``,  ``LegacyWaffleSwitch.switch_name``, ``LegacyWaffleSwitch.namespaced_switch_name``, ``LegacyWaffleFlag.flag_name``, ``LegacyWaffleFlag.namespaced_flag_name``, ``LegacyWaffleFlag.waffle_namespace``.
* BREAKING CHANGE: Remove ``LegacyWaffleFlagNamespace._set_monitor_value`` method
* Monitoring:

    * Add the following custom attribute: "deprecated_legacy_waffle_class"
    * Remove the following custom attributes: "deprecated_module_not_supplied", "warn_flag_no_request_return_value", "deprecated_waffle_method", "deprecated_waffle_legacy_method", "deprecated_compatible_legacy_waffle_class".
* Rename ``toggles.internal.legacy.Waffle*`` classes to ``toggles.internal.legacy.LegacyWaffle*``.

[3.1.0] - 2021-01-18
~~~~~~~~~~~~~~~~~~~~

* Dropped support for ``Python3.5``.
* Fix ``toggle_type`` column value from the toggle state report for the ``SettingToggle`` and ``SettingDictToggle`` classes: the column is now set to "django_settings".

[2.1.0] - 2021-01-12
~~~~~~~~~~~~~~~~~~~~

* Stop monitoring waffle flag values via ``WaffleFlag.set_monitor_value`` calls. The deprecated method is preserved for backward compatibility.


[2.0.0] - 2020-11-05
~~~~~~~~~~~~~~~~~~~~

* BREAKING CHANGE: The ``WaffleFlagNamespace`` and ``WaffleSwitchNamespace`` classes have been removed. You can either rename to ``LegacyWaffleFlagNamespace`` and ``LegacyWaffleSwitchNamespace``, which are deprecated, or you can move to the newer waffle classes that no longer use these Namespace classes (see below).
* BREAKING CHANGE: The ``WaffleFlag`` and ``WaffleSwitch`` classes exposed in ``toggles`` no longer use the Namespace classes and are now the classes which were previously only available in ``toggles.__future__``.

    * If you were importing from ``edx_toggles.toggles.__future__`` before, then you simply need to import from ``edx_toggles.toggles``. Importing from ``__future__`` will continue to work but will trigger a deprecation warning.
    * If you were importing from ``edx_toggles.toggles``, then you either need to:

        * Migrate your legacy namespaced classes to the new-style classes (see the new behaviour below), or
        * Import ``LegacyWaffleFlag`` instead of ``WaffleFlag`` and ``LegacyWaffleSwitch`` instead of ``WaffleSwitch``. Note that these classes will be removed soon, so it's preferable to migrate to the new classes already.

    * The new Waffle classes introduce the following changes:

        * They no longer use Namespace classes like ``WaffleSwitchNamespace`` or ``WaffleFlagNamespace``.
        * The ``WaffleSwitchNamespace._namespaced_name`` and ``WaffleFlagNamespace._namespaced_name`` methods are replaced by the ``WaffleSwitch.name`` and ``WaffleFlag.name`` attributes.
        * The ``WaffleSwitchNamespace.is_enabled`` method is replaced by the ``WaffleSwitch.is_enabled`` method.
        * The ``WaffleSwitchNamespace.set_request_cache_with_short_name`` method has no replacement because an alternative solution should be found.  You could (but really shouldn't) use the ``WaffleSwitch._cached_switches`` property.
        * The ``WaffleSwitch.switch_name`` attribute is deprecated: switches should only ever be referred to using their fully namespaced names.
        * The ``WaffleSwitch.switch_name`` attribute no longer exists. Switches should only ever be referred to using their fully namespaced names.  If you need the non-namespaced name, it must be parsed from the namespaced name.
        * The ``WaffleFlagNamespace.is_flag_active`` method is replaced by ``WaffleFlag.is_enabled``.
        * The ``WaffleFlagNamespace._monitor_value`` method is replaced by ``WaffleFlag.set_monitor_value``.
        * The ``WaffleFlagNamespace._cached_flags`` attribute is replaced by the ``WaffleFlag.cached_flags`` method.
        * The ``WaffleFlag`` and ``WaffleSwitch`` ``module_name`` constructor argument is now mandatory.
        * The ``WaffleFlag.flag_name`` attribute is deprecated.
        * The ``WaffleFlag.flag_name`` attribute no longer exists. Flags should only ever be referred to using their fully namespaced names.  If you need the non-namespaced name, it must be parsed from the namespaced name.
        * The ``WaffleFlag.waffle_namespace`` attribute no longer exists, since there is no longer a separate namespace object.

[1.2.2] - 2020-12-22
~~~~~~~~~~~~~~~~~~~~

More improvements to monitoring of legacy waffle class imports.

* Add ``deprecated_incompatible_legacy_waffle_class`` custom attribute to any class (including subclasses), using the backward-incompatible imports that will be removed in 2.0.0.
* Add ``deprecated_compatible_legacy_waffle_class`` custom attribute to any class (including subclasses) using the legacy classes compatible with 2.0.0 imports, but which should be removed in 3.0.0 (or some future major version).
* Remove ``deprecated_edx_toggles_waffle`` custom attribute. In two cases, it was replaced by the new ``*_legacy_waffle_class`` custom attributes.  In one case, it was replaced with the already existing and more appropriate ``deprecated_waffle_legacy_method`` custom attribute.

[1.2.1] - 2020-12-17
~~~~~~~~~~~~~~~~~~~~

* Improve monitoring of legacy Waffle class imports. We should watch for "edx_toggles.toggles.internal.waffle.legacy.WaffleSwitch" custom attributes.

[1.2.0] - 2020-11-05
~~~~~~~~~~~~~~~~~~~~

* Start the deprecation process of the waffle namespace classes:

  * Introduce LegacyWaffleFlag, LegacyWaffleSwitch for use with namespaces.
  * Begin deprecation/refactoring of namespacing code, including deprecation monitoring and warnings.
  * Note: WaffleFlag and WaffleSwitch still use namespaces as well (for now).
  * Introduce the ``toggles.__future__`` module for applications that need to be forward-compatible right away.

[1.1.1] - 2020-10-27
~~~~~~~~~~~~~~~~~~~~

* Fix cache-checking in WaffleSwitchNamespace

[1.1.0] - 2020-10-23
~~~~~~~~~~~~~~~~~~~~

* Backport ``override_waffle_switch`` test utility function from edx-platform

[1.0.0] - 2020-10-13
~~~~~~~~~~~~~~~~~~~~

* Fix missing ``module_name`` argument in ``SettingDictToggle`` constructor.
* Extract waffle classes from edx-platform and move them here following ADR `#2 <docs/decisions/0002-application-toggle-state.rst>`__, `#3 <docs/decisions/0003-django-setting-toggles.rst>`__, `#4 <docs/decisions/0004-toggle-api.rst>`__. This does not introduce backward-incompatible changes, *yet*.
* Fix pinned requirements and incorrect root url that overrode edx-platform's.

[0.3.0] - 2020-09-23
~~~~~~~~~~~~~~~~~~~~

First release to PyPI (2020-10-02)

* Implement ``SettingToggle`` and ``SettingDictToggle``.

[0.2.2] - 2020-09-11
~~~~~~~~~~~~~~~~~~~~

* Document the writing of feature toggles annotations.

[0.2.1] - 2020-08-03
~~~~~~~~~~~~~~~~~~~~

* Add ADR for the purpose of this repository.
* Add ADR for implementing a Toggle State endpoint.
* Add toggles report with CSV output using new CsvRenderer.
* Add CourseWaffleFlag and course override data to toggle report.
* Add output for waffle flag course overrides to data gatherer
* Add additional options to scripts/feature_toggle_report_generator

    * filter toggle types and envs, add github_url, and change name of ida in report

* Modified scripts/feature_toggle_report_generator to work based on envs
* Removed confluence integration
* Moved HtmlRenderer to its own file
* Add ADR for new SettingToggle. (see 0003-django-setting-toggles.rst)

[0.2.0] - 2020-05-27
~~~~~~~~~~~~~~~~~~~~

* Removed caniusepython3.

[0.2.0] - 2020-05-05
~~~~~~~~~~~~~~~~~~~~

* Added support for python 3.8 and dropped support Django versions older than 2.2

[0.1.0] - 2019-04-08
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Initial version

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/openedx/edx-toggles",
    "name": "edx-toggles",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "Django edx",
    "author": "edX",
    "author_email": "oscm@edx.org",
    "download_url": "https://files.pythonhosted.org/packages/eb/60/d03b770a85c0ebf3c118075ec4fd622842db859475f1ce795c2eccd38766/edx-toggles-5.2.0.tar.gz",
    "platform": null,
    "description": "edx-toggles\n=============================\n\n|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|\n|license-badge|\n\nLibrary and utilities for implementing and reporting on feature toggles.\n\nDocumentation is on `Read the Docs`_.  Code repository is on `GitHub`_.\n\n.. _Read the Docs: https://edx.readthedocs.io/projects/edx-toggles/en/latest/readme.html\n.. _GitHub: https://github.com/openedx/edx-toggles\n\nSee the `scripts README`_ for more information on the scripts for reporting on the status of\nfeature toggles.\n\n.. _scripts README: https://github.com/openedx/edx-toggles/blob/master/scripts/README.rst\n\nLicense\n-------\n\nThe code in this repository is licensed under the AGPL 3.0 unless\notherwise noted.\n\nPlease see ``LICENSE.txt`` for details.\n\nHow To Contribute\n-----------------\n\nContributions are very welcome.\n\nPlease read `How To Contribute <https://github.com/openedx/.github/blob/master/CONTRIBUTING.md>`_ for details.\n\n\nPR description template should be automatically applied if you are sending PR from github interface; otherwise you\ncan find it it at `PULL_REQUEST_TEMPLATE.md <https://github.com/openedx/edx-toggles/blob/master/.github/PULL_REQUEST_TEMPLATE.md>`_\n\nIssue report template should be automatically applied if you are sending it from github UI as well; otherwise you\ncan find it at `ISSUE_TEMPLATE.md <https://github.com/openedx/edx-toggles/blob/master/.github/ISSUE_TEMPLATE.md>`_\n\nReporting Security Issues\n-------------------------\n\nPlease do not report security issues in public. Please email security@openedx.org.\n\nGetting Help\n------------\n\nHave a question about this repository, or about Open edX in general?  Please\nrefer to this `list of resources`_ if you need any assistance.\n\n.. _list of resources: https://open.edx.org/getting-help\n\n\n.. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-toggles.svg\n    :target: https://pypi.python.org/pypi/edx-toggles/\n    :alt: PyPI\n\n.. |ci-badge| image:: https://github.com/openedx/edx-toggles/workflows/Python%20CI/badge.svg?branch=master\n    :target: https://github.com/openedx/edx-toggles/actions?query=workflow%3A%22Python+CI%22\n    :alt: Github CI\n\n.. |codecov-badge| image:: http://codecov.io/github/edx/edx-toggles/coverage.svg?branch=master\n    :target: http://codecov.io/github/edx/edx-toggles?branch=master\n    :alt: Codecov\n\n.. |doc-badge| image:: https://readthedocs.org/projects/edx-toggles/badge/?version=latest\n    :target: http://edx-toggles.readthedocs.io/en/latest/\n    :alt: Documentation\n\n.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/edx-toggles.svg\n    :target: https://pypi.python.org/pypi/edx-toggles/\n    :alt: Supported Python versions\n\n.. |license-badge| image:: https://img.shields.io/github/license/edx/edx-toggles.svg\n    :target: https://github.com/openedx/edx-toggles/blob/master/LICENSE.txt\n    :alt: License\n\n\nChange Log\n----------\n\n..\n   All enhancements and patches to edx_toggles will be documented\n   in this file.  It adheres to the structure of https://keepachangelog.com/ ,\n   but in reStructuredText instead of Markdown (for ease of incorporation into\n   Sphinx documentation and the PyPI description).\n\n   This project adheres to Semantic Versioning (https://semver.org/).\n\n.. There should always be an \"Unreleased\" section for changes pending release.\n\nUnreleased\n~~~~~~~~~~\n\n[5.2.0] - 2024-03-31\n--------------------\n\n* Added python3.11 and 3.12 support. Dropped django32 support.\n\n[5.1.1] - 2024-01-31\n--------------------\n\n* Fix toggle report to output all settings.\n\n[5.1.0] - 2023-08-02\n--------------------\n\n* Added support for Django 4.2\n* Rename toggle_warnings to toggle_warning for consistency with setting_warning.\n* Switch from ``edx-sphinx-theme`` to ``sphinx-book-theme`` since the former is\n  deprecated\n\n[5.0.0] - 2022-04-22\n--------------------\n\n* BREAKING CHANGE: Removed LegacyWaffle* classes. Although this is a breaking change, all known uses have already been fixed.\n* Handle the case where certain toggle names come in as ``None`` when generating summary reports.\n* Add ADR for updating annotations for toggle life expectancy and use cases.\n\n[4.3.0] - 2022-01-31\n--------------------\n\nRemoved\n~~~~~~~\n\n* Removed Django22, 30, 31\n\nAdded\n~~~~~~~\n* Added Django40 support in CI\n\n[4.2.0] - 2021-07-07\n~~~~~~~~~~~~~~~~~~~~\n\n* Added support for django3.0, 3.1 and 3.2\n\n[4.1.0] - 2021-02-10\n~~~~~~~~~~~~~~~~~~~~\n\n* Expose toggle state report via a Python API.\n\n[4.0.0] - 2021-01-24\n~~~~~~~~~~~~~~~~~~~~\n\n* BREAKING CHANGE: Remove now unnecessary ``edx_toggles.toggles.__future__`` module.\n* BREAKING CHANGE: Remove the following methods and properties: ``LegacyWaffleFlagNamespace.set_monitor_value``,  ``LegacyWaffleSwitch.switch_name``, ``LegacyWaffleSwitch.namespaced_switch_name``, ``LegacyWaffleFlag.flag_name``, ``LegacyWaffleFlag.namespaced_flag_name``, ``LegacyWaffleFlag.waffle_namespace``.\n* BREAKING CHANGE: Remove ``LegacyWaffleFlagNamespace._set_monitor_value`` method\n* Monitoring:\n\n    * Add the following custom attribute: \"deprecated_legacy_waffle_class\"\n    * Remove the following custom attributes: \"deprecated_module_not_supplied\", \"warn_flag_no_request_return_value\", \"deprecated_waffle_method\", \"deprecated_waffle_legacy_method\", \"deprecated_compatible_legacy_waffle_class\".\n* Rename ``toggles.internal.legacy.Waffle*`` classes to ``toggles.internal.legacy.LegacyWaffle*``.\n\n[3.1.0] - 2021-01-18\n~~~~~~~~~~~~~~~~~~~~\n\n* Dropped support for ``Python3.5``.\n* Fix ``toggle_type`` column value from the toggle state report for the ``SettingToggle`` and ``SettingDictToggle`` classes: the column is now set to \"django_settings\".\n\n[2.1.0] - 2021-01-12\n~~~~~~~~~~~~~~~~~~~~\n\n* Stop monitoring waffle flag values via ``WaffleFlag.set_monitor_value`` calls. The deprecated method is preserved for backward compatibility.\n\n\n[2.0.0] - 2020-11-05\n~~~~~~~~~~~~~~~~~~~~\n\n* BREAKING CHANGE: The ``WaffleFlagNamespace`` and ``WaffleSwitchNamespace`` classes have been removed. You can either rename to ``LegacyWaffleFlagNamespace`` and ``LegacyWaffleSwitchNamespace``, which are deprecated, or you can move to the newer waffle classes that no longer use these Namespace classes (see below).\n* BREAKING CHANGE: The ``WaffleFlag`` and ``WaffleSwitch`` classes exposed in ``toggles`` no longer use the Namespace classes and are now the classes which were previously only available in ``toggles.__future__``.\n\n    * If you were importing from ``edx_toggles.toggles.__future__`` before, then you simply need to import from ``edx_toggles.toggles``. Importing from ``__future__`` will continue to work but will trigger a deprecation warning.\n    * If you were importing from ``edx_toggles.toggles``, then you either need to:\n\n        * Migrate your legacy namespaced classes to the new-style classes (see the new behaviour below), or\n        * Import ``LegacyWaffleFlag`` instead of ``WaffleFlag`` and ``LegacyWaffleSwitch`` instead of ``WaffleSwitch``. Note that these classes will be removed soon, so it's preferable to migrate to the new classes already.\n\n    * The new Waffle classes introduce the following changes:\n\n        * They no longer use Namespace classes like ``WaffleSwitchNamespace`` or ``WaffleFlagNamespace``.\n        * The ``WaffleSwitchNamespace._namespaced_name`` and ``WaffleFlagNamespace._namespaced_name`` methods are replaced by the ``WaffleSwitch.name`` and ``WaffleFlag.name`` attributes.\n        * The ``WaffleSwitchNamespace.is_enabled`` method is replaced by the ``WaffleSwitch.is_enabled`` method.\n        * The ``WaffleSwitchNamespace.set_request_cache_with_short_name`` method has no replacement because an alternative solution should be found.  You could (but really shouldn't) use the ``WaffleSwitch._cached_switches`` property.\n        * The ``WaffleSwitch.switch_name`` attribute is deprecated: switches should only ever be referred to using their fully namespaced names.\n        * The ``WaffleSwitch.switch_name`` attribute no longer exists. Switches should only ever be referred to using their fully namespaced names.  If you need the non-namespaced name, it must be parsed from the namespaced name.\n        * The ``WaffleFlagNamespace.is_flag_active`` method is replaced by ``WaffleFlag.is_enabled``.\n        * The ``WaffleFlagNamespace._monitor_value`` method is replaced by ``WaffleFlag.set_monitor_value``.\n        * The ``WaffleFlagNamespace._cached_flags`` attribute is replaced by the ``WaffleFlag.cached_flags`` method.\n        * The ``WaffleFlag`` and ``WaffleSwitch`` ``module_name`` constructor argument is now mandatory.\n        * The ``WaffleFlag.flag_name`` attribute is deprecated.\n        * The ``WaffleFlag.flag_name`` attribute no longer exists. Flags should only ever be referred to using their fully namespaced names.  If you need the non-namespaced name, it must be parsed from the namespaced name.\n        * The ``WaffleFlag.waffle_namespace`` attribute no longer exists, since there is no longer a separate namespace object.\n\n[1.2.2] - 2020-12-22\n~~~~~~~~~~~~~~~~~~~~\n\nMore improvements to monitoring of legacy waffle class imports.\n\n* Add ``deprecated_incompatible_legacy_waffle_class`` custom attribute to any class (including subclasses), using the backward-incompatible imports that will be removed in 2.0.0.\n* Add ``deprecated_compatible_legacy_waffle_class`` custom attribute to any class (including subclasses) using the legacy classes compatible with 2.0.0 imports, but which should be removed in 3.0.0 (or some future major version).\n* Remove ``deprecated_edx_toggles_waffle`` custom attribute. In two cases, it was replaced by the new ``*_legacy_waffle_class`` custom attributes.  In one case, it was replaced with the already existing and more appropriate ``deprecated_waffle_legacy_method`` custom attribute.\n\n[1.2.1] - 2020-12-17\n~~~~~~~~~~~~~~~~~~~~\n\n* Improve monitoring of legacy Waffle class imports. We should watch for \"edx_toggles.toggles.internal.waffle.legacy.WaffleSwitch\" custom attributes.\n\n[1.2.0] - 2020-11-05\n~~~~~~~~~~~~~~~~~~~~\n\n* Start the deprecation process of the waffle namespace classes:\n\n  * Introduce LegacyWaffleFlag, LegacyWaffleSwitch for use with namespaces.\n  * Begin deprecation/refactoring of namespacing code, including deprecation monitoring and warnings.\n  * Note: WaffleFlag and WaffleSwitch still use namespaces as well (for now).\n  * Introduce the ``toggles.__future__`` module for applications that need to be forward-compatible right away.\n\n[1.1.1] - 2020-10-27\n~~~~~~~~~~~~~~~~~~~~\n\n* Fix cache-checking in WaffleSwitchNamespace\n\n[1.1.0] - 2020-10-23\n~~~~~~~~~~~~~~~~~~~~\n\n* Backport ``override_waffle_switch`` test utility function from edx-platform\n\n[1.0.0] - 2020-10-13\n~~~~~~~~~~~~~~~~~~~~\n\n* Fix missing ``module_name`` argument in ``SettingDictToggle`` constructor.\n* Extract waffle classes from edx-platform and move them here following ADR `#2 <docs/decisions/0002-application-toggle-state.rst>`__, `#3 <docs/decisions/0003-django-setting-toggles.rst>`__, `#4 <docs/decisions/0004-toggle-api.rst>`__. This does not introduce backward-incompatible changes, *yet*.\n* Fix pinned requirements and incorrect root url that overrode edx-platform's.\n\n[0.3.0] - 2020-09-23\n~~~~~~~~~~~~~~~~~~~~\n\nFirst release to PyPI (2020-10-02)\n\n* Implement ``SettingToggle`` and ``SettingDictToggle``.\n\n[0.2.2] - 2020-09-11\n~~~~~~~~~~~~~~~~~~~~\n\n* Document the writing of feature toggles annotations.\n\n[0.2.1] - 2020-08-03\n~~~~~~~~~~~~~~~~~~~~\n\n* Add ADR for the purpose of this repository.\n* Add ADR for implementing a Toggle State endpoint.\n* Add toggles report with CSV output using new CsvRenderer.\n* Add CourseWaffleFlag and course override data to toggle report.\n* Add output for waffle flag course overrides to data gatherer\n* Add additional options to scripts/feature_toggle_report_generator\n\n    * filter toggle types and envs, add github_url, and change name of ida in report\n\n* Modified scripts/feature_toggle_report_generator to work based on envs\n* Removed confluence integration\n* Moved HtmlRenderer to its own file\n* Add ADR for new SettingToggle. (see 0003-django-setting-toggles.rst)\n\n[0.2.0] - 2020-05-27\n~~~~~~~~~~~~~~~~~~~~\n\n* Removed caniusepython3.\n\n[0.2.0] - 2020-05-05\n~~~~~~~~~~~~~~~~~~~~\n\n* Added support for python 3.8 and dropped support Django versions older than 2.2\n\n[0.1.0] - 2019-04-08\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Initial version\n",
    "bugtrack_url": null,
    "license": "AGPL 3.0",
    "summary": "Library and utilities for feature toggles",
    "version": "5.2.0",
    "project_urls": {
        "Homepage": "https://github.com/openedx/edx-toggles"
    },
    "split_keywords": [
        "django",
        "edx"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "927c77920e23c5710ad999ad71a9ded4b9b15b24889e2b31c69dcecbdad2a422",
                "md5": "4c670e0b42fcdbbb1e8fff6f8e9666fb",
                "sha256": "5aa4d2a078421125505d455ec1ea40442cb66307884be5aee66a1dbc8bab9e96"
            },
            "downloads": -1,
            "filename": "edx_toggles-5.2.0-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4c670e0b42fcdbbb1e8fff6f8e9666fb",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 32447,
            "upload_time": "2024-04-03T20:39:44",
            "upload_time_iso_8601": "2024-04-03T20:39:44.889885Z",
            "url": "https://files.pythonhosted.org/packages/92/7c/77920e23c5710ad999ad71a9ded4b9b15b24889e2b31c69dcecbdad2a422/edx_toggles-5.2.0-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "eb60d03b770a85c0ebf3c118075ec4fd622842db859475f1ce795c2eccd38766",
                "md5": "c179caf38e587647f741b367521f2a7a",
                "sha256": "6ffa3e192e062c6df977619efedace7e12dc12ea68c893cb64497844691c6be3"
            },
            "downloads": -1,
            "filename": "edx-toggles-5.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c179caf38e587647f741b367521f2a7a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 35617,
            "upload_time": "2024-04-03T20:39:46",
            "upload_time_iso_8601": "2024-04-03T20:39:46.426979Z",
            "url": "https://files.pythonhosted.org/packages/eb/60/d03b770a85c0ebf3c118075ec4fd622842db859475f1ce795c2eccd38766/edx-toggles-5.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-03 20:39:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "openedx",
    "github_project": "edx-toggles",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "edx-toggles"
}
        
edX
Elapsed time: 0.19195s