From 652c537be18246e3f2f619035313362d9fef6f5c Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Tue, 11 Jan 2022 15:45:25 +0100
Subject: [PATCH 01/72] WIP: Publish to conda
---
.conda/LICENSE.AGPL.txt | 661 ++++++++++++++++++++++++++++++++++++++++
.conda/meta.yaml | 59 ++++
2 files changed, 720 insertions(+)
create mode 100644 .conda/LICENSE.AGPL.txt
create mode 100644 .conda/meta.yaml
diff --git a/.conda/LICENSE.AGPL.txt b/.conda/LICENSE.AGPL.txt
new file mode 100644
index 0000000000..1ce875873d
--- /dev/null
+++ b/.conda/LICENSE.AGPL.txt
@@ -0,0 +1,661 @@
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+ A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+ The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+ An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU Affero General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Remote Network Interaction; Use with the GNU General Public License.
+
+ Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software. This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+.
\ No newline at end of file
diff --git a/.conda/meta.yaml b/.conda/meta.yaml
new file mode 100644
index 0000000000..454379e127
--- /dev/null
+++ b/.conda/meta.yaml
@@ -0,0 +1,59 @@
+{% set name = "OpenFisca-France" %}
+{% set version = "102.0.0" %}
+
+package:
+ name: {{ name|lower }}
+ version: {{ version }}
+
+source:
+ url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.linux-x86_64.tar.gz
+ #url: http://benemie.fr/upload/OpenFisca-France-102.0.0-120.tar.gz
+ #url: https://files.pythonhosted.org/packages/2e/a7/d0adde13c9c714308b37d6e1787df01305b0b226441e37a3f0a21947e0a6/OpenFisca-France-{{ version }}.tar.gz
+ # url: https://test-files.pythonhosted.org/packages/74/0d/ed6f71724aab83d7dcf09f3833a5c71a2f0b3df79c92aba6bad43a4a22db/OpenFisca-France-{{ version }}.tar.gz
+ sha256: 9753d2958d885e9ab57017d8ceaf4796416ca2cf15a709be3ad03b0277e6b055
+ # sha256 is the preferred checksum `openssl sha256 `
+
+
+build:
+ noarch: python
+ number: 0
+ script: "{{ PYTHON }} -m pip install . -vv"
+
+requirements:
+ host:
+ - python
+ - pip
+ run:
+ - python >=3.6,<4.0
+ - OpenFisca-Core >=35.2.0,<36.0
+
+
+test:
+ imports:
+ - openfisca_france
+ requires:
+ - pip
+ - pytest >=4.4.1,<6.0.0 # To be Removed when OF-Core as been updated
+ commands:
+ - pip check
+
+about:
+ home: https://fr.openfisca.org/
+ # Use the SPDX identifier, e.g: GPL-2.0-only instead of GNU General Public License version 2.0
+ # See https://spdx.org/licenses/
+ license_family: AGPL
+ license: AGPL-3.0-only
+ license_file: LICENSE.AGPL.txt
+ summary: "French tax and benefit system for OpenFisca"
+ description: |
+ OpenFisca is a versatile microsimulation free software.
+ This repository contains the OpenFisca model of the French tax and benefit system.
+ Therefore, the working language here is French.
+ doc_url: https://fr.openfisca.org/
+ dev_url: https://github.com/openfisca/openfisca-france/
+
+extra:
+ recipe-maintainers:
+ # GitHub IDs for maintainers of the recipe.
+ # Always check with the people listed below if they are OK becoming maintainers of the recipe. (There will be spam!)
+ - benoit-cty
From 37282f8b52f996d7ff26e82e45d1a3ec28511e58 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Wed, 12 Jan 2022 13:07:34 +0100
Subject: [PATCH 02/72] Add Conda upload
---
.conda/LICENSE.AGPL.txt | 1320 +++++++++++++++++++--------------------
.conda/README.md | 20 +
.conda/meta.yaml | 118 ++--
3 files changed, 739 insertions(+), 719 deletions(-)
create mode 100644 .conda/README.md
diff --git a/.conda/LICENSE.AGPL.txt b/.conda/LICENSE.AGPL.txt
index 1ce875873d..ac4d0a3bd0 100644
--- a/.conda/LICENSE.AGPL.txt
+++ b/.conda/LICENSE.AGPL.txt
@@ -1,661 +1,661 @@
- GNU AFFERO GENERAL PUBLIC LICENSE
- Version 3, 19 November 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU Affero General Public License is a free, copyleft license for
-software and other kinds of works, specifically designed to ensure
-cooperation with the community in the case of network server software.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-our General Public Licenses are intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- Developers that use our General Public Licenses protect your rights
-with two steps: (1) assert copyright on the software, and (2) offer
-you this License which gives you legal permission to copy, distribute
-and/or modify the software.
-
- A secondary benefit of defending all users' freedom is that
-improvements made in alternate versions of the program, if they
-receive widespread use, become available for other developers to
-incorporate. Many developers of free software are heartened and
-encouraged by the resulting cooperation. However, in the case of
-software used on network servers, this result may fail to come about.
-The GNU General Public License permits making a modified version and
-letting the public access it on a server without ever releasing its
-source code to the public.
-
- The GNU Affero General Public License is designed specifically to
-ensure that, in such cases, the modified source code becomes available
-to the community. It requires the operator of a network server to
-provide the source code of the modified version running there to the
-users of that server. Therefore, public use of a modified version, on
-a publicly accessible server, gives the public access to the source
-code of the modified version.
-
- An older license, called the Affero General Public License and
-published by Affero, was designed to accomplish similar goals. This is
-a different license, not a version of the Affero GPL, but Affero has
-released a new version of the Affero GPL which permits relicensing under
-this license.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU Affero General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Remote Network Interaction; Use with the GNU General Public License.
-
- Notwithstanding any other provision of this License, if you modify the
-Program, your modified version must prominently offer all users
-interacting with it remotely through a computer network (if your version
-supports such interaction) an opportunity to receive the Corresponding
-Source of your version by providing access to the Corresponding Source
-from a network server at no charge, through some standard or customary
-means of facilitating copying of software. This Corresponding Source
-shall include the Corresponding Source for any work covered by version 3
-of the GNU General Public License that is incorporated pursuant to the
-following paragraph.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the work with which it is combined will remain governed by version
-3 of the GNU General Public License.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU Affero General Public License from time to time. Such new versions
-will be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU Affero General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU Affero General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU Affero General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published
- by the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If your software can interact with users remotely through a computer
-network, you should also make sure that it provides a way for users to
-get its source. For example, if your program is a web application, its
-interface could display a "Source" link that leads users to an archive
-of the code. There are many ways you could offer source, and different
-solutions will be better for different programs; see section 13 for the
-specific requirements.
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU AGPL, see
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+ A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+ The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+ An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU Affero General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Remote Network Interaction; Use with the GNU General Public License.
+
+ Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software. This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
.
\ No newline at end of file
diff --git a/.conda/README.md b/.conda/README.md
new file mode 100644
index 0000000000..4a9fb09d67
--- /dev/null
+++ b/.conda/README.md
@@ -0,0 +1,20 @@
+## Prérequis
+
+Installation de [Conda](https://www.anaconda.com/products/individual)
+
+## Installation
+
+`conda install -c openfisca.org openfisca-france`
+
+## Mise à jour du paquet sur Conda
+
+Pour créer un nouveau paquet il faut faire les actions suivantes à la racine du projet:
+
+- Editer `.conda/meta.yaml` pour mettre à jour:
+ - Le numéro de version
+ - Le hash 256
+ - L'url du paquet sur PyPi si nécessaire
+- `conda build --croot d:\tmp .conda` L'option `--croot ` est nécessaire sous Windows à cause des chemins trop long.
+- `conda install -c anaconda anaconda-client` Pour installer l'outil en ligne de commande.
+- `anaconda login`
+- `anaconda upload d:\tmp\noarch\openfisca-france-102.0.0-py_0.tar.bz2`
diff --git a/.conda/meta.yaml b/.conda/meta.yaml
index 454379e127..78fce071a6 100644
--- a/.conda/meta.yaml
+++ b/.conda/meta.yaml
@@ -1,59 +1,59 @@
-{% set name = "OpenFisca-France" %}
-{% set version = "102.0.0" %}
-
-package:
- name: {{ name|lower }}
- version: {{ version }}
-
-source:
- url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.linux-x86_64.tar.gz
- #url: http://benemie.fr/upload/OpenFisca-France-102.0.0-120.tar.gz
- #url: https://files.pythonhosted.org/packages/2e/a7/d0adde13c9c714308b37d6e1787df01305b0b226441e37a3f0a21947e0a6/OpenFisca-France-{{ version }}.tar.gz
- # url: https://test-files.pythonhosted.org/packages/74/0d/ed6f71724aab83d7dcf09f3833a5c71a2f0b3df79c92aba6bad43a4a22db/OpenFisca-France-{{ version }}.tar.gz
- sha256: 9753d2958d885e9ab57017d8ceaf4796416ca2cf15a709be3ad03b0277e6b055
- # sha256 is the preferred checksum `openssl sha256 `
-
-
-build:
- noarch: python
- number: 0
- script: "{{ PYTHON }} -m pip install . -vv"
-
-requirements:
- host:
- - python
- - pip
- run:
- - python >=3.6,<4.0
- - OpenFisca-Core >=35.2.0,<36.0
-
-
-test:
- imports:
- - openfisca_france
- requires:
- - pip
- - pytest >=4.4.1,<6.0.0 # To be Removed when OF-Core as been updated
- commands:
- - pip check
-
-about:
- home: https://fr.openfisca.org/
- # Use the SPDX identifier, e.g: GPL-2.0-only instead of GNU General Public License version 2.0
- # See https://spdx.org/licenses/
- license_family: AGPL
- license: AGPL-3.0-only
- license_file: LICENSE.AGPL.txt
- summary: "French tax and benefit system for OpenFisca"
- description: |
- OpenFisca is a versatile microsimulation free software.
- This repository contains the OpenFisca model of the French tax and benefit system.
- Therefore, the working language here is French.
- doc_url: https://fr.openfisca.org/
- dev_url: https://github.com/openfisca/openfisca-france/
-
-extra:
- recipe-maintainers:
- # GitHub IDs for maintainers of the recipe.
- # Always check with the people listed below if they are OK becoming maintainers of the recipe. (There will be spam!)
- - benoit-cty
+{% set name = "OpenFisca-France" %}
+{% set version = "102.0.0" %}
+
+package:
+ name: {{ name|lower }}
+ version: {{ version }}
+
+source:
+ #url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.linux-x86_64.tar.gz
+ #url: http://benemie.fr/upload/OpenFisca-France-102.0.0-120.tar.gz
+ url: https://files.pythonhosted.org/packages/2e/a7/d0adde13c9c714308b37d6e1787df01305b0b226441e37a3f0a21947e0a6/OpenFisca-France-{{ version }}.tar.gz
+ # url: https://test-files.pythonhosted.org/packages/74/0d/ed6f71724aab83d7dcf09f3833a5c71a2f0b3df79c92aba6bad43a4a22db/OpenFisca-France-{{ version }}.tar.gz
+ sha256: '7b2c0e126d8a2fd82b30b841786b864d80cbef7fdedfc472f5878ef72fba9a5d'
+ # sha256 is the preferred checksum `openssl sha256 `
+
+
+build:
+ noarch: python
+ number: 0
+ script: "{{ PYTHON }} -m pip install . -vv"
+
+requirements:
+ host:
+ - python
+ - pip
+ run:
+ - python >=3.6,<4.0
+ - OpenFisca-Core >=35.2.0,<36.0
+
+
+test:
+ imports:
+ - openfisca_france
+ requires:
+ - pip
+ - pytest >=4.4.1,<6.0.0 # To be Removed when OF-Core as been updated
+ commands:
+ - pip check
+
+about:
+ home: https://fr.openfisca.org/
+ # Use the SPDX identifier, e.g: GPL-2.0-only instead of GNU General Public License version 2.0
+ # See https://spdx.org/licenses/
+ license_family: AGPL
+ license: AGPL-3.0-only
+ license_file: LICENSE.AGPL.txt
+ summary: "French tax and benefit system for OpenFisca"
+ description: |
+ OpenFisca is a versatile microsimulation free software.
+ This repository contains the OpenFisca model of the French tax and benefit system.
+ Therefore, the working language here is French.
+ doc_url: https://fr.openfisca.org/
+ dev_url: https://github.com/openfisca/openfisca-france/
+
+extra:
+ recipe-maintainers:
+ # GitHub IDs for maintainers of the recipe.
+ # Always check with the people listed below if they are OK becoming maintainers of the recipe. (There will be spam!)
+ - benoit-cty
From a4e27e592197d8c3fd2ec42921c7172196ef8ee2 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 13 Jan 2022 16:21:58 +0100
Subject: [PATCH 03/72] Documentation and CI
---
.conda/README.md | 16 +++++++++++++---
.github/get_pypi_info.py | 23 +++++++++++++++++++++++
.github/workflows/publish-to-conda.yml | 20 ++++++++++++++++++++
README.md | 12 ++++++++++--
4 files changed, 66 insertions(+), 5 deletions(-)
create mode 100644 .github/get_pypi_info.py
create mode 100644 .github/workflows/publish-to-conda.yml
diff --git a/.conda/README.md b/.conda/README.md
index 4a9fb09d67..6cd345c5ae 100644
--- a/.conda/README.md
+++ b/.conda/README.md
@@ -2,9 +2,6 @@
Installation de [Conda](https://www.anaconda.com/products/individual)
-## Installation
-
-`conda install -c openfisca.org openfisca-france`
## Mise à jour du paquet sur Conda
@@ -14,7 +11,20 @@ Pour créer un nouveau paquet il faut faire les actions suivantes à la racine d
- Le numéro de version
- Le hash 256
- L'url du paquet sur PyPi si nécessaire
+ - Ces informations sont données par le script `.github/get_pypi_info.py`
+
+### Upload manuel du package
- `conda build --croot d:\tmp .conda` L'option `--croot ` est nécessaire sous Windows à cause des chemins trop long.
- `conda install -c anaconda anaconda-client` Pour installer l'outil en ligne de commande.
- `anaconda login`
- `anaconda upload d:\tmp\noarch\openfisca-france-102.0.0-py_0.tar.bz2`
+
+### Upload automatique du package
+
+L'upload automatique est fait par la CI, mais il faut que le fichier meta.yaml soit conforme.
+## Procédure initiale
+
+- Création d'un compte
+- Création d'un token sur https://anaconda.org/openfisca.org/settings/access avec le droit "Allow write access to the API site". Attention il expire le 2023/01/13
+- Mis en place du token dans GitHub action sous le nom de variable ANACONDA_TOKEN
+- Mise en place
\ No newline at end of file
diff --git a/.github/get_pypi_info.py b/.github/get_pypi_info.py
new file mode 100644
index 0000000000..d25bec088e
--- /dev/null
+++ b/.github/get_pypi_info.py
@@ -0,0 +1,23 @@
+import requests
+
+
+def get_info(package_name: str = '') -> dict:
+ '''
+ Get minimal informations needed by .conda/meta.yaml from PyPi JSON API.
+ ::package_name:: Name of package to get infos from.
+ ::return:: A dict with last_version, url and sha256
+ '''
+ resp = requests.get(f'https://pypi.org/pypi/{package_name}/json').json()
+ version = resp['info']['version']
+ # print(resp['releases'][version][0])
+ for v in resp['releases'][version]:
+ if v["packagetype"] == "sdist":
+ return {
+ "last_version": version,
+ "url": v['url'],
+ "sha256": v['digests']['sha256']
+ }
+
+
+info = get_info('OpenFisca-France')
+print(info) # noqa: T001
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
new file mode 100644
index 0000000000..861f0ba80e
--- /dev/null
+++ b/.github/workflows/publish-to-conda.yml
@@ -0,0 +1,20 @@
+name: publish_conda
+
+on: [push]
+
+#on:
+# release:
+# types: [published]
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: publish-to-conda
+ uses: fcakyon/conda-publish-action@v1.3
+ continue-on-error: true
+ with:
+ subdir: '.conda'
+ anacondatoken: ${{ secrets.ANACONDA_TOKEN }}
+ platforms: 'win osx linux'
diff --git a/README.md b/README.md
index 7b2ac3363f..75e2a8fc0f 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ L'ensembles des endpoints sont décrits dans la [documentation Swagger](https://
## Installation
-Ce paquet requiert [Python 3.7](https://www.python.org/downloads/release/python-370/) et [pip](https://pip.pypa.io/en/stable/installing/).
+Ce paquet requiert [Python 3.7](https://www.python.org/downloads/release/python-370/) et [pip](https://pip.pypa.io/en/stable/installing/) ou [conda](https://www.anaconda.com/products/individual).
Plateformes supportées :
- distributions GNU/Linux (en particulier Debian and Ubuntu) ;
@@ -40,9 +40,17 @@ Plateformes supportées :
Pour les autres OS : si vous pouvez exécuter Python et Numpy, l'installation d'OpenFisca devrait fonctionner.
+### Installez un environnement virtuel avec Conda
+
+- Créer un environnement : `conda create --name openfisca python=3.7`
+- Activer le : `conda activate myenv`
+- Installer OpenFisca : `conda install -c openfisca.org openfisca-france`
+
+Se référer à la [documentation conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)
+
### Installez un environnement virtuel avec Pew
-Nous recommandons l'utilisation d'un [environnement virtuel](https://virtualenv.pypa.io/en/stable/) (_virtualenv_) avec un gestionnaire de _virtualenv_ tel que [Pew](https://github.com/berdario/pew).
+Nous recommandons l'utilisation d'un [environnement virtuel](https://virtualenv.pypa.io/en/stable/) (_virtualenv_) avec un gestionnaire de _virtualenv_ tel que [Pew](https://github.com/berdario/pew). Attention ce gestionnaire d'environnement bénéficie d'une [maintenance réduite](https://github.com/berdario/pew/issues/218). Vous pouvez utiliser [venv](https://docs.python.org/3/library/venv.html).
- Un _[virtualenv](https://virtualenv.pypa.io/en/stable/)_ crée un environnement pour les besoins spécifiques du projet sur lequel vous travaillez.
- Un gestionnaire de _virtualenv_, tel que [Pew](https://github.com/berdario/pew), vous permet de facilement créer, supprimer et naviguer entre différents projets.
From 508fff98cd7843ce5b98b2924e9d1b2bd23d41ea Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 13 Jan 2022 17:53:47 +0100
Subject: [PATCH 04/72] Fix typos
---
.conda/README.md | 5 +++--
.github/workflows/publish-to-conda.yml | 2 +-
README.md | 2 +-
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/.conda/README.md b/.conda/README.md
index 6cd345c5ae..6e1f928bda 100644
--- a/.conda/README.md
+++ b/.conda/README.md
@@ -2,7 +2,6 @@
Installation de [Conda](https://www.anaconda.com/products/individual)
-
## Mise à jour du paquet sur Conda
Pour créer un nouveau paquet il faut faire les actions suivantes à la racine du projet:
@@ -14,6 +13,7 @@ Pour créer un nouveau paquet il faut faire les actions suivantes à la racine d
- Ces informations sont données par le script `.github/get_pypi_info.py`
### Upload manuel du package
+
- `conda build --croot d:\tmp .conda` L'option `--croot ` est nécessaire sous Windows à cause des chemins trop long.
- `conda install -c anaconda anaconda-client` Pour installer l'outil en ligne de commande.
- `anaconda login`
@@ -22,9 +22,10 @@ Pour créer un nouveau paquet il faut faire les actions suivantes à la racine d
### Upload automatique du package
L'upload automatique est fait par la CI, mais il faut que le fichier meta.yaml soit conforme.
+
## Procédure initiale
- Création d'un compte
- Création d'un token sur https://anaconda.org/openfisca.org/settings/access avec le droit "Allow write access to the API site". Attention il expire le 2023/01/13
- Mis en place du token dans GitHub action sous le nom de variable ANACONDA_TOKEN
-- Mise en place
\ No newline at end of file
+- Mise en place
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 861f0ba80e..ee9c39d291 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -7,7 +7,7 @@ on: [push]
# types: [published]
jobs:
- publish:
+ publish-to-conda:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
diff --git a/README.md b/README.md
index 75e2a8fc0f..af6852d6ed 100644
--- a/README.md
+++ b/README.md
@@ -43,7 +43,7 @@ Pour les autres OS : si vous pouvez exécuter Python et Numpy, l'installation d'
### Installez un environnement virtuel avec Conda
- Créer un environnement : `conda create --name openfisca python=3.7`
-- Activer le : `conda activate myenv`
+- Activer le : `conda activate openfisca`
- Installer OpenFisca : `conda install -c openfisca.org openfisca-france`
Se référer à la [documentation conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)
From ccd26809c2e7eede99a1aeb8b10834c2ca72b0dd Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 14:32:41 +0100
Subject: [PATCH 05/72] Conda doc
---
README.md | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
index af6852d6ed..e7caca75f4 100644
--- a/README.md
+++ b/README.md
@@ -36,21 +36,13 @@ Ce paquet requiert [Python 3.7](https://www.python.org/downloads/release/python-
Plateformes supportées :
- distributions GNU/Linux (en particulier Debian and Ubuntu) ;
- Mac OS X ;
-- Windows (nous recommandons d'utiliser [ConEmu](https://conemu.github.io/) à la place de la console par défaut) ;
+- Windows : Nous recommandons d'utiliser [conda](https://www.anaconda.com/products/individual), voir la procédure ci-dessous [Installez un environnement virtuel avec conda](./README.md#installez-un-environnement-virtuel-avec-conda) ; OpenFisca fonctionne également dans le [sous-système Windows pour Linux (WSL)](https://docs.microsoft.com/fr-fr/windows/wsl/install).
Pour les autres OS : si vous pouvez exécuter Python et Numpy, l'installation d'OpenFisca devrait fonctionner.
-### Installez un environnement virtuel avec Conda
-
-- Créer un environnement : `conda create --name openfisca python=3.7`
-- Activer le : `conda activate openfisca`
-- Installer OpenFisca : `conda install -c openfisca.org openfisca-france`
-
-Se référer à la [documentation conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)
-
### Installez un environnement virtuel avec Pew
-Nous recommandons l'utilisation d'un [environnement virtuel](https://virtualenv.pypa.io/en/stable/) (_virtualenv_) avec un gestionnaire de _virtualenv_ tel que [Pew](https://github.com/berdario/pew). Attention ce gestionnaire d'environnement bénéficie d'une [maintenance réduite](https://github.com/berdario/pew/issues/218). Vous pouvez utiliser [venv](https://docs.python.org/3/library/venv.html).
+Nous recommandons l'utilisation d'un [environnement virtuel](https://virtualenv.pypa.io/en/stable/) (_virtualenv_) avec un gestionnaire de _virtualenv_ tel que [Pew](https://github.com/berdario/pew). Vous pouvez aussi utiliser le gestionnaire d'environnemnt officiel de Python : [venv](https://docs.python.org/3/library/venv.html).
- Un _[virtualenv](https://virtualenv.pypa.io/en/stable/)_ crée un environnement pour les besoins spécifiques du projet sur lequel vous travaillez.
- Un gestionnaire de _virtualenv_, tel que [Pew](https://github.com/berdario/pew), vous permet de facilement créer, supprimer et naviguer entre différents projets.
@@ -168,6 +160,25 @@ pytest tests/test_basics.py # Ces test peuvent prendre jusqu'à 60 secondes.
```
:tada: OpenFisca-France est prêt à être utilisé !
+### Installez un environnement virtuel avec conda
+
+Nous conseillons cette procédure pour les personnes utilisant Windows et n'ayant pas d'environnement Python fonctionnel. Elle fonctionne également sous Linux et macOS.
+
+Ceci vous permet d'obtenir en une seule installation :
+- Python
+- Le gestionnaire de paquets [Anaconda.org](https://docs.anaconda.com/anacondaorg/user-guide/)
+- Le gestionnaire d'environnement Python virtuel : [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)
+
+Voici les étapes à suivre
+- Installer la version communautaire/gratuite en suivant la procédure décrite sur [le site Anaconda](https://www.anaconda.com/products/individual). A noter que Anaconda occupe beaucoup d'espace disque (>2 Go), vous pouvez installer à la place [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) qui occupe beaucoup moins d'espace disque.
+- Depuis le menu démarrer, exécuter `Anaconda Powershell Prompt`.
+- Exécuter les commandes suivantes dans le shell:
+ - Créer un environnement virtuel dédié : `conda create --name openfisca python=3.7`
+ - Activer l'environnement : `conda activate openfisca`
+ - Installer OpenFisca : `conda install -c openfisca.org openfisca-france`
+
+:tada: OpenFisca-France est prêt à être utilisé !
+
#### Prochaines étapes
- Pour enrichir ou faire évoluer la législation d'OpenFisca-France, lisez _[Coding the Legislation](https://openfisca.org/doc/coding-the-legislation/index.html)_ (en anglais).
From 01998aa245dd1a02917d8536af1bdc3425fded49 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 17:18:03 +0100
Subject: [PATCH 06/72] conda build
---
.github/workflows/publish-to-conda.yml | 32 ++++++++++++++++++--------
1 file changed, 22 insertions(+), 10 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index ee9c39d291..74869e7215 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -5,16 +5,28 @@ on: [push]
#on:
# release:
# types: [published]
-
+
jobs:
publish-to-conda:
- runs-on: ubuntu-latest
+ name: publish-to-conda (${{ matrix.python-version }}, ${{ matrix.os }})
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: ["ubuntu-latest", "macos-latest", "windows-latest"]
+ python-version: ["3.7"]
steps:
- - uses: actions/checkout@v2
- - name: publish-to-conda
- uses: fcakyon/conda-publish-action@v1.3
- continue-on-error: true
- with:
- subdir: '.conda'
- anacondatoken: ${{ secrets.ANACONDA_TOKEN }}
- platforms: 'win osx linux'
+ - uses: conda-incubator/setup-miniconda@v2
+ with:
+ auto-update-conda: true
+ python-version: ${{ matrix.python-version }}
+ - name: Conda info
+ shell: bash -l {0}
+ run: conda info
+ - name: Conda list
+ shell: pwsh
+ run: conda list
+ - name: build
+ run: conda install conda-build anaconda-client && conda build .conda
+ - name: publish
+ run: anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
From 24a8aed882db506360dadaa3954d6dff2dde0cd6 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 17:28:41 +0100
Subject: [PATCH 07/72] import sources
---
.github/workflows/publish-to-conda.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 74869e7215..6b0e1869e9 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -20,6 +20,9 @@ jobs:
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0 # Fetch all the tags
- name: Conda info
shell: bash -l {0}
run: conda info
From 8f895bb35bed65828d41a89fdf677ae9354b7d6b Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 17:45:38 +0100
Subject: [PATCH 08/72] Add conda-forge
---
.conda/meta.yaml | 28 ++++++++++++++++++++++++++
.github/workflows/publish-to-conda.yml | 9 ++++++++-
2 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/.conda/meta.yaml b/.conda/meta.yaml
index 78fce071a6..682251074e 100644
--- a/.conda/meta.yaml
+++ b/.conda/meta.yaml
@@ -37,6 +37,34 @@ test:
commands:
- pip check
+outputs:
+ - name: openfisca-france
+
+ - name: openfisca-france-scipy
+ build:
+ noarch: python
+ requirements:
+ host:
+ - python
+ run:
+ - scipy >=0.17
+ - {{ pin_subpackage('openfisca-france', exact=True) }}
+
+ - name: openfisca-france-dev
+ build:
+ noarch: python
+ requirements:
+ host:
+ - python
+ run:
+ - autopep8 ==1.5.7
+ - flake8 >=3.8.0,<3.10.0
+ - flake8-print
+ - pytest >=5.0.0, <7.0.0
+ - requests >=2.8
+ - yamllint >=1.11.1,<1.27
+ - {{ pin_subpackage('openfisca-france-scipy', exact=True) }}
+
about:
home: https://fr.openfisca.org/
# Use the SPDX identifier, e.g: GPL-2.0-only instead of GNU General Public License version 2.0
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 6b0e1869e9..6a0f76614b 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -23,6 +23,11 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Fetch all the tags
+ - name: Config conda
+ run: |
+ conda config --add channels conda-forge
+ conda config --set channel_priority strict
+ conda install conda-build anaconda-client
- name: Conda info
shell: bash -l {0}
run: conda info
@@ -30,6 +35,8 @@ jobs:
shell: pwsh
run: conda list
- name: build
- run: conda install conda-build anaconda-client && conda build .conda
+ run: |
+ mkdir /conda-bld
+ conda build --croot /conda-bld .conda
- name: publish
run: anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
From 77d8c9bb1b1d8db247bb88e1db82dc84ec7b3e65 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 17:47:32 +0100
Subject: [PATCH 09/72] Add conda-forge
---
.github/workflows/publish-to-conda.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 6a0f76614b..0ad2a6e5b9 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -24,6 +24,7 @@ jobs:
with:
fetch-depth: 0 # Fetch all the tags
- name: Config conda
+ # Add conda-forge for OpenFisca-Code
run: |
conda config --add channels conda-forge
conda config --set channel_priority strict
From 6a0be8f24c36942c1cdbf88a397337d5a9edadbe Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 17:57:38 +0100
Subject: [PATCH 10/72] fix yaml
---
.github/workflows/publish-to-conda.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 0ad2a6e5b9..bb9e725764 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -37,7 +37,7 @@ jobs:
run: conda list
- name: build
run: |
- mkdir /conda-bld
- conda build --croot /conda-bld .conda
+ mkdir /conda-bld
+ conda build --croot /conda-bld .conda
- name: publish
run: anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
From 496b90bb4ca819e4d9c0f1021fb7e820956742e1 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 18:04:30 +0100
Subject: [PATCH 11/72] change folder
---
.github/workflows/publish-to-conda.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index bb9e725764..85b42e65db 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -37,7 +37,7 @@ jobs:
run: conda list
- name: build
run: |
- mkdir /conda-bld
- conda build --croot /conda-bld .conda
+ mkdir ~/cb
+ conda build --croot ~/cb .conda
- name: publish
run: anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
From 1a42baa7addb7b8f30fa51381dfbdf85c335da52 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 20:59:28 +0100
Subject: [PATCH 12/72] activate env
---
.github/workflows/publish-to-conda.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 85b42e65db..e968dcaad0 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -28,7 +28,9 @@ jobs:
run: |
conda config --add channels conda-forge
conda config --set channel_priority strict
+ conda activate base
conda install conda-build anaconda-client
+ conda remove -y ripgrep
- name: Conda info
shell: bash -l {0}
run: conda info
From 2121c0b5ae808492851bb99bbb724a8bc0856dee Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 22:13:34 +0100
Subject: [PATCH 13/72] add conda init
---
.github/workflows/publish-to-conda.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index e968dcaad0..d102f0c2b0 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -26,6 +26,7 @@ jobs:
- name: Config conda
# Add conda-forge for OpenFisca-Code
run: |
+ conda init powershell
conda config --add channels conda-forge
conda config --set channel_priority strict
conda activate base
From 4a11df960bcf76102c8a2b4bd60e957ca334fda3 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 22:27:12 +0100
Subject: [PATCH 14/72] remove conda init
---
.github/workflows/publish-to-conda.yml | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index d102f0c2b0..2df45ddb3d 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -25,12 +25,12 @@ jobs:
fetch-depth: 0 # Fetch all the tags
- name: Config conda
# Add conda-forge for OpenFisca-Code
+ # conda init powershell
+ # conda config --add channels conda-forge
+ # conda config --set channel_priority strict
+ # conda activate base
run: |
- conda init powershell
- conda config --add channels conda-forge
- conda config --set channel_priority strict
- conda activate base
- conda install conda-build anaconda-client
+ conda install -c conda-forge conda-build anaconda-client
conda remove -y ripgrep
- name: Conda info
shell: bash -l {0}
@@ -41,6 +41,6 @@ jobs:
- name: build
run: |
mkdir ~/cb
- conda build --croot ~/cb .conda
+ conda build -c conda-forge --croot ~/cb .conda
- name: publish
run: anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
From 04fc2a02af1f6338cf74c48aee26e1a1f6467440 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 22:31:49 +0100
Subject: [PATCH 15/72] add channel
---
.github/workflows/publish-to-conda.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 2df45ddb3d..4e9a0e808f 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -20,6 +20,7 @@ jobs:
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
+ channels: conda-forge
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Fetch all the tags
From 0a12f61f0781b5f211174fef7aea575d4eccf65b Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 22:53:47 +0100
Subject: [PATCH 16/72] all in one step
---
.github/workflows/publish-to-conda.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 4e9a0e808f..79ca75eac0 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -33,6 +33,9 @@ jobs:
run: |
conda install -c conda-forge conda-build anaconda-client
conda remove -y ripgrep
+ mkdir ~/cb
+ conda build -c conda-forge --croot ~/cb .conda
+ anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
- name: Conda info
shell: bash -l {0}
run: conda info
From a1aedd0530d1c922ea3dc249ea7bc9bde64e2f1b Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 23:08:32 +0100
Subject: [PATCH 17/72] all in one step
---
.github/workflows/publish-to-conda.yml | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 79ca75eac0..8a75c77cf0 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -21,6 +21,8 @@ jobs:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
channels: conda-forge
+ auto-activate-base: true
+ activate-environment: ""
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Fetch all the tags
@@ -30,11 +32,12 @@ jobs:
# conda config --add channels conda-forge
# conda config --set channel_priority strict
# conda activate base
+ # conda remove -y ripgrep
run: |
- conda install -c conda-forge conda-build anaconda-client
- conda remove -y ripgrep
+ conda install conda-build anaconda-client
+ conda info
mkdir ~/cb
- conda build -c conda-forge --croot ~/cb .conda
+ conda build --croot ~/cb .conda
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
- name: Conda info
shell: bash -l {0}
From ab3cbb1722f1c8deb34c05573edeefc020ec18f2 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 14 Jan 2022 23:24:13 +0100
Subject: [PATCH 18/72] fix env
---
.github/workflows/publish-to-conda.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 8a75c77cf0..2bccaba6db 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -21,8 +21,8 @@ jobs:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
channels: conda-forge
- auto-activate-base: true
- activate-environment: ""
+ #auto-activate-base: true
+ activate-environment: true
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Fetch all the tags
From ecea5c8af21de0395a7303c0230582693fa21bba Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Sat, 15 Jan 2022 09:20:56 +0100
Subject: [PATCH 19/72] build and upload
---
.github/workflows/publish-to-conda.yml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 2bccaba6db..cb307647bd 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -33,12 +33,13 @@ jobs:
# conda config --set channel_priority strict
# conda activate base
# conda remove -y ripgrep
+ # anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
run: |
conda install conda-build anaconda-client
conda info
mkdir ~/cb
- conda build --croot ~/cb .conda
- anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
+ conda config --set anaconda_upload yes
+ conda build -t ${{ secrets.ANACONDA_TOKEN }} -u openfisca --croot ~/cb .conda
- name: Conda info
shell: bash -l {0}
run: conda info
From 4400b01e6782331ff82933b2a96e0be7bdd587df Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Sat, 15 Jan 2022 09:24:55 +0100
Subject: [PATCH 20/72] build and upload
---
.github/workflows/publish-to-conda.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index cb307647bd..fce132791d 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -39,7 +39,7 @@ jobs:
conda info
mkdir ~/cb
conda config --set anaconda_upload yes
- conda build -t ${{ secrets.ANACONDA_TOKEN }} -u openfisca --croot ~/cb .conda
+ conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca --croot ~/cb .conda
- name: Conda info
shell: bash -l {0}
run: conda info
From a9010a461f6dcf9ebf23888147e07767b36ed3cc Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Sat, 15 Jan 2022 09:35:34 +0100
Subject: [PATCH 21/72] remove build folder
---
.github/workflows/publish-to-conda.yml | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index fce132791d..7cbacaa7fd 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -13,7 +13,9 @@ jobs:
strategy:
fail-fast: false
matrix:
- os: ["ubuntu-latest", "macos-latest", "windows-latest"]
+ # , "macos-latest", "windows-latest" : Windows failed due to too long filename,
+ # See https://github.com/conda-forge/staged-recipes/issues/17519
+ os: ["ubuntu-latest"]
python-version: ["3.7"]
steps:
- uses: conda-incubator/setup-miniconda@v2
@@ -34,12 +36,14 @@ jobs:
# conda activate base
# conda remove -y ripgrep
# anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
+ # mkdir ~/cb
+ # --croot ~/cb
run: |
conda install conda-build anaconda-client
conda info
- mkdir ~/cb
+
conda config --set anaconda_upload yes
- conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca --croot ~/cb .conda
+ conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
- name: Conda info
shell: bash -l {0}
run: conda info
From c4285c0d6a331828676a616c2adc6818bad6361a Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Sat, 15 Jan 2022 09:48:00 +0100
Subject: [PATCH 22/72] Linux upload works!
---
.github/workflows/publish-to-conda.yml | 26 ++------------------------
1 file changed, 2 insertions(+), 24 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 7cbacaa7fd..f14101da91 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -22,37 +22,15 @@ jobs:
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
+ # Add conda-forge for OpenFisca-Core
channels: conda-forge
- #auto-activate-base: true
activate-environment: true
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Fetch all the tags
- - name: Config conda
- # Add conda-forge for OpenFisca-Code
- # conda init powershell
- # conda config --add channels conda-forge
- # conda config --set channel_priority strict
- # conda activate base
- # conda remove -y ripgrep
- # anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
- # mkdir ~/cb
- # --croot ~/cb
+ - name: Config build
run: |
conda install conda-build anaconda-client
conda info
-
conda config --set anaconda_upload yes
conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
- - name: Conda info
- shell: bash -l {0}
- run: conda info
- - name: Conda list
- shell: pwsh
- run: conda list
- - name: build
- run: |
- mkdir ~/cb
- conda build -c conda-forge --croot ~/cb .conda
- - name: publish
- run: anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u openfisca
From 4143a0fa0ed743b0f3f3f85aadb15f8926489a64 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Sat, 15 Jan 2022 09:53:58 +0100
Subject: [PATCH 23/72] try windows
---
.github/workflows/publish-to-conda.yml | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index f14101da91..06006b326d 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -15,9 +15,10 @@ jobs:
matrix:
# , "macos-latest", "windows-latest" : Windows failed due to too long filename,
# See https://github.com/conda-forge/staged-recipes/issues/17519
- os: ["ubuntu-latest"]
+ os: ["windows-latest"] # ubuntu-latest
python-version: ["3.7"]
steps:
+ - continue-on-error: true
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
@@ -29,8 +30,12 @@ jobs:
with:
fetch-depth: 0 # Fetch all the tags
- name: Config build
+ run: conda install conda-build
+ - name: rg
+ run: where rg
+ - name: gcm rg
+ run: gcm rg
+ - name: Conda build
run: |
- conda install conda-build anaconda-client
- conda info
conda config --set anaconda_upload yes
- conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
+ # conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
From 4215ce82a3b8c82558799cf0688d80f70d4bbf43 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Sat, 15 Jan 2022 11:12:18 +0100
Subject: [PATCH 24/72] try windows
---
.github/workflows/publish-to-conda.yml | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 06006b326d..395b8b6b11 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -36,6 +36,5 @@ jobs:
- name: gcm rg
run: gcm rg
- name: Conda build
- run: |
- conda config --set anaconda_upload yes
- # conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
+ run: conda config --set anaconda_upload yes
+ # conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
From 32612025dab7481b37c9763b677c7ad88b205cf0 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Sat, 15 Jan 2022 12:20:40 +0100
Subject: [PATCH 25/72] move continue-on-error
---
.github/workflows/publish-to-conda.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 395b8b6b11..6b0cc0827a 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -18,7 +18,6 @@ jobs:
os: ["windows-latest"] # ubuntu-latest
python-version: ["3.7"]
steps:
- - continue-on-error: true
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
@@ -32,8 +31,10 @@ jobs:
- name: Config build
run: conda install conda-build
- name: rg
+ continue-on-error: true
run: where rg
- name: gcm rg
+ continue-on-error: true
run: gcm rg
- name: Conda build
run: conda config --set anaconda_upload yes
From 83920f89e345e005ea619f7ad327bba57b63cad6 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Sat, 15 Jan 2022 12:37:58 +0100
Subject: [PATCH 26/72] Desactivate rg
---
.github/workflows/publish-to-conda.yml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 6b0cc0827a..6d9ed00237 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -37,5 +37,7 @@ jobs:
continue-on-error: true
run: gcm rg
- name: Conda build
- run: conda config --set anaconda_upload yes
- # conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
+ run: |
+ conda config --set anaconda_upload yes
+ mv C:\Miniconda\envs\true\Library\bin\rg.exe C:\Miniconda\envs\true\Library\bin\rg-desactivate.exe
+ conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
From 4f8f0c8bcf15b200a26b12eb48abd5de0955ea62 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Sun, 16 Jan 2022 08:36:10 +0100
Subject: [PATCH 27/72] Add macOS, remove Windows
---
.github/workflows/publish-to-conda.yml | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 6d9ed00237..04f20f3f08 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -13,9 +13,9 @@ jobs:
strategy:
fail-fast: false
matrix:
- # , "macos-latest", "windows-latest" : Windows failed due to too long filename,
+ # , "windows-latest" : Windows failed due to too long filename,
# See https://github.com/conda-forge/staged-recipes/issues/17519
- os: ["windows-latest"] # ubuntu-latest
+ os: ["macos-latest", "ubuntu-latest"] # ubuntu-latest
python-version: ["3.7"]
steps:
- uses: conda-incubator/setup-miniconda@v2
@@ -28,16 +28,9 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Fetch all the tags
- - name: Config build
- run: conda install conda-build
- - name: rg
- continue-on-error: true
- run: where rg
- - name: gcm rg
- continue-on-error: true
- run: gcm rg
- - name: Conda build
+ - name: Conda Config
run: |
+ conda install conda-build
conda config --set anaconda_upload yes
- mv C:\Miniconda\envs\true\Library\bin\rg.exe C:\Miniconda\envs\true\Library\bin\rg-desactivate.exe
- conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
+ - name: Conda build
+ run: conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
From dc7fe143a00a239e2f02b5572ba7eeeab63e5890 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Mon, 17 Jan 2022 09:55:27 +0100
Subject: [PATCH 28/72] Conda : Get info from Pypi
---
.conda/meta.yaml | 175 +++++++++++++------------
.github/get_pypi_info.py | 39 ++++--
.github/workflows/publish-to-conda.yml | 2 +
3 files changed, 118 insertions(+), 98 deletions(-)
diff --git a/.conda/meta.yaml b/.conda/meta.yaml
index 682251074e..07b9642868 100644
--- a/.conda/meta.yaml
+++ b/.conda/meta.yaml
@@ -1,87 +1,88 @@
-{% set name = "OpenFisca-France" %}
-{% set version = "102.0.0" %}
-
-package:
- name: {{ name|lower }}
- version: {{ version }}
-
-source:
- #url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.linux-x86_64.tar.gz
- #url: http://benemie.fr/upload/OpenFisca-France-102.0.0-120.tar.gz
- url: https://files.pythonhosted.org/packages/2e/a7/d0adde13c9c714308b37d6e1787df01305b0b226441e37a3f0a21947e0a6/OpenFisca-France-{{ version }}.tar.gz
- # url: https://test-files.pythonhosted.org/packages/74/0d/ed6f71724aab83d7dcf09f3833a5c71a2f0b3df79c92aba6bad43a4a22db/OpenFisca-France-{{ version }}.tar.gz
- sha256: '7b2c0e126d8a2fd82b30b841786b864d80cbef7fdedfc472f5878ef72fba9a5d'
- # sha256 is the preferred checksum `openssl sha256 `
-
-
-build:
- noarch: python
- number: 0
- script: "{{ PYTHON }} -m pip install . -vv"
-
-requirements:
- host:
- - python
- - pip
- run:
- - python >=3.6,<4.0
- - OpenFisca-Core >=35.2.0,<36.0
-
-
-test:
- imports:
- - openfisca_france
- requires:
- - pip
- - pytest >=4.4.1,<6.0.0 # To be Removed when OF-Core as been updated
- commands:
- - pip check
-
-outputs:
- - name: openfisca-france
-
- - name: openfisca-france-scipy
- build:
- noarch: python
- requirements:
- host:
- - python
- run:
- - scipy >=0.17
- - {{ pin_subpackage('openfisca-france', exact=True) }}
-
- - name: openfisca-france-dev
- build:
- noarch: python
- requirements:
- host:
- - python
- run:
- - autopep8 ==1.5.7
- - flake8 >=3.8.0,<3.10.0
- - flake8-print
- - pytest >=5.0.0, <7.0.0
- - requests >=2.8
- - yamllint >=1.11.1,<1.27
- - {{ pin_subpackage('openfisca-france-scipy', exact=True) }}
-
-about:
- home: https://fr.openfisca.org/
- # Use the SPDX identifier, e.g: GPL-2.0-only instead of GNU General Public License version 2.0
- # See https://spdx.org/licenses/
- license_family: AGPL
- license: AGPL-3.0-only
- license_file: LICENSE.AGPL.txt
- summary: "French tax and benefit system for OpenFisca"
- description: |
- OpenFisca is a versatile microsimulation free software.
- This repository contains the OpenFisca model of the French tax and benefit system.
- Therefore, the working language here is French.
- doc_url: https://fr.openfisca.org/
- dev_url: https://github.com/openfisca/openfisca-france/
-
-extra:
- recipe-maintainers:
- # GitHub IDs for maintainers of the recipe.
- # Always check with the people listed below if they are OK becoming maintainers of the recipe. (There will be spam!)
- - benoit-cty
+###############################################################################
+## Fichier de description du package pour Anaconda.org
+## Attention, les chaines PYPI_VERSION, PYPI_URL et PYPI_SHA256 sont remplacées
+## par la CI, il faut les conserver.
+###############################################################################
+
+{% set name = "OpenFisca-France" %}
+{% set version = "PYPI_VERSION" %}
+
+package:
+ name: {{ name|lower }}
+ version: {{ version }}
+
+source:
+ url: PYPI_URL
+ sha256: PYPI_SHA256
+
+build:
+ noarch: python
+ number: 0
+ script: "{{ PYTHON }} -m pip install . -vv"
+
+requirements:
+ host:
+ - python
+ - pip
+ run:
+ - python >=3.6,<4.0
+ - OpenFisca-Core >=35.2.0,<36.0
+
+
+test:
+ imports:
+ - openfisca_france
+ requires:
+ - pip
+ - pytest >=4.4.1,<6.0.0 # To be Removed when OF-Core as been updated
+ commands:
+ - pip check
+
+outputs:
+ - name: openfisca-france
+
+ - name: openfisca-france-scipy
+ build:
+ noarch: python
+ requirements:
+ host:
+ - python
+ run:
+ - scipy >=0.17
+ - {{ pin_subpackage('openfisca-france', exact=True) }}
+
+ - name: openfisca-france-dev
+ build:
+ noarch: python
+ requirements:
+ host:
+ - python
+ run:
+ - autopep8 ==1.5.7
+ - flake8 >=3.8.0,<3.10.0
+ - flake8-print
+ - pytest >=5.0.0, <7.0.0
+ - requests >=2.8
+ - yamllint >=1.11.1,<1.27
+ - {{ pin_subpackage('openfisca-france-scipy', exact=True) }}
+
+about:
+ home: https://fr.openfisca.org/
+ # Use the SPDX identifier, e.g: GPL-2.0-only instead of GNU General Public License version 2.0
+ # See https://spdx.org/licenses/
+ license_family: AGPL
+ license: AGPL-3.0-only
+ license_file: LICENSE.AGPL.txt
+ summary: "French tax and benefit system for OpenFisca"
+ description: |
+ OpenFisca is a versatile microsimulation free software.
+ This repository contains the OpenFisca model of the French tax and benefit system.
+ Therefore, the working language here is French.
+ doc_url: https://fr.openfisca.org/
+ dev_url: https://github.com/openfisca/openfisca-france/
+
+extra:
+ recipe-maintainers:
+ # GitHub IDs for maintainers of the recipe.
+ # Always check with the people listed below if they are OK becoming maintainers of the recipe. (There will be spam!)
+ - benoit-cty
diff --git a/.github/get_pypi_info.py b/.github/get_pypi_info.py
index d25bec088e..8249bc07fb 100644
--- a/.github/get_pypi_info.py
+++ b/.github/get_pypi_info.py
@@ -1,23 +1,40 @@
import requests
-def get_info(package_name: str = '') -> dict:
- '''
+def get_info(package_name: str = "") -> dict:
+ """
Get minimal informations needed by .conda/meta.yaml from PyPi JSON API.
::package_name:: Name of package to get infos from.
::return:: A dict with last_version, url and sha256
- '''
- resp = requests.get(f'https://pypi.org/pypi/{package_name}/json').json()
- version = resp['info']['version']
- # print(resp['releases'][version][0])
- for v in resp['releases'][version]:
+ """
+ resp = requests.get(f"https://pypi.org/pypi/{package_name}/json").json()
+ version = resp["info"]["version"]
+ # print(resp["releases"][version][0])
+ for v in resp["releases"][version]:
if v["packagetype"] == "sdist":
return {
"last_version": version,
- "url": v['url'],
- "sha256": v['digests']['sha256']
+ "url": v["url"],
+ "sha256": v["digests"]["sha256"]
}
-info = get_info('OpenFisca-France')
-print(info) # noqa: T001
+def replace_in_file(filepath: str, info: dict):
+ '''
+ ::filepath:: Chemin vers le fichier meta.yaml, contenant le nom de fichier
+ ::info:: Dictionnaire contenant les informations à renseigner
+ '''
+ with open(filepath, "rt") as fin:
+ meta = fin.read()
+ # Replace with info from PyPi
+ meta = meta.replace("PYPI_VERSION", info["last_version"])
+ meta = meta.replace("PYPI_URL", info["url"])
+ meta = meta.replace("PYPI_SHA256", info["sha256"])
+ with open(filepath, "wt") as fout:
+ fout.write(meta)
+ print(f"File {filepath} writen.") # noqa: T001
+
+
+info = get_info("OpenFisca-France")
+print("Information sur le dernier package PyPi:", info) # noqa: T001
+replace_in_file(".conda/meta.yaml", info)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 04f20f3f08..8cd325358e 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -28,6 +28,8 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Fetch all the tags
+ - name: Update meta.yaml
+ run: python3 .github/get_pypi_info.py
- name: Conda Config
run: |
conda install conda-build
From 17ac3791bc68528df98eb498a330ead2cddc74bd Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Mon, 17 Jan 2022 10:09:23 +0100
Subject: [PATCH 29/72] Add request
---
.github/workflows/publish-to-conda.yml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 8cd325358e..f6e84a20b8 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -29,7 +29,9 @@ jobs:
with:
fetch-depth: 0 # Fetch all the tags
- name: Update meta.yaml
- run: python3 .github/get_pypi_info.py
+ run: |
+ python3 -m pip install requests
+ python3 .github/get_pypi_info.py
- name: Conda Config
run: |
conda install conda-build
From b9ae964b8824293a6f9d9602a2f877209e234374 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Mon, 17 Jan 2022 12:49:06 +0100
Subject: [PATCH 30/72] remove macos & add client
---
.github/workflows/publish-to-conda.yml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index f6e84a20b8..24fd1109fd 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -15,7 +15,7 @@ jobs:
matrix:
# , "windows-latest" : Windows failed due to too long filename,
# See https://github.com/conda-forge/staged-recipes/issues/17519
- os: ["macos-latest", "ubuntu-latest"] # ubuntu-latest
+ os: ["ubuntu-latest"] # "macos-latest", ubuntu-latest
python-version: ["3.7"]
steps:
- uses: conda-incubator/setup-miniconda@v2
@@ -34,7 +34,8 @@ jobs:
python3 .github/get_pypi_info.py
- name: Conda Config
run: |
- conda install conda-build
+ conda install conda-build anaconda-client
+ conda info
conda config --set anaconda_upload yes
- name: Conda build
run: conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
From 18ebe64795ee5366b45d011b464ae4aa85b21653 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Mon, 17 Jan 2022 15:41:45 +0100
Subject: [PATCH 31/72] bump
---
.conda/README.md | 32 +++++++++++++++++---------------
CHANGELOG.md | 18 ++++++++++++++----
2 files changed, 31 insertions(+), 19 deletions(-)
diff --git a/.conda/README.md b/.conda/README.md
index 6e1f928bda..8070d93cdc 100644
--- a/.conda/README.md
+++ b/.conda/README.md
@@ -2,22 +2,9 @@
Installation de [Conda](https://www.anaconda.com/products/individual)
-## Mise à jour du paquet sur Conda
-Pour créer un nouveau paquet il faut faire les actions suivantes à la racine du projet:
-
-- Editer `.conda/meta.yaml` pour mettre à jour:
- - Le numéro de version
- - Le hash 256
- - L'url du paquet sur PyPi si nécessaire
- - Ces informations sont données par le script `.github/get_pypi_info.py`
-### Upload manuel du package
-- `conda build --croot d:\tmp .conda` L'option `--croot ` est nécessaire sous Windows à cause des chemins trop long.
-- `conda install -c anaconda anaconda-client` Pour installer l'outil en ligne de commande.
-- `anaconda login`
-- `anaconda upload d:\tmp\noarch\openfisca-france-102.0.0-py_0.tar.bz2`
### Upload automatique du package
@@ -25,7 +12,22 @@ L'upload automatique est fait par la CI, mais il faut que le fichier meta.yaml s
## Procédure initiale
-- Création d'un compte
+- Création d'un compte sur https://anaconda.org
- Création d'un token sur https://anaconda.org/openfisca.org/settings/access avec le droit "Allow write access to the API site". Attention il expire le 2023/01/13
- Mis en place du token dans GitHub action sous le nom de variable ANACONDA_TOKEN
-- Mise en place
+
+### Mise à jour du paquet sur Conda
+
+Pour créer un nouveau paquet il faut faire les actions suivantes à la racine du projet:
+
+- Editer `.conda/meta.yaml` pour mettre à jour:
+ - Le numéro de version
+ - Le hash 256
+ - L'url du paquet sur PyPi si nécessaire
+ - Ces informations sont données par le script `.github/get_pypi_info.py`
+### Upload manuel du package
+
+- `conda build --croot c:\tmp .conda` L'option `--croot ` est nécessaire sous Windows à cause des chemins trop long.
+- `conda install -c anaconda anaconda-client` Pour installer l'outil en ligne de commande.
+- `anaconda login`
+- `anaconda upload c:\tmp\noarch\openfisca-france-102.0.0-py_0.tar.bz2`
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 71f608735e..0f87b7700d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,9 +15,19 @@ git log --oneline 500832d46fc6^..281c8b368c1bceb| grep "variable_name"
# 105.0.0 [#1789](https://github.com/openfisca/openfisca-france/pull/1789)
-* Amélioration technique.
+# XXX.0.1 [#1786](https://github.com/openfisca/openfisca-france/pull/1786)
+
+* Amélioration technique.
+* Périodes concernées : aucune.
+* Zones impactées : aucune.
+* Détails :
+ - Ajout de la publication vers [conda](https://anaconda.org/search?q=openfisca-france)
+
+# 103.0.0 [#1772](https://github.com/openfisca/openfisca-france/pull/1772)
+
+* Amélioration technique.
* Périodes concernées : toutes.
-* Zones impactées :
+* Zones impactées :
- `parameters/prestations_sociales/prestations_familiales/prestations_generales`
- `parameters/prestations_sociales/prestations_familiales/def_biactif`
- `parameters/prestations_sociales/prestations_familiales/def_pac`
@@ -27,7 +37,7 @@ git log --oneline 500832d46fc6^..281c8b368c1bceb| grep "variable_name"
* Détails :
- Harmonisation des fichiers avec les barèmes-ipp
- Tous les chemins sont updatés pour ne pas casser le code
- -
+ -
* Guide pour la migration: Vous pouvez chercher où sont passés vos fichiers avec la commande suivante:
git log --oneline 66724eff27e8feb0^..60136e4a68e04 | grep "variable_name"
@@ -43,7 +53,7 @@ git log --oneline 66724eff27e8feb0^..60136e4a68e04 | grep "variable_name"
* Évolution du système socio-fiscal
* Périodes concernées : à partir du 09/06/2021.
-* Zones impactées :
+* Zones impactées :
* model/prestations/aide_mobilite.py
* model/prestations/agepi.py
* model/revenus/activite/salarie.py
From 7a86eecf89de2bf7bd8cc5d181119e54a5eacd2e Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Mon, 17 Jan 2022 20:43:50 +0100
Subject: [PATCH 32/72] Only on release
---
.github/workflows/publish-to-conda.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 24fd1109fd..5e84c8c44a 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -1,10 +1,10 @@
name: publish_conda
-on: [push]
+# on: [push]
-#on:
-# release:
-# types: [published]
+on:
+ release:
+ types: [published]
jobs:
publish-to-conda:
From 4a08d47a21433ec0676ce73f31cc47bf0dbaee20 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 08:41:18 +0100
Subject: [PATCH 33/72] =?UTF-8?q?Script=20plus=20g=C3=A9n=C3=A9rique?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/get_pypi_info.py | 19 +++++++++++++------
.github/workflows/publish-to-conda.yml | 4 ++--
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/.github/get_pypi_info.py b/.github/get_pypi_info.py
index 8249bc07fb..60aacf7ea6 100644
--- a/.github/get_pypi_info.py
+++ b/.github/get_pypi_info.py
@@ -1,3 +1,4 @@
+import argparse
import requests
@@ -7,6 +8,8 @@ def get_info(package_name: str = "") -> dict:
::package_name:: Name of package to get infos from.
::return:: A dict with last_version, url and sha256
"""
+ if package_name == "":
+ raise ValueError("Package name not provided.")
resp = requests.get(f"https://pypi.org/pypi/{package_name}/json").json()
version = resp["info"]["version"]
# print(resp["releases"][version][0])
@@ -21,8 +24,8 @@ def get_info(package_name: str = "") -> dict:
def replace_in_file(filepath: str, info: dict):
'''
- ::filepath:: Chemin vers le fichier meta.yaml, contenant le nom de fichier
- ::info:: Dictionnaire contenant les informations à renseigner
+ ::filepath:: Path to meta.yaml, with filename
+ ::info:: Dict with information to populate
'''
with open(filepath, "rt") as fin:
meta = fin.read()
@@ -34,7 +37,11 @@ def replace_in_file(filepath: str, info: dict):
fout.write(meta)
print(f"File {filepath} writen.") # noqa: T001
-
-info = get_info("OpenFisca-France")
-print("Information sur le dernier package PyPi:", info) # noqa: T001
-replace_in_file(".conda/meta.yaml", info)
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser()
+ parser.add_argument("-p", "--package", type=str, default="", required=True, help="The name of the package")
+ parser.add_argument("-f", "--filename", type=str, default=".conda/meta.yaml",help="Path to meta.yaml, with filename")
+ args = parser.parse_args()
+ info = get_info(args.package)
+ print("Information of the last published PyPi package :", info) # noqa: T001
+ replace_in_file(args.filename, info)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 5e84c8c44a..343fd0a91e 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -30,8 +30,8 @@ jobs:
fetch-depth: 0 # Fetch all the tags
- name: Update meta.yaml
run: |
- python3 -m pip install requests
- python3 .github/get_pypi_info.py
+ python3 -m pip install requests argparse
+ python3 .github/get_pypi_info.py -p OpenFisca-France
- name: Conda Config
run: |
conda install conda-build anaconda-client
From 4937c69eff506a59af399e4ba6bbee531fb1fa1c Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 08:45:46 +0100
Subject: [PATCH 34/72] fix style
---
.github/get_pypi_info.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.github/get_pypi_info.py b/.github/get_pypi_info.py
index 60aacf7ea6..8509c96a3b 100644
--- a/.github/get_pypi_info.py
+++ b/.github/get_pypi_info.py
@@ -37,10 +37,11 @@ def replace_in_file(filepath: str, info: dict):
fout.write(meta)
print(f"File {filepath} writen.") # noqa: T001
+
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("-p", "--package", type=str, default="", required=True, help="The name of the package")
- parser.add_argument("-f", "--filename", type=str, default=".conda/meta.yaml",help="Path to meta.yaml, with filename")
+ parser.add_argument("-f", "--filename", type=str, default=".conda/meta.yaml", help="Path to meta.yaml, with filename")
args = parser.parse_args()
info = get_info(args.package)
print("Information of the last published PyPi package :", info) # noqa: T001
From d678ecad6c80bad72cec93f63f8f4afca0591028 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 08:58:47 +0100
Subject: [PATCH 35/72] Test CI
---
.github/workflows/publish-to-conda.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
index 343fd0a91e..a2e5724fc9 100644
--- a/.github/workflows/publish-to-conda.yml
+++ b/.github/workflows/publish-to-conda.yml
@@ -1,10 +1,10 @@
name: publish_conda
-# on: [push]
+on: [push]
-on:
- release:
- types: [published]
+# on:
+# release:
+# types: [published]
jobs:
publish-to-conda:
From 31c2fa11521d0f1a3a2a80b7d79c41c7864a53d6 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 09:25:24 +0100
Subject: [PATCH 36/72] Move license
---
.conda/LICENSE.AGPL.txt | 661 ----------------------------------------
.conda/meta.yaml | 2 +-
2 files changed, 1 insertion(+), 662 deletions(-)
delete mode 100644 .conda/LICENSE.AGPL.txt
diff --git a/.conda/LICENSE.AGPL.txt b/.conda/LICENSE.AGPL.txt
deleted file mode 100644
index ac4d0a3bd0..0000000000
--- a/.conda/LICENSE.AGPL.txt
+++ /dev/null
@@ -1,661 +0,0 @@
- GNU AFFERO GENERAL PUBLIC LICENSE
- Version 3, 19 November 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU Affero General Public License is a free, copyleft license for
-software and other kinds of works, specifically designed to ensure
-cooperation with the community in the case of network server software.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-our General Public Licenses are intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- Developers that use our General Public Licenses protect your rights
-with two steps: (1) assert copyright on the software, and (2) offer
-you this License which gives you legal permission to copy, distribute
-and/or modify the software.
-
- A secondary benefit of defending all users' freedom is that
-improvements made in alternate versions of the program, if they
-receive widespread use, become available for other developers to
-incorporate. Many developers of free software are heartened and
-encouraged by the resulting cooperation. However, in the case of
-software used on network servers, this result may fail to come about.
-The GNU General Public License permits making a modified version and
-letting the public access it on a server without ever releasing its
-source code to the public.
-
- The GNU Affero General Public License is designed specifically to
-ensure that, in such cases, the modified source code becomes available
-to the community. It requires the operator of a network server to
-provide the source code of the modified version running there to the
-users of that server. Therefore, public use of a modified version, on
-a publicly accessible server, gives the public access to the source
-code of the modified version.
-
- An older license, called the Affero General Public License and
-published by Affero, was designed to accomplish similar goals. This is
-a different license, not a version of the Affero GPL, but Affero has
-released a new version of the Affero GPL which permits relicensing under
-this license.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU Affero General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Remote Network Interaction; Use with the GNU General Public License.
-
- Notwithstanding any other provision of this License, if you modify the
-Program, your modified version must prominently offer all users
-interacting with it remotely through a computer network (if your version
-supports such interaction) an opportunity to receive the Corresponding
-Source of your version by providing access to the Corresponding Source
-from a network server at no charge, through some standard or customary
-means of facilitating copying of software. This Corresponding Source
-shall include the Corresponding Source for any work covered by version 3
-of the GNU General Public License that is incorporated pursuant to the
-following paragraph.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the work with which it is combined will remain governed by version
-3 of the GNU General Public License.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU Affero General Public License from time to time. Such new versions
-will be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU Affero General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU Affero General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU Affero General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published
- by the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If your software can interact with users remotely through a computer
-network, you should also make sure that it provides a way for users to
-get its source. For example, if your program is a web application, its
-interface could display a "Source" link that leads users to an archive
-of the code. There are many ways you could offer source, and different
-solutions will be better for different programs; see section 13 for the
-specific requirements.
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU AGPL, see
-.
\ No newline at end of file
diff --git a/.conda/meta.yaml b/.conda/meta.yaml
index 07b9642868..45259e9821 100644
--- a/.conda/meta.yaml
+++ b/.conda/meta.yaml
@@ -72,7 +72,7 @@ about:
# See https://spdx.org/licenses/
license_family: AGPL
license: AGPL-3.0-only
- license_file: LICENSE.AGPL.txt
+ license_file: ../LICENSE.AGPL.txt
summary: "French tax and benefit system for OpenFisca"
description: |
OpenFisca is a versatile microsimulation free software.
From 26191a2f8a5535309f5e9897cf44d4892ba59e2f Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 09:31:21 +0100
Subject: [PATCH 37/72] Try to remove pytest
---
.conda/meta.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.conda/meta.yaml b/.conda/meta.yaml
index 45259e9821..7c4857bd67 100644
--- a/.conda/meta.yaml
+++ b/.conda/meta.yaml
@@ -34,7 +34,7 @@ test:
- openfisca_france
requires:
- pip
- - pytest >=4.4.1,<6.0.0 # To be Removed when OF-Core as been updated
+ #- pytest >=4.4.1,<6.0.0 # To be Removed when OF-Core as been updated
commands:
- pip check
From c860084906545e94fdb97fa0750ad6e251dc598d Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 09:42:11 +0100
Subject: [PATCH 38/72] Review changes
---
.conda/meta.yaml | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/.conda/meta.yaml b/.conda/meta.yaml
index 7c4857bd67..e2594cafed 100644
--- a/.conda/meta.yaml
+++ b/.conda/meta.yaml
@@ -68,8 +68,6 @@ outputs:
about:
home: https://fr.openfisca.org/
- # Use the SPDX identifier, e.g: GPL-2.0-only instead of GNU General Public License version 2.0
- # See https://spdx.org/licenses/
license_family: AGPL
license: AGPL-3.0-only
license_file: ../LICENSE.AGPL.txt
@@ -77,12 +75,5 @@ about:
description: |
OpenFisca is a versatile microsimulation free software.
This repository contains the OpenFisca model of the French tax and benefit system.
- Therefore, the working language here is French.
doc_url: https://fr.openfisca.org/
dev_url: https://github.com/openfisca/openfisca-france/
-
-extra:
- recipe-maintainers:
- # GitHub IDs for maintainers of the recipe.
- # Always check with the people listed below if they are OK becoming maintainers of the recipe. (There will be spam!)
- - benoit-cty
From 34d4bf1742c74b5bc1496963ef5269be38bcc952 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 09:55:55 +0100
Subject: [PATCH 39/72] Move in main workflow
---
.github/workflows/publish-to-conda.yml | 41 --------------------------
.github/workflows/workflow.yml | 34 +++++++++++++++++++++
2 files changed, 34 insertions(+), 41 deletions(-)
delete mode 100644 .github/workflows/publish-to-conda.yml
diff --git a/.github/workflows/publish-to-conda.yml b/.github/workflows/publish-to-conda.yml
deleted file mode 100644
index a2e5724fc9..0000000000
--- a/.github/workflows/publish-to-conda.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-name: publish_conda
-
-on: [push]
-
-# on:
-# release:
-# types: [published]
-
-jobs:
- publish-to-conda:
- name: publish-to-conda (${{ matrix.python-version }}, ${{ matrix.os }})
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- # , "windows-latest" : Windows failed due to too long filename,
- # See https://github.com/conda-forge/staged-recipes/issues/17519
- os: ["ubuntu-latest"] # "macos-latest", ubuntu-latest
- python-version: ["3.7"]
- steps:
- - uses: conda-incubator/setup-miniconda@v2
- with:
- auto-update-conda: true
- python-version: ${{ matrix.python-version }}
- # Add conda-forge for OpenFisca-Core
- channels: conda-forge
- activate-environment: true
- - uses: actions/checkout@v2
- with:
- fetch-depth: 0 # Fetch all the tags
- - name: Update meta.yaml
- run: |
- python3 -m pip install requests argparse
- python3 .github/get_pypi_info.py -p OpenFisca-France
- - name: Conda Config
- run: |
- conda install conda-build anaconda-client
- conda info
- conda config --set anaconda_upload yes
- - name: Conda build
- run: conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index c29f955f00..3179094a11 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -190,3 +190,37 @@ jobs:
run: twine upload dist/* --username $PYPI_USERNAME --password $PYPI_PASSWORD
- name: Publish a git tag
run: "${GITHUB_WORKSPACE}/.github/publish-git-tag.sh"
+
+ publish-to-conda:
+ name: publish-to-conda (${{ matrix.python-version }}, ${{ matrix.os }})
+ runs-on: ${{ matrix.os }}
+ needs: [ deploy ]
+ strategy:
+ fail-fast: false
+ matrix:
+ # , "windows-latest" : Windows failed due to too long filename,
+ # See https://github.com/conda-forge/staged-recipes/issues/17519
+ os: ["ubuntu-latest"] # "macos-latest", ubuntu-latest
+ python-version: ["3.7"]
+ steps:
+ - uses: conda-incubator/setup-miniconda@v2
+ with:
+ auto-update-conda: true
+ python-version: ${{ matrix.python-version }}
+ # Add conda-forge for OpenFisca-Core
+ channels: conda-forge
+ activate-environment: true
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0 # Fetch all the tags
+ - name: Update meta.yaml
+ run: |
+ python3 -m pip install requests argparse
+ python3 .github/get_pypi_info.py -p OpenFisca-France
+ - name: Conda Config
+ run: |
+ conda install conda-build anaconda-client
+ conda info
+ conda config --set anaconda_upload yes
+ - name: Conda build
+ run: conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
From 87c68fc1790bba0d35aab093b1439cb04abf4369 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 10:05:09 +0100
Subject: [PATCH 40/72] Add test matrix on test job
---
.github/workflows/workflow.yml | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index 3179094a11..7f82f7a2b3 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -57,12 +57,17 @@ jobs:
test-python:
runs-on: ubuntu-latest
needs: [ build ]
+ strategy:
+ fail-fast: false
+ matrix:
+ os: ["ubuntu-latest", "macos-latest", "windows-latest"]
+ python-version: ["3.7.12", "3.8", "3.9"]
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7.12
+ python-version: ${{ matrix.python-version }}
- name: Cache build
id: restore-build
uses: actions/cache@v2
@@ -198,9 +203,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- # , "windows-latest" : Windows failed due to too long filename,
- # See https://github.com/conda-forge/staged-recipes/issues/17519
- os: ["ubuntu-latest"] # "macos-latest", ubuntu-latest
+ os: ["ubuntu-latest"]
python-version: ["3.7"]
steps:
- uses: conda-incubator/setup-miniconda@v2
From b198b8535566947e9199199f96e016697a7e2f34 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 10:16:59 +0100
Subject: [PATCH 41/72] Matrix cache
---
.github/workflows/workflow.yml | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index 7f82f7a2b3..c7c625f093 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -4,7 +4,11 @@ on: [push, pull_request]
jobs:
build:
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: ["ubuntu-latest", "macos-latest", "windows-latest"]
+ python-version: ["3.7.12", "3.8", "3.9"]
steps:
- name: Checkout
uses: actions/checkout@v2
@@ -17,10 +21,10 @@ jobs:
uses: actions/cache@v2
with:
path: ${{ env.pythonLocation }}
- key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}
+ key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-${{ matrix.os }}
restore-keys: | # in case of a cache miss (systematically unless the same commit is built repeatedly), the keys below will be used to restore dependencies from previous builds, and the cache will be stored at the end of the job, making up-to-date dependencies available for all jobs of the workflow; see more at https://docs.github.com/en/actions/advanced-guides/caching-dependencies-to-speed-up-workflows#example-using-the-cache-action
- build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}
- build-${{ env.pythonLocation }}-
+ build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ matrix.os }}
+ build-${{ env.pythonLocation }}-${{ matrix.os }}
- name: Build package
run: make build
- name: Cache release
@@ -55,7 +59,7 @@ jobs:
run: "${GITHUB_WORKSPACE}/.github/lint-changed-yaml-tests.sh"
test-python:
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.os }}
needs: [ build ]
strategy:
fail-fast: false
@@ -197,19 +201,16 @@ jobs:
run: "${GITHUB_WORKSPACE}/.github/publish-git-tag.sh"
publish-to-conda:
- name: publish-to-conda (${{ matrix.python-version }}, ${{ matrix.os }})
- runs-on: ${{ matrix.os }}
+ name: publish-to-conda
+ runs-on: "ubuntu-latest"
needs: [ deploy ]
strategy:
fail-fast: false
- matrix:
- os: ["ubuntu-latest"]
- python-version: ["3.7"]
steps:
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
- python-version: ${{ matrix.python-version }}
+ python-version: "3.7"
# Add conda-forge for OpenFisca-Core
channels: conda-forge
activate-environment: true
From 169e698837634bd84fbcc78daabee9338bd2d3ed Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 10:31:21 +0100
Subject: [PATCH 42/72] Switch to 3.7.9 because 3.7.12 not on all os
---
.github/workflows/workflow.yml | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index c7c625f093..4db11b1709 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -6,16 +6,17 @@ jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
+ fail-fast: false
matrix:
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
- python-version: ["3.7.12", "3.8", "3.9"]
+ python-version: ["3.7.9", "3.8", "3.9"]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7.12
+ python-version: ${{ matrix.python-version }}
- name: Cache build
id: restore-build
uses: actions/cache@v2
@@ -65,7 +66,7 @@ jobs:
fail-fast: false
matrix:
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
- python-version: ["3.7.12", "3.8", "3.9"]
+ python-version: ["3.7.9", "3.8", "3.9"]
steps:
- uses: actions/checkout@v2
- name: Set up Python
From 53538b1f21af69667ccbeef6486def513d930869 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 10:40:49 +0100
Subject: [PATCH 43/72] Add conda test on windows
---
.github/workflows/workflow.yml | 30 +++++++++++++++++++++++++-----
1 file changed, 25 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index 4db11b1709..f2bd0eb6c9 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -6,9 +6,9 @@ jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
- fail-fast: false
+ fail-fast: true
matrix:
- os: ["ubuntu-latest", "macos-latest", "windows-latest"]
+ os: ["ubuntu-latest", "macos-latest"]
python-version: ["3.7.9", "3.8", "3.9"]
steps:
- name: Checkout
@@ -63,9 +63,9 @@ jobs:
runs-on: ${{ matrix.os }}
needs: [ build ]
strategy:
- fail-fast: false
+ fail-fast: true
matrix:
- os: ["ubuntu-latest", "macos-latest", "windows-latest"]
+ os: ["ubuntu-latest", "macos-latest"]
python-version: ["3.7.9", "3.8", "3.9"]
steps:
- uses: actions/checkout@v2
@@ -202,7 +202,6 @@ jobs:
run: "${GITHUB_WORKSPACE}/.github/publish-git-tag.sh"
publish-to-conda:
- name: publish-to-conda
runs-on: "ubuntu-latest"
needs: [ deploy ]
strategy:
@@ -229,3 +228,24 @@ jobs:
conda config --set anaconda_upload yes
- name: Conda build
run: conda build --token ${{ secrets.ANACONDA_TOKEN }} --user openfisca .conda
+
+ test-on-windows:
+ runs-on: "windows-latest"
+ needs: [ publish-to-conda ]
+ strategy:
+ fail-fast: false
+ steps:
+ - uses: conda-incubator/setup-miniconda@v2
+ with:
+ auto-update-conda: true
+ python-version: "3.9"
+ # Add conda-forge for OpenFisca-Core
+ channels: conda-forge
+ activate-environment: true
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0 # Fetch all the tags
+ - name: Install with conda
+ run: conda install -c openfisca openfisca-france-dev
+ - name: openfisca test
+ run: openfisca test --country-package openfisca_france tests
\ No newline at end of file
From 9153ac0f143a8edc76d31970e57acf3970ed4d17 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 10:44:34 +0100
Subject: [PATCH 44/72] Remove macos-latest to speed up
---
.github/workflows/workflow.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index f2bd0eb6c9..d3cb3a9779 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -8,8 +8,8 @@ jobs:
strategy:
fail-fast: true
matrix:
- os: ["ubuntu-latest", "macos-latest"]
- python-version: ["3.7.9", "3.8", "3.9"]
+ os: ["ubuntu-latest"] # On peut ajouter "macos-latest" si besoin
+ python-version: ["3.7", "3.8", "3.9"]
steps:
- name: Checkout
uses: actions/checkout@v2
@@ -65,8 +65,8 @@ jobs:
strategy:
fail-fast: true
matrix:
- os: ["ubuntu-latest", "macos-latest"]
- python-version: ["3.7.9", "3.8", "3.9"]
+ os: [ "ubuntu-latest" ] # On peut ajouter "macos-latest" si besoin
+ python-version: ["3.7", "3.8", "3.9"]
steps:
- uses: actions/checkout@v2
- name: Set up Python
From 8714b84f1ca8a3c99261dd14d5908bf6884f0f25 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 10:45:49 +0100
Subject: [PATCH 45/72] Force windows test
---
.github/workflows/workflow.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index d3cb3a9779..c4af047369 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -231,7 +231,7 @@ jobs:
test-on-windows:
runs-on: "windows-latest"
- needs: [ publish-to-conda ]
+ needs: [ build ] # Remettre publish-to-conda
strategy:
fail-fast: false
steps:
From d543c05b4a01f7df0f6b466239860f027349f22c Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 10:55:26 +0100
Subject: [PATCH 46/72] Fix python version to avoid cache pb
---
.github/workflows/workflow.yml | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index c4af047369..a15f30409e 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -9,7 +9,7 @@ jobs:
fail-fast: true
matrix:
os: ["ubuntu-latest"] # On peut ajouter "macos-latest" si besoin
- python-version: ["3.7", "3.8", "3.9"]
+ python-version: ["3.7.9", "3.8.9", "3.9.9"]
steps:
- name: Checkout
uses: actions/checkout@v2
@@ -45,7 +45,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7.12
+ python-version: 3.7
- name: Cache build
id: restore-build
uses: actions/cache@v2
@@ -66,7 +66,7 @@ jobs:
fail-fast: true
matrix:
os: [ "ubuntu-latest" ] # On peut ajouter "macos-latest" si besoin
- python-version: ["3.7", "3.8", "3.9"]
+ python-version: ["3.7.9", "3.8.9", "3.9.9"]
steps:
- uses: actions/checkout@v2
- name: Set up Python
@@ -99,7 +99,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7.12
+ python-version: 3.7
- name: Cache build
id: restore-build
uses: actions/cache@v2
@@ -125,7 +125,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7.12
+ python-version: 3.7
- name: Cache build
id: restore-build
uses: actions/cache@v2
@@ -145,7 +145,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7.12
+ python-version: 3.7
- name: Check version number has been properly updated
run: "${GITHUB_WORKSPACE}/.github/is-version-number-acceptable.sh"
@@ -165,7 +165,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7.12
+ python-version: 3.7
- id: stop-early
run: if "${GITHUB_WORKSPACE}/.github/has-functional-changes.sh" ; then echo "::set-output name=status::success" ; fi
@@ -183,7 +183,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7.12
+ python-version: 3.7.9
- name: Cache build
id: restore-build
uses: actions/cache@v2
@@ -210,7 +210,7 @@ jobs:
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
- python-version: "3.7"
+ python-version: "3.7.9"
# Add conda-forge for OpenFisca-Core
channels: conda-forge
activate-environment: true
@@ -238,7 +238,7 @@ jobs:
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
- python-version: "3.9"
+ python-version: "3.9.9"
# Add conda-forge for OpenFisca-Core
channels: conda-forge
activate-environment: true
From aae5573fdca2c636b0284ecd387686700d980914 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 11:05:55 +0100
Subject: [PATCH 47/72] Rename cache
---
.github/workflows/workflow.yml | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index a15f30409e..74cac97839 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -33,7 +33,7 @@ jobs:
uses: actions/cache@v2
with:
path: dist
- key: release-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}
+ key: release-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-${{ matrix.os }}
lint-files:
runs-on: ubuntu-latest
@@ -45,13 +45,13 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7
+ python-version: 3.7.9
- name: Cache build
id: restore-build
uses: actions/cache@v2
with:
path: ${{ env.pythonLocation }}
- key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}
+ key: release-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-ubuntu-latest
- run: make check-syntax-errors
- run: make check-style
- name: Lint Python files
@@ -78,7 +78,7 @@ jobs:
uses: actions/cache@v2
with:
path: ${{ env.pythonLocation }}
- key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}
+ key: release-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-${{ matrix.os }}
- run: |
shopt -s globstar
openfisca test tests/**/*.py
@@ -99,13 +99,13 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7
+ python-version: 3.7.9
- name: Cache build
id: restore-build
uses: actions/cache@v2
with:
path: ${{ env.pythonLocation }}
- key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}
+ key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-ubuntu-latest
- name: Split YAML tests
id: yaml-test
env:
@@ -125,13 +125,13 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7
+ python-version: 3.7.9
- name: Cache build
id: restore-build
uses: actions/cache@v2
with:
path: ${{ env.pythonLocation }}
- key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}
+ key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-ubuntu-latest
- name: Test the Web API
run: "${GITHUB_WORKSPACE}/.github/test-api.sh"
@@ -145,7 +145,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7
+ python-version: 3.7.9
- name: Check version number has been properly updated
run: "${GITHUB_WORKSPACE}/.github/is-version-number-acceptable.sh"
@@ -165,7 +165,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.7
+ python-version: 3.7.9
- id: stop-early
run: if "${GITHUB_WORKSPACE}/.github/has-functional-changes.sh" ; then echo "::set-output name=status::success" ; fi
@@ -189,13 +189,13 @@ jobs:
uses: actions/cache@v2
with:
path: ${{ env.pythonLocation }}
- key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}
+ key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-ubuntu-latest
- name: Cache release
id: restore-release
uses: actions/cache@v2
with:
path: dist
- key: release-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}
+ key: release-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-ubuntu-latest
- name: Upload a Python package to PyPi
run: twine upload dist/* --username $PYPI_USERNAME --password $PYPI_PASSWORD
- name: Publish a git tag
From b8a8d317cbce633a85dc6cbdefed1a4a280fb0b2 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 11:13:14 +0100
Subject: [PATCH 48/72] CI only on Pr
---
.github/workflows/workflow.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index 74cac97839..e11bd8449f 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -1,6 +1,6 @@
name: OpenFisca France
-on: [push, pull_request]
+on: [pull_request]
jobs:
build:
From 059563133a67e2332dfee0308d73c373a5d7a1ee Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 11:21:04 +0100
Subject: [PATCH 49/72] Avoid duplicate run
---
.github/workflows/workflow.yml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index e11bd8449f..04bdf753a9 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -1,6 +1,9 @@
name: OpenFisca France
-on: [pull_request]
+on:
+ push:
+ pull_request:
+ types: [opened, reopened]
jobs:
build:
From 2a31fc6f799447f99de206e1ee642b430adad7d2 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 11:39:44 +0100
Subject: [PATCH 50/72] fix key
---
.github/workflows/workflow.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index 04bdf753a9..cbfe024345 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -81,7 +81,7 @@ jobs:
uses: actions/cache@v2
with:
path: ${{ env.pythonLocation }}
- key: release-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-${{ matrix.os }}
+ key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-${{ matrix.os }}
- run: |
shopt -s globstar
openfisca test tests/**/*.py
From 3c0273e928ea95937544798c0cf22b8e78fcc0dd Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 11:46:35 +0100
Subject: [PATCH 51/72] Fix cache
---
.github/workflows/validate_yaml.yml | 7 ++++---
.github/workflows/workflow.yml | 2 +-
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/validate_yaml.yml b/.github/workflows/validate_yaml.yml
index 6d4833df32..4a2fb53bbf 100644
--- a/.github/workflows/validate_yaml.yml
+++ b/.github/workflows/validate_yaml.yml
@@ -1,9 +1,10 @@
name: Validate YAML
on:
- - pull_request
- - push
- - workflow_dispatch
+ push:
+ workflow_dispatch:
+ pull_request:
+ types: [opened, reopened]
jobs:
validate_yaml:
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index cbfe024345..4b918a17cc 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -54,7 +54,7 @@ jobs:
uses: actions/cache@v2
with:
path: ${{ env.pythonLocation }}
- key: release-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-ubuntu-latest
+ key: build-${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ github.sha }}-ubuntu-latest
- run: make check-syntax-errors
- run: make check-style
- name: Lint Python files
From fd33c96c37b4e9214fa5592a38c9748a2da910bb Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 12:04:00 +0100
Subject: [PATCH 52/72] Put test windows at the end
---
.github/workflows/workflow.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index 4b918a17cc..5e4faf365c 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -234,7 +234,7 @@ jobs:
test-on-windows:
runs-on: "windows-latest"
- needs: [ build ] # Remettre publish-to-conda
+ needs: [ publish-to-conda ]
strategy:
fail-fast: false
steps:
From d7ff12d39b171d8c2865e8da6e0b58675af1169b Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 13:40:18 +0100
Subject: [PATCH 53/72] Update conda doc
---
.conda/README.md | 42 ++++++++++++++++++++++--------------------
1 file changed, 22 insertions(+), 20 deletions(-)
diff --git a/.conda/README.md b/.conda/README.md
index 8070d93cdc..c47d2a6640 100644
--- a/.conda/README.md
+++ b/.conda/README.md
@@ -1,33 +1,35 @@
-## Prérequis
+# Publication vers Anaconda
-Installation de [Conda](https://www.anaconda.com/products/individual)
+Ce readme décrit la partie publication vers conda, pour utiliser le paquet conda résultant, voir [le readme principal](https://github.com/openfisca/openfisca-france/tree/publish-to-conda#installez-un-environnement-virtuel-avec-conda).
+Pour envoyer un paquet vers conda il faut obligatoirement un fichier `meta.yaml` qui décrit le package.
+Nous avons fait le choix d'utiliser la paquet PyPi comme source du paquet Conda, pour s'assurer que l'on publie bien la même chose sur les deux plateformes.
+L'upload automatique est fait de la façon suivante par la CI uniquement si l'étape de livraison sur PyPi c'est bien déroulée :
+- Miniconda est installé.
+- Le script `.github/get_pypi_info.py` récupére les informations du package sur PyPi et les place dans le fichier `.conda/meta.yaml`.
+- `conda build` est exécuter pour construire et publier le paquet conformément au fichier `.conda/meta.yaml`. Cette étape nécessite la variable de CI ANACONDA_TOKEN.
+Pour valider que tout a fonctionné, une étape `test-on-windows` a été ajouté en fin de CI. Cette étape récupère le paquet conda sur une machine Windows et exécute les tests.
-### Upload automatique du package
-
-L'upload automatique est fait par la CI, mais il faut que le fichier meta.yaml soit conforme.
-
-## Procédure initiale
+## Etapes préparatoires pour arriver à cette automatisation
- Création d'un compte sur https://anaconda.org
- Création d'un token sur https://anaconda.org/openfisca.org/settings/access avec le droit "Allow write access to the API site". Attention il expire le 2023/01/13
-- Mis en place du token dans GitHub action sous le nom de variable ANACONDA_TOKEN
+- Mis en place du token dans GitHub Action sous le nom de variable ANACONDA_TOKEN
-### Mise à jour du paquet sur Conda
+### Publication manuelle du package
-Pour créer un nouveau paquet il faut faire les actions suivantes à la racine du projet:
+Les étapes suivantes peuvent être réalisées sous Windows pour tester la publication :
-- Editer `.conda/meta.yaml` pour mettre à jour:
- - Le numéro de version
- - Le hash 256
- - L'url du paquet sur PyPi si nécessaire
- - Ces informations sont données par le script `.github/get_pypi_info.py`
-### Upload manuel du package
+_Cela fonctionne aussi sous macOS et Linux, à condition d'adapter les chemins._
-- `conda build --croot c:\tmp .conda` L'option `--croot ` est nécessaire sous Windows à cause des chemins trop long.
-- `conda install -c anaconda anaconda-client` Pour installer l'outil en ligne de commande.
-- `anaconda login`
-- `anaconda upload c:\tmp\noarch\openfisca-france-102.0.0-py_0.tar.bz2`
\ No newline at end of file
+- Editer `.conda/meta.yaml` pour vérifier son contenu.
+- Installer [MiniConda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) si vous n'avez pas déjà [AnaConda](https://www.anaconda.com/products/individual).
+- Puis dans le terminal saisissez les instructions suivantes :
+ - `conda install -c anaconda conda-build anaconda-client`
+ - `conda build --croot c:\temp .conda` L'option `--croot ` est nécessaire sous Windows à cause des chemins trop long.
+ - `conda install -c anaconda anaconda-client` Pour installer l'outil en ligne de commande.
+ - `anaconda login`
+ - `anaconda upload c:\temp\noarch\openfisca-france--py_0.tar.bz2`
From 456d840348219ad307089ff49b507d38e64e2ff1 Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 14:45:22 +0100
Subject: [PATCH 54/72] Update README.md
Co-authored-by: sandcha
---
README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index e7caca75f4..1f024222b6 100644
--- a/README.md
+++ b/README.md
@@ -169,7 +169,8 @@ Ceci vous permet d'obtenir en une seule installation :
- Le gestionnaire de paquets [Anaconda.org](https://docs.anaconda.com/anacondaorg/user-guide/)
- Le gestionnaire d'environnement Python virtuel : [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)
-Voici les étapes à suivre
+Voici les étapes à suivre :
+
- Installer la version communautaire/gratuite en suivant la procédure décrite sur [le site Anaconda](https://www.anaconda.com/products/individual). A noter que Anaconda occupe beaucoup d'espace disque (>2 Go), vous pouvez installer à la place [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) qui occupe beaucoup moins d'espace disque.
- Depuis le menu démarrer, exécuter `Anaconda Powershell Prompt`.
- Exécuter les commandes suivantes dans le shell:
From ced297230b821f8c1652917cf494ca5456b352ad Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 13:58:53 +0100
Subject: [PATCH 55/72] Review
---
.conda/meta.yaml | 1 -
.github/get_pypi_info.py | 1 -
README.md | 4 ++--
3 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/.conda/meta.yaml b/.conda/meta.yaml
index e2594cafed..96175f4e5d 100644
--- a/.conda/meta.yaml
+++ b/.conda/meta.yaml
@@ -34,7 +34,6 @@ test:
- openfisca_france
requires:
- pip
- #- pytest >=4.4.1,<6.0.0 # To be Removed when OF-Core as been updated
commands:
- pip check
diff --git a/.github/get_pypi_info.py b/.github/get_pypi_info.py
index 8509c96a3b..fc7491efe9 100644
--- a/.github/get_pypi_info.py
+++ b/.github/get_pypi_info.py
@@ -12,7 +12,6 @@ def get_info(package_name: str = "") -> dict:
raise ValueError("Package name not provided.")
resp = requests.get(f"https://pypi.org/pypi/{package_name}/json").json()
version = resp["info"]["version"]
- # print(resp["releases"][version][0])
for v in resp["releases"][version]:
if v["packagetype"] == "sdist":
return {
diff --git a/README.md b/README.md
index 1f024222b6..c97416d7df 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@ Ce paquet requiert [Python 3.7](https://www.python.org/downloads/release/python-
Plateformes supportées :
- distributions GNU/Linux (en particulier Debian and Ubuntu) ;
- Mac OS X ;
-- Windows : Nous recommandons d'utiliser [conda](https://www.anaconda.com/products/individual), voir la procédure ci-dessous [Installez un environnement virtuel avec conda](./README.md#installez-un-environnement-virtuel-avec-conda) ; OpenFisca fonctionne également dans le [sous-système Windows pour Linux (WSL)](https://docs.microsoft.com/fr-fr/windows/wsl/install).
+- Windows : Nous recommandons d'utiliser [conda](https://www.anaconda.com/products/individual), voir la procédure ci-dessous [Installez un environnement virtuel avec conda](./README.md#installez-un-environnement-virtuel-avec-conda) ; OpenFisca fonctionne également dans le [sous-système Windows pour Linux (WSL)](https://docs.microsoft.com/fr-fr/windows/wsl/install). Dans ce dernier cas, il suffit de suivre la procédure pour Linux car vous êtes alors dans un environnement Linux.
Pour les autres OS : si vous pouvez exécuter Python et Numpy, l'installation d'OpenFisca devrait fonctionner.
@@ -171,7 +171,7 @@ Ceci vous permet d'obtenir en une seule installation :
Voici les étapes à suivre :
-- Installer la version communautaire/gratuite en suivant la procédure décrite sur [le site Anaconda](https://www.anaconda.com/products/individual). A noter que Anaconda occupe beaucoup d'espace disque (>2 Go), vous pouvez installer à la place [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) qui occupe beaucoup moins d'espace disque.
+- Installer la version communautaire/gratuite en suivant la procédure décrite sur [le site Anaconda](https://www.anaconda.com/products/individual). A noter que Anaconda occupe beaucoup d'espace disque (>2 Go), vous pouvez installer à la place [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) qui occupe beaucoup moins d'espace disque. Cependant vous n'aurez pas l'interface graphique [Anaconda Navigator](https://docs.anaconda.com/anaconda/navigator/index.html) qui vous permet de gérer vos environnements. Si vous êtes habituée à gérer les choses en ligne de commande, préfèrer Miniconda.
- Depuis le menu démarrer, exécuter `Anaconda Powershell Prompt`.
- Exécuter les commandes suivantes dans le shell:
- Créer un environnement virtuel dédié : `conda create --name openfisca python=3.7`
From ed03bebc598356112981550e3f7a3a3cd2190ecf Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 15:00:00 +0100
Subject: [PATCH 56/72] Update .github/get_pypi_info.py
Co-authored-by: sandcha
---
.github/get_pypi_info.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/get_pypi_info.py b/.github/get_pypi_info.py
index fc7491efe9..9ba5a02cf1 100644
--- a/.github/get_pypi_info.py
+++ b/.github/get_pypi_info.py
@@ -13,7 +13,7 @@ def get_info(package_name: str = "") -> dict:
resp = requests.get(f"https://pypi.org/pypi/{package_name}/json").json()
version = resp["info"]["version"]
for v in resp["releases"][version]:
- if v["packagetype"] == "sdist":
+ if v["packagetype"] == "sdist": # for .tag.gz
return {
"last_version": version,
"url": v["url"],
From 03f4ffc5b84a96024d7317f78b17e36e4033d1a4 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 20 Jan 2022 14:12:14 +0100
Subject: [PATCH 57/72] Better doc.
---
.conda/README.md | 24 +++++++++++++-----------
.github/get_pypi_info.py | 2 +-
2 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/.conda/README.md b/.conda/README.md
index c47d2a6640..ac9f8317a2 100644
--- a/.conda/README.md
+++ b/.conda/README.md
@@ -4,20 +4,21 @@ Ce readme décrit la partie publication vers conda, pour utiliser le paquet cond
Pour envoyer un paquet vers conda il faut obligatoirement un fichier `meta.yaml` qui décrit le package.
-Nous avons fait le choix d'utiliser la paquet PyPi comme source du paquet Conda, pour s'assurer que l'on publie bien la même chose sur les deux plateformes.
+Nous avons fait le choix d'utiliser le paquet PyPi comme source du paquet Conda, pour s'assurer que l'on publie bien la même chose sur les deux plateformes.
-L'upload automatique est fait de la façon suivante par la CI uniquement si l'étape de livraison sur PyPi c'est bien déroulée :
-- Miniconda est installé.
-- Le script `.github/get_pypi_info.py` récupére les informations du package sur PyPi et les place dans le fichier `.conda/meta.yaml`.
-- `conda build` est exécuter pour construire et publier le paquet conformément au fichier `.conda/meta.yaml`. Cette étape nécessite la variable de CI ANACONDA_TOKEN.
+L'upload automatique est fait de la façon suivante par la CI uniquement si l'étape de livraison sur PyPi s'est bien déroulée :
+- Installation de Miniconda.
+- Récupération par le script `.github/get_pypi_info.py` des informations du package sur PyPi.
+- Ecriture de ces informations par ce même script dans le fichier `.conda/meta.yaml`.
+- Exécution de `conda build` pour construire et publier le paquet conformément au fichier `.conda/meta.yaml`. Cette étape nécessite la variable de CI ANACONDA_TOKEN.
Pour valider que tout a fonctionné, une étape `test-on-windows` a été ajouté en fin de CI. Cette étape récupère le paquet conda sur une machine Windows et exécute les tests.
## Etapes préparatoires pour arriver à cette automatisation
-- Création d'un compte sur https://anaconda.org
-- Création d'un token sur https://anaconda.org/openfisca.org/settings/access avec le droit "Allow write access to the API site". Attention il expire le 2023/01/13
-- Mis en place du token dans GitHub Action sous le nom de variable ANACONDA_TOKEN
+- Création d'un compte sur https://anaconda.org.
+- Création d'un token sur https://anaconda.org/openfisca.org/settings/access avec le droit _Allow write access to the API site_. Attention il expire le 2023/01/13.
+- Mis en place du token dans GitHub Action sous le nom de variable ANACONDA_TOKEN.
### Publication manuelle du package
@@ -28,8 +29,9 @@ _Cela fonctionne aussi sous macOS et Linux, à condition d'adapter les chemins._
- Editer `.conda/meta.yaml` pour vérifier son contenu.
- Installer [MiniConda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) si vous n'avez pas déjà [AnaConda](https://www.anaconda.com/products/individual).
- Puis dans le terminal saisissez les instructions suivantes :
- - `conda install -c anaconda conda-build anaconda-client`
+ - `conda install -c anaconda conda-build anaconda-client` Pour installer les outils indispensable.
- `conda build --croot c:\temp .conda` L'option `--croot ` est nécessaire sous Windows à cause des chemins trop long.
- `conda install -c anaconda anaconda-client` Pour installer l'outil en ligne de commande.
- - `anaconda login`
- - `anaconda upload c:\temp\noarch\openfisca-france--py_0.tar.bz2`
+ - `anaconda login` Pour vous connecter avec le compte _openfisca_, voir le Keepass OpenFisca.
+ - `anaconda upload c:\temp\noarch\openfisca-france--py_0.tar.bz2` pour publier le package.
+- Vérifier que tout c'est bien passé sur https://anaconda.org/search?q=openfisca.
diff --git a/.github/get_pypi_info.py b/.github/get_pypi_info.py
index 9ba5a02cf1..b82904f288 100644
--- a/.github/get_pypi_info.py
+++ b/.github/get_pypi_info.py
@@ -34,7 +34,7 @@ def replace_in_file(filepath: str, info: dict):
meta = meta.replace("PYPI_SHA256", info["sha256"])
with open(filepath, "wt") as fout:
fout.write(meta)
- print(f"File {filepath} writen.") # noqa: T001
+ print(f"File {filepath} has been updated with informations from PyPi.") # noqa: T001
if __name__ == '__main__':
From a88ce39c10a3afe5a6923a07ed6efdf40e824367 Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 28 Jan 2022 07:45:56 +0100
Subject: [PATCH 58/72] ortho
Co-authored-by: Mahdi Ben Jelloul
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index c97416d7df..a57dbd3a89 100644
--- a/README.md
+++ b/README.md
@@ -171,7 +171,7 @@ Ceci vous permet d'obtenir en une seule installation :
Voici les étapes à suivre :
-- Installer la version communautaire/gratuite en suivant la procédure décrite sur [le site Anaconda](https://www.anaconda.com/products/individual). A noter que Anaconda occupe beaucoup d'espace disque (>2 Go), vous pouvez installer à la place [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) qui occupe beaucoup moins d'espace disque. Cependant vous n'aurez pas l'interface graphique [Anaconda Navigator](https://docs.anaconda.com/anaconda/navigator/index.html) qui vous permet de gérer vos environnements. Si vous êtes habituée à gérer les choses en ligne de commande, préfèrer Miniconda.
+- Installer la version communautaire/gratuite en suivant la procédure décrite sur [le site Anaconda](https://www.anaconda.com/products/individual). A noter que Anaconda occupe beaucoup d'espace disque (>2 Go), vous pouvez installer à la place [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) qui occupe beaucoup moins d'espace disque. Cependant vous n'aurez pas l'interface graphique [Anaconda Navigator](https://docs.anaconda.com/anaconda/navigator/index.html) qui vous permet de gérer vos environnements. Si vous êtes habituée à gérer les choses en ligne de commande, préfèrez Miniconda.
- Depuis le menu démarrer, exécuter `Anaconda Powershell Prompt`.
- Exécuter les commandes suivantes dans le shell:
- Créer un environnement virtuel dédié : `conda create --name openfisca python=3.7`
From cb71931d11d61e07950a3c2d3eee06714a82c9dc Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 28 Jan 2022 07:46:18 +0100
Subject: [PATCH 59/72] ortho
Co-authored-by: sandcha
---
.conda/README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.conda/README.md b/.conda/README.md
index ac9f8317a2..78a139bab9 100644
--- a/.conda/README.md
+++ b/.conda/README.md
@@ -12,7 +12,8 @@ L'upload automatique est fait de la façon suivante par la CI uniquement si l'é
- Ecriture de ces informations par ce même script dans le fichier `.conda/meta.yaml`.
- Exécution de `conda build` pour construire et publier le paquet conformément au fichier `.conda/meta.yaml`. Cette étape nécessite la variable de CI ANACONDA_TOKEN.
-Pour valider que tout a fonctionné, une étape `test-on-windows` a été ajouté en fin de CI. Cette étape récupère le paquet conda sur une machine Windows et exécute les tests.
+Pour valider que tout a fonctionné, une étape `test-on-windows` a été ajoutée en fin de CI. Cette étape récupère le paquet conda sur une machine Windows et exécute les tests.
+
## Etapes préparatoires pour arriver à cette automatisation
From be1a7143a015cac690ba398e3a4e6f00059d1825 Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 28 Jan 2022 07:46:57 +0100
Subject: [PATCH 60/72] account
Co-authored-by: sandcha
---
.conda/README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.conda/README.md b/.conda/README.md
index 78a139bab9..388271529e 100644
--- a/.conda/README.md
+++ b/.conda/README.md
@@ -18,7 +18,8 @@ Pour valider que tout a fonctionné, une étape `test-on-windows` a été ajout
## Etapes préparatoires pour arriver à cette automatisation
- Création d'un compte sur https://anaconda.org.
-- Création d'un token sur https://anaconda.org/openfisca.org/settings/access avec le droit _Allow write access to the API site_. Attention il expire le 2023/01/13.
+- Création d'un token sur https://anaconda.org/openfisca/settings/access avec le droit _Allow write access to the API site_. Attention il expire le 2023/01/13.
+
- Mis en place du token dans GitHub Action sous le nom de variable ANACONDA_TOKEN.
### Publication manuelle du package
From 1a23eda2ebe759a58a7fcbb5563b7a335d7cb503 Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 28 Jan 2022 07:47:52 +0100
Subject: [PATCH 61/72] empty line .github/workflows/workflow.yml
Co-authored-by: sandcha
---
.github/workflows/workflow.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index 5e4faf365c..2f6d88a75a 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -251,4 +251,4 @@ jobs:
- name: Install with conda
run: conda install -c openfisca openfisca-france-dev
- name: openfisca test
- run: openfisca test --country-package openfisca_france tests
\ No newline at end of file
+ run: openfisca test --country-package openfisca_france tests
From 4aa29258012de9995bbf3de7859785343bef5690 Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 28 Jan 2022 07:49:37 +0100
Subject: [PATCH 62/72] account change
Co-authored-by: sandcha
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index a57dbd3a89..5ba4a53646 100644
--- a/README.md
+++ b/README.md
@@ -176,7 +176,7 @@ Voici les étapes à suivre :
- Exécuter les commandes suivantes dans le shell:
- Créer un environnement virtuel dédié : `conda create --name openfisca python=3.7`
- Activer l'environnement : `conda activate openfisca`
- - Installer OpenFisca : `conda install -c openfisca.org openfisca-france`
+ - Installer OpenFisca : `conda install -c openfisca openfisca-france`
:tada: OpenFisca-France est prêt à être utilisé !
From 2aac657529ef82f17bab83abfefdaebe442fadf5 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 28 Jan 2022 15:18:59 +0100
Subject: [PATCH 63/72] Add readme to pypi
---
setup.py | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/setup.py b/setup.py
index 35c304459d..15308cf1d5 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,11 @@
#! /usr/bin/env python
from setuptools import setup, find_packages
+from pathlib import Path
+# Read the contents of your README file for PyPi
+this_directory = Path(__file__).parent
+long_description = (this_directory / "README.md").read_text()
setup(
name = "OpenFisca-France",
@@ -15,12 +19,16 @@
"Programming Language :: Python",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
"Topic :: Scientific/Engineering :: Information Analysis",
],
description = "French tax and benefit system for OpenFisca",
keywords = "benefit france microsimulation social tax",
license = "http://www.fsf.org/licensing/licenses/agpl-3.0.html",
url = "https://github.com/openfisca/openfisca-france",
+ long_description=long_description,
+ long_description_content_type='text/markdown',
data_files = [
(
From b54be5b0216918e24e1d089276f71135c8db5753 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 28 Jan 2022 15:35:09 +0100
Subject: [PATCH 64/72] Use license_files key
---
setup.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/setup.py b/setup.py
index 15308cf1d5..1b01486ade 100644
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,7 @@
from setuptools import setup, find_packages
from pathlib import Path
-# Read the contents of your README file for PyPi
+# Read the contents of our README file for PyPi
this_directory = Path(__file__).parent
long_description = (this_directory / "README.md").read_text()
@@ -26,6 +26,7 @@
description = "French tax and benefit system for OpenFisca",
keywords = "benefit france microsimulation social tax",
license = "http://www.fsf.org/licensing/licenses/agpl-3.0.html",
+ license_files = ("LICENSE.AGPL.txt",),
url = "https://github.com/openfisca/openfisca-france",
long_description=long_description,
long_description_content_type='text/markdown',
@@ -33,7 +34,7 @@
data_files = [
(
"share/openfisca/openfisca-france",
- ["CHANGELOG.md", "LICENSE.AGPL.txt", "README.md"],
+ ["CHANGELOG.md", "README.md"],
),
],
extras_require = {
From 0dab79f833c3f635bc1731bc3614326bf9755ae6 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 28 Jan 2022 16:00:28 +0100
Subject: [PATCH 65/72] Maj doc
---
.conda/README.md | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/.conda/README.md b/.conda/README.md
index 388271529e..4e3f547b1d 100644
--- a/.conda/README.md
+++ b/.conda/README.md
@@ -14,6 +14,9 @@ L'upload automatique est fait de la façon suivante par la CI uniquement si l'é
Pour valider que tout a fonctionné, une étape `test-on-windows` a été ajoutée en fin de CI. Cette étape récupère le paquet conda sur une machine Windows et exécute les tests.
+**A noter** : Le paquet OpenFisca-France est aussi publié sur `conda-forge`, pour cela voir [le feedstock](https://github.com/openfisca/openfisca-france-feedstock/tree/master/recipe)
+
+C'est le channel `conda-forge` qui est le channel stable à conseiller aux utilisateurs. Le channel `openfisca` reçoit les derniers paquets de façon automatique.
## Etapes préparatoires pour arriver à cette automatisation
@@ -30,7 +33,7 @@ _Cela fonctionne aussi sous macOS et Linux, à condition d'adapter les chemins._
- Editer `.conda/meta.yaml` pour vérifier son contenu.
- Installer [MiniConda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) si vous n'avez pas déjà [AnaConda](https://www.anaconda.com/products/individual).
-- Puis dans le terminal saisissez les instructions suivantes :
+- Puis dans le terminal saisissez les instructions suivantes :
- `conda install -c anaconda conda-build anaconda-client` Pour installer les outils indispensable.
- `conda build --croot c:\temp .conda` L'option `--croot ` est nécessaire sous Windows à cause des chemins trop long.
- `conda install -c anaconda anaconda-client` Pour installer l'outil en ligne de commande.
From a194c138b9bce9ddbd51d80ba5151661f136250e Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Fri, 28 Jan 2022 16:04:14 +0100
Subject: [PATCH 66/72] issues/1791
---
.conda/meta.yaml | 2 +-
README.md | 13 ++++++++++---
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/.conda/meta.yaml b/.conda/meta.yaml
index 96175f4e5d..6930050f83 100644
--- a/.conda/meta.yaml
+++ b/.conda/meta.yaml
@@ -69,7 +69,7 @@ about:
home: https://fr.openfisca.org/
license_family: AGPL
license: AGPL-3.0-only
- license_file: ../LICENSE.AGPL.txt
+ license_file: LICENSE.AGPL.txt
summary: "French tax and benefit system for OpenFisca"
description: |
OpenFisca is a versatile microsimulation free software.
diff --git a/README.md b/README.md
index 5ba4a53646..95b02b43b3 100644
--- a/README.md
+++ b/README.md
@@ -169,17 +169,24 @@ Ceci vous permet d'obtenir en une seule installation :
- Le gestionnaire de paquets [Anaconda.org](https://docs.anaconda.com/anacondaorg/user-guide/)
- Le gestionnaire d'environnement Python virtuel : [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)
-Voici les étapes à suivre :
+Voici les étapes à suivre :
- Installer la version communautaire/gratuite en suivant la procédure décrite sur [le site Anaconda](https://www.anaconda.com/products/individual). A noter que Anaconda occupe beaucoup d'espace disque (>2 Go), vous pouvez installer à la place [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html) qui occupe beaucoup moins d'espace disque. Cependant vous n'aurez pas l'interface graphique [Anaconda Navigator](https://docs.anaconda.com/anaconda/navigator/index.html) qui vous permet de gérer vos environnements. Si vous êtes habituée à gérer les choses en ligne de commande, préfèrez Miniconda.
-- Depuis le menu démarrer, exécuter `Anaconda Powershell Prompt`.
+- Depuis le menu démarrer, exécuter `Anaconda Powershell Prompt`. Ou utiliser votre shell préféré avec Miniconda, il vous faudra peut-être utiliser la commande `conda init`, mais conda vous le dira.
- Exécuter les commandes suivantes dans le shell:
+ - Ajouter `conda-forge` comme channel par défaut : `conda config --add channels conda-forge && conda config --set channel_priority strict `
- Créer un environnement virtuel dédié : `conda create --name openfisca python=3.7`
- Activer l'environnement : `conda activate openfisca`
- - Installer OpenFisca : `conda install -c openfisca openfisca-france`
+ - Installer OpenFisca : `conda install openfisca-france`
:tada: OpenFisca-France est prêt à être utilisé !
+Ensuite, pour quitter l'environnement OpenFisca : `conda deactivate`
+
+Pour y revenir : `conda activate openfisca`
+
+A noter que OpenFisca-France est présent sur [conda-forge](https://anaconda.org/conda-forge/openfisca-france) et sur un _channel_ dédié [openfisca](https://anaconda.org/openfisca/openfisca-france). C'est conda-forge qui est mis en avant dans cette documentation, car accessible par défaut dans les installations Anaconda.
+
#### Prochaines étapes
- Pour enrichir ou faire évoluer la législation d'OpenFisca-France, lisez _[Coding the Legislation](https://openfisca.org/doc/coding-the-legislation/index.html)_ (en anglais).
From b72dc07ba7f8a35a6bf25d6ced265958981dc5b0 Mon Sep 17 00:00:00 2001
From: benoit-cty <6603048+benoit-cty@users.noreply.github.com>
Date: Tue, 1 Feb 2022 18:36:09 +0100
Subject: [PATCH 67/72] bump
---
CHANGELOG.md | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0f87b7700d..3f57f779ec 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,18 @@
# Changelog
+# XXX.0.1 [#1786](https://github.com/openfisca/openfisca-france/pull/1786)
+
+* Amélioration technique.
+* Périodes concernées : aucune.
+* Zones impactées : aucune.
+* Détails :
+ - Ajout de la publication vers [conda](https://anaconda.org/search?q=openfisca-france)
+
# 106.0.0 [#1790](https://github.com/openfisca/openfisca-france/pull/1790)
-* Amélioration technique.
+* Amélioration technique.
* Périodes concernées : toutes.
-* Zones impactées :
+* Zones impactées :
- `parameters/prestations_sociales/prestations_familiales/petite_enfance`.
* Détails :
- Harmonisation des fichiers avec les barèmes-ipp
@@ -15,16 +23,6 @@ git log --oneline 500832d46fc6^..281c8b368c1bceb| grep "variable_name"
# 105.0.0 [#1789](https://github.com/openfisca/openfisca-france/pull/1789)
-# XXX.0.1 [#1786](https://github.com/openfisca/openfisca-france/pull/1786)
-
-* Amélioration technique.
-* Périodes concernées : aucune.
-* Zones impactées : aucune.
-* Détails :
- - Ajout de la publication vers [conda](https://anaconda.org/search?q=openfisca-france)
-
-# 103.0.0 [#1772](https://github.com/openfisca/openfisca-france/pull/1772)
-
* Amélioration technique.
* Périodes concernées : toutes.
* Zones impactées :
@@ -40,7 +38,6 @@ git log --oneline 500832d46fc6^..281c8b368c1bceb| grep "variable_name"
-
* Guide pour la migration: Vous pouvez chercher où sont passés vos fichiers avec la commande suivante:
git log --oneline 66724eff27e8feb0^..60136e4a68e04 | grep "variable_name"
-
### 104.1.1 [#1793](https://github.com/openfisca/openfisca-france/pull/1793)
* Changement mineur.
From 3149fdd3788ce21811941a6bfb79643f049824bb Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Tue, 1 Feb 2022 19:26:00 +0100
Subject: [PATCH 68/72] Update CHANGELOG.md
Co-authored-by: sandcha
---
CHANGELOG.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3f57f779ec..b34daa1d3e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
# Changelog
-# XXX.0.1 [#1786](https://github.com/openfisca/openfisca-france/pull/1786)
+### 105.0.1 [#1786](https://github.com/openfisca/openfisca-france/pull/1786)
* Amélioration technique.
* Périodes concernées : aucune.
From bc8b1ac5d77733003b934a0bce046f8bf9f17737 Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Tue, 1 Feb 2022 19:26:14 +0100
Subject: [PATCH 69/72] Update CHANGELOG.md
Co-authored-by: sandcha
---
CHANGELOG.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b34daa1d3e..68334c8b20 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -35,7 +35,6 @@ git log --oneline 500832d46fc6^..281c8b368c1bceb| grep "variable_name"
* Détails :
- Harmonisation des fichiers avec les barèmes-ipp
- Tous les chemins sont updatés pour ne pas casser le code
- -
* Guide pour la migration: Vous pouvez chercher où sont passés vos fichiers avec la commande suivante:
git log --oneline 66724eff27e8feb0^..60136e4a68e04 | grep "variable_name"
### 104.1.1 [#1793](https://github.com/openfisca/openfisca-france/pull/1793)
From ac9e59a714e831baf1c1f4275644c19b01e317fd Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Tue, 1 Feb 2022 19:26:35 +0100
Subject: [PATCH 70/72] Update CHANGELOG.md
Co-authored-by: sandcha
---
CHANGELOG.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 68334c8b20..bd857b83ff 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -37,6 +37,7 @@ git log --oneline 500832d46fc6^..281c8b368c1bceb| grep "variable_name"
- Tous les chemins sont updatés pour ne pas casser le code
* Guide pour la migration: Vous pouvez chercher où sont passés vos fichiers avec la commande suivante:
git log --oneline 66724eff27e8feb0^..60136e4a68e04 | grep "variable_name"
+
### 104.1.1 [#1793](https://github.com/openfisca/openfisca-france/pull/1793)
* Changement mineur.
From cb9eca01a061f771e55854b916fd17ff4b8ef80b Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Tue, 1 Feb 2022 21:06:59 +0100
Subject: [PATCH 71/72] More info in changelog
---
CHANGELOG.md | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bd857b83ff..38e5b00e3e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,11 +2,20 @@
### 105.0.1 [#1786](https://github.com/openfisca/openfisca-france/pull/1786)
-* Amélioration technique.
+* Amélioration technique. Ajout de la publication vers [conda](https://anaconda.org/search?q=openfisca-france)
* Périodes concernées : aucune.
* Zones impactées : aucune.
* Détails :
- - Ajout de la publication vers [conda](https://anaconda.org/search?q=openfisca-france)
+ - Mise à jour du setup.py pour mieux gérer le readme et la license.
+ - Mise à jour du README.md pour les explications sur l'utilisation de Conda.
+ - Ajout du fichier .conda/README.md pour les explications sur la publication Conda.
+ - Ajout du dossier .conda pour les fichiers spécifique à Conda.
+ - Ajout d'une étape de CI pour publier le paquet.
+ - J'ai fait plusieurs modifications sur le workflow Github Action :
+ - Passage de la version de Python 3.7.12 à 3.7.9 car la 3.7.12 n'est pas disponible sur tous les environnements : https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json.
+ - Changement de la règle de déclenchement pour éviter les exécutions en double sur les PR.
+ - Ajout des tests sur plusieurs versions de Python.
+ - Aout d'un test sur Windows en utilisant le paquet conda, après publication.
# 106.0.0 [#1790](https://github.com/openfisca/openfisca-france/pull/1790)
From ddac27cf8417257f48e0d51e24ebd87c51a01191 Mon Sep 17 00:00:00 2001
From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com>
Date: Thu, 3 Feb 2022 11:21:06 +0100
Subject: [PATCH 72/72] bump
---
CHANGELOG.md | 16 ++++++----------
setup.py | 2 +-
2 files changed, 7 insertions(+), 11 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 38e5b00e3e..5c00419bde 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,21 +1,17 @@
# Changelog
-### 105.0.1 [#1786](https://github.com/openfisca/openfisca-france/pull/1786)
+### 106.0.1 [#1786](https://github.com/openfisca/openfisca-france/pull/1786)
-* Amélioration technique. Ajout de la publication vers [conda](https://anaconda.org/search?q=openfisca-france)
+* Amélioration technique.
* Périodes concernées : aucune.
* Zones impactées : aucune.
* Détails :
- - Mise à jour du setup.py pour mieux gérer le readme et la license.
- - Mise à jour du README.md pour les explications sur l'utilisation de Conda.
- - Ajout du fichier .conda/README.md pour les explications sur la publication Conda.
- - Ajout du dossier .conda pour les fichiers spécifique à Conda.
- - Ajout d'une étape de CI pour publier le paquet.
- - J'ai fait plusieurs modifications sur le workflow Github Action :
- - Passage de la version de Python 3.7.12 à 3.7.9 car la 3.7.12 n'est pas disponible sur tous les environnements : https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json.
+ - Ajout de la publication vers [conda](https://anaconda.org/search?q=openfisca-france)
+ - Ajout du dossier .conda pour les fichiers spécifiques à Conda.
+ - Plusieurs modifications sur le workflow Github Action :
- Changement de la règle de déclenchement pour éviter les exécutions en double sur les PR.
- Ajout des tests sur plusieurs versions de Python.
- - Aout d'un test sur Windows en utilisant le paquet conda, après publication.
+ - Ajout d'un test sur Windows en utilisant le paquet conda, après publication.
# 106.0.0 [#1790](https://github.com/openfisca/openfisca-france/pull/1790)
diff --git a/setup.py b/setup.py
index 1b01486ade..cd2c3e02cd 100644
--- a/setup.py
+++ b/setup.py
@@ -9,7 +9,7 @@
setup(
name = "OpenFisca-France",
- version = "106.0.0",
+ version = "106.0.1",
author = "OpenFisca Team",
author_email = "contact@openfisca.fr",
classifiers = [