Comments (12)
@Gallaecio I think there are plenty of information about that, like here https://wiki.python.org/moin/Python2orPython3
They only recommend Python 3 when you have to choose between Python 2 and Python 3. That is, they recommend Python 3 for new non-library projects. Which makes perfect sense, but I donβt think that it applies to Spidermon, as a library to be used from existing projects, some of which may still use Python 2.
In fact, the article has a section on how to support both versions.
@Gallaecio I found a good one https://python3statement.org/
What are the concerns in particular?
From there:
The developers of the Python language extended support of Python 2.7 from 2015 to January 1, 2020, recognising that many people were still using Python 2. We believe that the extra 5 years is sufficient to transition off of Python 2, and our projects plan to stop supporting Python 2 when upstream support ends in 2020, if not before. We will then be able to simplify our code and take advantage of the many new features in the current version of the Python language and standard library.
I think this is what I am suggesting. Keeping the existing Python 2 support we have for the following 9 months, until Python 2 reaches end of life.
The paragraph after that states:
In addition, significantly before 2020, many of our projects will step down Python 2.7 support to only fixing bugs, and require Python 3 for all new feature releases. Some projects have already made this transition. This too parallels support for the language itself, as Python 2.7 releases only include bugfixes and security improvements.
I think this proposal, maintaining a second branch which supports Python 2 and receives bugfixes, with its own releases, could be more time consuming for us.
from spidermon.
I agree with @Gallaecio . We still have a large code base using Python 2.7 that would be benefited with new features introduced in Spidermon. Given the open issues we have, I don't see any feature in the next 9 months that will be punished if we code it maintaining Python 2.7 support.
I am ok of dropping Python 3.4 support in the next release as it already reached its end-of-life.
from spidermon.
As the project is build to help Scrapy users, we should try to support the versions that are supported by it. At this moment, we will support Python 3.5+. Support for older versions was dropped.
from spidermon.
+1 to see this one in the next release.
from spidermon.
I think we should try to support Python versions until their end of life. Which means that the next version can drop support for 3.4 (end of life reached on 2019-03-19), but that we should try and support 2.7 until 2020-01-01.
from spidermon.
@Gallaecio And the reasons for that?
Support means we ensure that it works on particular versions
I see only the downsides - providing a good excuse to continue to use outdated tools for users.
from spidermon.
I am also in favor of porting and follow the Python guidelines to not support Python2 in the next release. The experience that I have from my time at Sugar Labs in regards to porting and migration to Python3 is quite rocky. The process takes time, planning, and a lot of little fixes to be done both in code and documentation, I am not exactly sure of how much code/packages of Spidermon are in Python2.7 but we should really start planning/working towards it.
Since Python2.7 support ends on 2020-01-01 maybe we can work towards support it till August or September maybe. And work on the porting in the background till then. Even the latest software releases comes with Python3 support.
from spidermon.
Where in https://devguide.python.org/ does it recommend not to support Python 2?
from spidermon.
@Gallaecio I think there are plenty of information about that, like here https://wiki.python.org/moin/Python2orPython3
from spidermon.
@Gallaecio I found a good one https://python3statement.org/
What are the concerns in particular?
from spidermon.
Ok, so we all agree upon following official end of life and drop support after? That is, unless somebody pays us.
from spidermon.
Hey folks, reading and raising this topic again.
I think we can at least start with the migration work, towards the goal of dropping support for python 27 and python < 3.4
What say? Should we get the ball rolling now or after the end of life of Python2.7
from spidermon.
Related Issues (20)
- Add support for lists of dictionaries in field coverage rules
- Dependencies needs some refactoring
- Update supported python versions
- Support different severity levels for Spidermon alerts HOT 2
- Error when using custom job tags action class HOT 1
- Create ReadTheDocs configuration build file
- Field coverage always 100% HOT 5
- spidermon.utils.zyte.client uses only project setting module for settings.
- Error with SendSmtpEmail: 'NoneType' object has no attribute 'bio_read' HOT 5
- Support restricting the coverage monitor fields HOT 4
- Unable to validate date and date-time with jsonschema HOT 2
- CI is broken in master HOT 1
- Add handling for datetime aware start time in PeriodicExecutionTimeMonitor HOT 1
- Change format of content of _validation field HOT 1
- Periodic item count monitor crashes if it runs before item_scraped_count exists in stats
- Field names containing "_items" crash field coverage
- Default email template fails with latest `scrapinghub` client version
- `SPIDERMON_MONITOR_SKIPPING_RULES` isn't documented
- feature: Allow to filter jobs in ZyteJobsComparisonMonitor by close_reason HOT 1
- feature: Allow to filter jobs in ZyteJobsComparisonMonitor by spider arguments
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spidermon.