Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/certbot/certbot.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-05-24Upgrade pylint (#8855)Brad Warren
This is part of https://github.com/certbot/certbot/issues/8782. I took it on now because the currently pinned version of `pylint` doesn't work with newer versions of `poetry` which I wanted to upgrade as part of https://github.com/certbot/certbot/issues/8787. To say a bit more about the specific changes in this PR: * Newer versions of `pylint` complain if `Popen` isn't used as a context manager. Instead of making this change, I switched to using `subprocess.run` which is simpler and [recommended in the Python docs](https://docs.python.org/3/library/subprocess.html#using-the-subprocess-module). I also disabled this check in a few places where no longer using `Popen` would require significant refactoring. * The deleted code in `certbot/certbot/_internal/renewal.py` is cruft since https://github.com/certbot/certbot/pull/8685. * The unused argument to `enable_mod` in the Apache plugin is used in some over the override classes that subclass that class. * unpin pylint and repin dependencies * disable raise-missing-from * disable wrong-input-order * remove unused code * misc lint fixes * remove unused import * various lint fixes
2021-03-23fix pylint (#8729)Brad Warren
2021-02-09Remove dependency on six (#8650)Brad Warren
Fixes https://github.com/certbot/certbot/issues/8494. I left the `six` dependency pinned in `tests/letstest/requirements.txt` and `tools/oldest_constraints.txt` because `six` is still a transitive dependency with our current pinnings. The extra moving around of imports is due to me using `isort` to help me keep dependencies in sorted order after replacing imports of `six`. * remove some six usage in acme * remove six from acme * remove six.add_metaclass usage * fix six.moves.zip * fix six.moves.builtins.open * six.moves server fixes * 's/six\.moves\.range/range/g' * stop using six.moves.xrange * fix urllib imports * s/six\.binary_type/bytes/g * s/six\.string_types/str/g * 's/six\.text_type/str/g' * fix six.iteritems usage * fix itervalues usage * switch from six.StringIO to io.StringIO * remove six imports * misc fixes * stop using six.reload_module * no six.PY2 * rip out six * keep six pinned in oldest constraints * fix log_test.py * update changelog
2019-12-11Lint certbot code on Python 3, and update Pylint to the latest version (#7551)Adrien Ferrand
Part of #7550 This PR makes appropriate corrections to run pylint on Python 3. Why not keeping the dependencies unchanged and just run pylint on Python 3? Because the old version of pylint breaks horribly on Python 3 because of unsupported version of astroid. Why updating pylint + astroid to the latest version ? Because this version only fixes some internal errors occuring during the lint of Certbot code, and is also ready to run gracefully on Python 3.8. Why upgrading mypy ? Because the old version does not support the new version of astroid required to run pylint correctly. Why not upgrading mypy to its latest version ? Because this latest version includes a new typshed version, that adds a lot of new type definitions, and brings dozens of new errors on the Certbot codebase. I would like to fix that in a future PR. That said so, the work has been to find the correct set of new dependency versions, then configure pylint for sane configuration errors in our situation, disable irrelevant lintings errors, then fixing (or ignoring for good reason) the remaining mypy errors. I also made PyLint and MyPy checks run correctly on Windows. * Start configuration * Reconfigure travis * Suspend a check specific to python 3. Start fixing code. * Repair call_args * Fix return + elif lints * Reconfigure development to run mainly on python3 * Remove incompatible Python 3.4 jobs * Suspend pylint in some assertions * Remove pylint in dev * Take first mypy that supports typed-ast>=1.4.0 to limit the migration path * Various return + else lint errors * Find a set of deps that is working with current mypy version * Update local oldest requirements * Remove all current pylint errors * Rebuild letsencrypt-auto * Update mypy to fix pylint with new astroid version, and fix mypy issues * Explain type: ignore * Reconfigure tox, fix none path * Simplify pinning * Remove useless directive * Remove debugging code * Remove continue * Update requirements * Disable unsubscriptable-object check * Disable one check, enabling two more * Plug certbot dev version for oldest requirements * Remove useless disable directives * Remove useless no-member disable * Remove no-else-* checks. Use elif in symetric branches. * Add back assertion * Add new line * Remove unused pylint disable * Remove other pylint disable
2019-11-15fixes #7553 (#7560)Brad Warren
2019-04-12[Windows] Security model for files permissions - STEP 2 (#6895)Adrien Ferrand
This PR is the second part of #6497 to ease the integration, following the new plan propose by @bmw here: #6497 (comment) This PR creates the module certbot.compat.os, that delegates everything to os, and that will be the safeguard against problematic methods of the standard module. On top of that, a quality check wrapper is called in the lint tox environment. This wrapper calls pylint and ensures that standard os module is no used directly in the certbot codebase. Finally local oldest requirements are updated to ensure that tests will take the new logic when running. * Add executable permissions * Add the delegate certbot.compat.os module, add check coding style to enforce usage of certbot.compat.os instead of standard os * Load certbot.compat.os instead of os * Move existing compat test * Update local oldest requirements * Import sys * Update account_test.py * Update os.py * Update os.py * Update local oldest requirements * Implement the new linter_plugin * Fix local oldest for nginx * Remove check coding style * Update linter_plugin.py * Add several comments * Update the setup.py * Add documentation * Update acme dependencies * Update certbot/compat/os.py * Update docs/contributing.rst * Update linter_plugin.py * Handle os.path. Simplify checker. * Add a comment to a reference implementation * Update changelog * Fix module registering * Update docs/contributing.rst * Update config and changelog
2019-04-09Update to Pylint 1.9.4 and correctionsAdrien Ferrand
2019-04-02Merge branch 'master' into pylintAdrien Ferrand
# Conflicts: # acme/acme/client.py # acme/acme/crypto_util.py # acme/acme/standalone.py # certbot-apache/certbot_apache/configurator.py # certbot-apache/certbot_apache/parser.py # certbot-apache/certbot_apache/tests/tls_sni_01_test.py # certbot-apache/certbot_apache/tests/util.py # certbot-apache/certbot_apache/tls_sni_01.py # certbot-nginx/certbot_nginx/configurator.py # certbot-nginx/certbot_nginx/parser.py # certbot-nginx/certbot_nginx/tests/util.py # certbot/account.py # certbot/cert_manager.py # certbot/cli.py # certbot/configuration.py # certbot/main.py # certbot/ocsp.py # certbot/plugins/dns_common_lexicon.py # certbot/plugins/standalone.py # certbot/plugins/util.py # certbot/plugins/webroot.py # certbot/tests/auth_handler_test.py # certbot/tests/cert_manager_test.py # certbot/tests/display/util_test.py # certbot/tests/main_test.py # certbot/tests/util.py # certbot/util.py # tox.ini
2018-06-29Add --disable=locally-enabled to .pylintrc. (#6159)Brad Warren
2018-05-16Fix Pylint upgrade issuesJames Payne
* Remove unsupported pylint disable options * star-args removed in Pylint 1.4.3 * abstract-class-little-used removed in Pylint 1.4.3 * Fixes new lint errors * Copy dummy-variable-rgx expression to new ignored-argument-names expression to ignore unused funtion arguments * Notable changes * Refactor to satisfy Pylint no-else-return warning * Fix Pylint inconsistent-return-statements warning * Refactor to satisfy consider-iterating-dictionary * Remove methods with only super call to satisfy useless-super-delegation * Refactor too-many-nested-statements where possible * Suppress type checked errors where member is dynamically added (notably derived from josepy.JSONObjectWithFields) * Remove None default of func parameter for ExitHandler and ErrorHandler Resolves #5973
2018-05-16Safer to pylint on Python 3cclauss
2017-12-04Distribution specific override functionality based on class inheritance (#5202)Joona Hoikkala
Class inheritance based approach to distro specific overrides. How it works: The certbot-apache plugin entrypoint has been changed to entrypoint.ENTRYPOINT which is a variable containing appropriate override class for system, if available. Override classes register themselves using decorator override.register() which takes a list of distribution fingerprints (ID & LIKE variables in /etc/os-release, or platform.linux_distribution() as a fallback). These end up as keys in dict override.OVERRIDE_CLASSES and values for the keys are references to the class that called the decorator, hence allowing self-registration of override classes when they are imported. The only file importing these override classes is entrypoint.py, so adding new override classes would need only one import in addition to the actual override class file. Generic changes: Parser initialization has been moved to separate class method, allowing easy override where needed. Cleaned up configurator.py a bit, and moved some helper functions to newly created apache_util.py Split Debian specific code from configurator.py to debian_override.py Changed define_cmd to apache_cmd because the parameters are for every distribution supporting this behavior, and we're able to use the value to build the additional configuration dump commands. Moved add_parser_mod() from configurator to parser add_mod() Added two new configuration dump parsing methods to update_runtime_variables() in parser: update_includes() and update_modules(). Changed init_modules() in parser to accommodate the changes above. (ie. don't throw existing self.modules out). Moved OS based constants to their respective override classes. Refactored configurator class discovery in tests to help easier test case creation using distribution based override configurator class. tests.util.get_apache_configurator() now takes keyword argument os_info which is string of the desired mock OS fingerprint response that's used for picking the right override class. This PR includes two major generic additions that should vastly improve our parsing accuracy and quality: Includes are parsed from config dump from httpd binary. This is mandatory for some distributions (Like OpenSUSE) to get visibility over the whole configuration tree because of Include statements passed on in command line, and not via root httpd.conf file. Modules are parsed from config dump from httpd binary. This lets us jump into correct IfModule directives if for some reason we have missed the module availability (because of one being included on command line or such). Distribution specific changes Because of the generic changes, there are two distributions (or distribution families) that do not provide such functionality, so it had to be overridden in their respective override files. These distributions are: CentOS, because it deliberately limits httpd binary stdout using SELinux as a feature. We are doing opportunistic config dumps here however, in case SELinux enforcing is off. Gentoo, because it does not provide a way to invoke httpd with command line parsed from its specific configuration file. Gentoo relies heavily on Define statements that are passed over from APACHE2_OPTS variable /etc/conf.d/apache2 file and most of the configuration in root Apache configuration are dependent on these values. Debian Moved the Debian specific parts from configurator.py to Debian specific override. CentOS Parsing of /etc/sysconfig/httpd file for additional Define statements. This could hold other parameters too, but parsing everything off it would require a full Apache lexer. For CLI parameters, I think Defines are the most common ones. This is done in addition of opportunistic parsing of httpd binary config dump. Added CentOS default Apache configuration tree for realistic test cases. Gentoo Parsing Defines from /etc/conf.d/apache2 variable APACHE2_OPTS, which holds additional Define statements to enable certain functionalities, enabling parts of the configuration in the Apache2 DOM. This is done instead of trying to parse httpd binary configuration dumps. Added default Apache configuration from Gentoo to testdata, including /etc/conf.d/apache2 file for realistic test cases. * Distribution specific override functionality based on class inheritance * Need to patch get_systemd_os_like to as travis has proper os-release * Added pydoc * Move parser initialization to a method and fix Python 3 __new__ errors * Parser changes to parse HTTPD config * Try to get modules and includes from httpd process for better visibility over the configuration * Had to disable duplicate-code because of test setup (PyCQA/pylint/issues/214) * CentOS tests and linter fixes * Gentoo override, tests and linter fixes * Mock the process call in all the tests that require it * Fix CentOS test mock * Restore reseting modules list functionality for cleanup * Move OS fingerprinting and constant mocks to parent class * Fixes requested in review * New entrypoint structure and started moving OS constants to override classes * OS constants move continued, test and linter fixes * Removed dead code * Apache compatibility test changest to reflect OS constant restructure * Test fix * Requested changes * Moved Debian specific tests to own test file * Removed decorator based override class registration in favor of entrypoint dict * Fix for update_includes for some versions of Augeas * Take fedora fix into account in tests * Review fixes
2017-01-17Adopt consistent linting practices for the entire tree (#3843)Peter Eckersley
* Use the certbot pylintrc for the ACME module * Further parallelise lint, and don't run PEP8 checks
2016-03-11Fight with cyclic lintPeter Eckersley
2015-11-03Merge branch 'verb-arguments'Brad Warren
2015-11-01Another attempt at abstract-class-little-usedJakub Warmuz
2015-10-31This is a pretty silly lint warning that we're hitting a lotPeter Eckersley
2015-09-30Disable pylint invalid-namePeter Eckersley
It's clearly making our code harder to read and write
2015-09-16Merge remote-tracking branch 'origin/master' into cli2Peter Eckersley
2015-09-06lint: space check for dict-separatorJakub Warmuz
2015-08-29Disable another silly pylint warningPeter Eckersley
2015-08-29Prevent pylint from complaining about some silly thingsPeter Eckersley
2015-07-12Support for py3.3+ in acmeJakub Warmuz
2015-06-25logger = logging.getLogger(__name__)Jakub Warmuz
2015-06-25formatting and documentationJames Kasten
2015-06-16Prevent pylint from complaining about some silly thingsPeter Eckersley
2015-05-23Merge branch 'master' of ssh://github.com/letsencrypt/lets-encrypt-preview ↵Seth Schoen
into renewer
2015-05-23Allow 100 character lines when necessary.Peter Eckersley
2015-04-22Initial tests for renewerSeth Schoen
2015-03-18acme.jose: (Typed)JSONObjectWithFields, Field, JWA.Jakub Warmuz
2015-02-25Increase min-similarity-lines.Jakub Warmuz
2015-02-10Merge remote-tracking branch 'github/letsencrypt/master' into acmeJakub Warmuz
Conflicts: letsencrypt/client/CONFIG.py letsencrypt/client/auth_handler.py letsencrypt/client/challenge_util.py letsencrypt/client/client.py letsencrypt/client/crypto_util.py letsencrypt/client/revoker.py letsencrypt/client/tests/challenge_util_test.py
2015-02-08Fix "lint" and "providedBy" build errorsJakub Warmuz
2015-02-07ACME: pylint lint pluginJakub Warmuz
2015-01-31pylint ignore no-member in ConfArgParseJakub Warmuz
2015-01-28pylint: upstream fixed #248 in 1.4.0Jakub Warmuz
2015-01-26Remove duplicate code check on importsJames Kasten
2015-01-24pylint: ignore providedByJakub Warmuz
2015-01-24pylint: 10/10 with missing-docstringJakub Warmuz
2015-01-17Cleanup Installer API changeJames Kasten
2015-01-16remove deprecated optionsJames Kasten
2015-01-16updated pylintrc file to 1.3.1 version.James Kasten
2014-12-15Fix priv function nodocs regexJames Kasten
2014-12-14Remove requirement for doc of all "priv" funcJames Kasten
2014-12-14Remove deprecated optionsJames Kasten
2014-12-14Changed max line length to 80 charactersJames Kasten
2014-12-14Add pylintrc, remove docstring-req from test_ functions, start rising ↵James Kasten
coverage requirement