Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

python 3 strategy #408

Closed
fredgibbs opened this issue Apr 4, 2017 · 23 comments
Closed

python 3 strategy #408

fredgibbs opened this issue Apr 4, 2017 · 23 comments

Comments

@fredgibbs
Copy link
Contributor

Opening a general issue for further consideration. As more people begin to use or migrate to python 3, we should think ahead about how we want to (or not) provide additional instructions in lessons that use 2.x. I do think we have to update lessons, but this requires a larger editorial discussion about whether to do so and how to manage it. This could be a yet another way of encouraging community engagement for those so inclined to help but don't want to take on a new lesson, and a nice way to give discrete credit to people for their time and effort.

@acrymble
Copy link

acrymble commented Apr 4, 2017

I am pretty sure I went through these last summer to update them for python 3.x, so there may be fewer problems than might first be assumed. See #277.

@fredgibbs
Copy link
Contributor Author

great! so if #407 turns out to be incorrect, i can ask for more information or we can close it. i just created the ticket before testing so i wouldn't forget.

@ianmilligan1
Copy link
Contributor

#407 is correct – Downloading Web Pages has not been upgraded to Python 3. I went through them with my class and updated, but didn't have the cycles to do an update to the lesson.

@ianmilligan1
Copy link
Contributor

Overall, I do think we need to stick with Python 3 for future lessons – in full agreement. I put a few code snippets over in #407.

@acrymble
Copy link

acrymble commented Apr 4, 2017

Unlike the creators of Python v3, our strategy shouldn't break the lessons for people using v2, since we may well have educators using these in classrooms relying on our setup doing what they expect come show-time.

@ianmilligan1
Copy link
Contributor

Have parallel Python 2 and 3 lessons then? Or just leave as is.

@jerielizabeth
Copy link
Contributor

I think either parallel or "interlinear" for the lessons originally in python 2 (Beautiful Soup also falls into this category.) What would be amazing, I think, would be a way to toggle the python version at the top of the lesson.

@fredgibbs
Copy link
Contributor Author

i think the toggle approach is the way to go. it would mean having python 2 and 3 explanations composed in a way that can be cleanly separated (that is, not integrated into text common to both), but i don't think that would prove too difficult. there are a number of ways to code this that would not muddle the markdown too much (and obviously only for the divergent parts of the lesson).

@acrymble
Copy link

acrymble commented Apr 5, 2017

I have to say I'm feeling uncomfortable about this whole idea, largely because it affects a lot of lessons with my name on them. That means I will feel compelled to go through meticulously and check them all because it's me that looks careless if the new changes break anything. That's something I don't want on my summer to-do list.

@ianmilligan1
Copy link
Contributor

What if we each took a lesson? I also wouldn't want to do more than one or two of these, and I don't think anybidy would suggest that you do so.

@acrymble
Copy link

acrymble commented Apr 5, 2017

That makes me more nervous to be honest. I'm hesitant from experience on this, because I've had to 'fix' fixes to these lessons at least twice since they were published many years ago, and both times it took me days to get everything working right. I've never been expected to do that with an article I've published, even when there are obvious mistakes. And to be honest it would put me off further publishing with us, because this feels like another round of peer review 6 years later.

We have to remember that any changes mean changes to 34 lesson files (17 English, 17 Spanish) and 18 .py files (9 English and 9 Spanish - possibly becoming 36 .py files to accommodate the differences). All because someone didn't read the instructions (which are internally correct - though admittedly could be signposted clearly at the top of each lesson to highlight dependencies).

That's not to say I don't think we should fix broken lessons. #285, #395 are both cases where the lesson actually doesn't work because of changes to the wider web.

By contrast, both this and #393 are cases in which the lesson may not use the most up to date option, but it still works fine if you follow the instructions.

The fact that we still have a mountain of tickets related to updating really suggests to me that there isn't an appetite for doing this sort of thing (#222, #223, #225, #297, #304). And it starts to raise questions we haven't really addressed about 'authorship' and 'published' that I find problematic.

@ianmilligan1
Copy link
Contributor

Ok let's just leave it then.

@fredgibbs
Copy link
Contributor Author

just to clarify, i've never thought that these kinds of updates are things that authors should do (i agree it would deter authorship), but us as editors. frankly, i think it's the kind of work that junior editors should do to get more familiar with the entire family of lessons, how to write and edit them, as well as all of the editorial workflows and git. it's not super fun, but very important work and (and experience) in my opinion.

this also raises a related question of what desire/obligation we have to simply leave lessons alone as "published" work of an "author" rather than offer a continually updated (and improved?) set of tutorials maintained by a community of volunteers. if an editor or someone else comes along and has lots of improvements for a lesson (whether or not it's a software update issue) makes it not quite the author's sole work anymore, but their name is still featured as the primary author and later contributors get credit for their work as well. i think that's great. i would guess that potential PH authors would be happy to have their work not remain fixed but be improved over time to be most useful and relevant, provided they are still getting credit for the difficult work of writing a lesson.

perhaps on a new and dedicated thread for archival purposes, but i encourage ALL current editors to weigh in on this issue. it sets an important direction for the future of PH.

@jerielizabeth
Copy link
Contributor

jerielizabeth commented Apr 5, 2017

I would hesitate to see the collections of issues related to this topic as evidence that there is no appetite. We keep running into this same set of tensions around what it means to publish and be an author for PH lessons, and I think the collection of issues is a symptom of the different pulls within the project, and reflects that we haven't resolved those tensions.

Before adding much more, is this conversation moving to a different ticket? :)

@ianmilligan1
Copy link
Contributor

if an editor or someone else comes along and has lots of improvements for a lesson (whether or not it's a software update issue) makes it not quite the author's sole work anymore, but their name is still featured as the primary author and later contributors get credit for their work as well. i think that's great. i would guess that potential PH authors would be happy to have their work not remain fixed but be improved over time to be most useful and relevant, provided they are still getting credit for the difficult work of writing a lesson.

This is what I was thinking above – in terms of spreading out some of the labour of the Python 2 --> 3 migration (which isn't fun). But if the author isn't keen on it, then I don't think we should override wishes?

I guess in terms of work cultures, my Programming Historian articles have never really 'counted' on my CV, they're more just I guess service. But that's just me and my particular context.

@acrymble
Copy link

acrymble commented Apr 5, 2017

That's what I'm hoping we can flush out on #403. Thought this is a bit more specific than that was meant to tackle, Ian's comment about his CV is what I think we all need to determine, because it's easy to assume we (and our authors) are all operating in the same system. But different people have different needs, and certain countries have a more/less adventurous approach to work than others. I'm quite confident we can find a path through it all, but I think it needs to start with an acknowledgment of those differences so we can identify sticking points and find solutions.

@acrymble
Copy link

Can we fix this specific issue at least temporarily by adding a warning to the top of these lessons of the dependencies on Python 2.x? Not unlike we did when a few of the lessons broke with changes to the Old Bailey website?

@walshbr
Copy link
Contributor

walshbr commented Jun 26, 2017

This came up in backchannel conversations with the authors of the Network Analysis with Python lesson. The authors wanted to know whether they should honor the Python 2 note here or go with version 3.

So just to clarify for new lessons - is my read correct that Python 3 is acceptable so long as the version is explicitly articulated in detail at the top of the lesson? That was my suggestion to the authors, at least, though they tried to make their lesson as version agnostic as possible as they understood that I might be asking them to convert for Python 2. You can see the text of their caveat about version numbers here.

@ianmilligan1
Copy link
Contributor

My vote is for Python 3 being fully acceptable!

@jerielizabeth
Copy link
Contributor

I second the vote for an embrace of Python 3 in new lessons.

@acrymble
Copy link

Agree

acrymble pushed a commit that referenced this issue Jul 19, 2017
Version warning at line 56-58
Link to installation instructions for v 2.x given.
acrymble pushed a commit that referenced this issue Jul 19, 2017
Version warning lines 54-56
@acrymble
Copy link

The direct issue in this lesson has been addressed with a warning:

Python Version

This lesson was written using Python v. 2.x. Code may not be compatible with newer versions of Python. 'Python Introduction and Installation' provides instructions for how you can install Python 2.x alongside newer versions.


I have added this to the python-based lessons written by me that actually included Python code (but didn't mention version 2).

If @mariajoafana @vgayolrs or @arojascastro could translate the above passage I will also add it to the Spanish lessons and we can close this issue and continue the broader discussion on #498

@acrymble
Copy link

This has been coopted into #525

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants