Churchyard (talk | contribs) |
Churchyard (talk | contribs) |
||
(29 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<!-- Self Contained or System Wide Change Proposal? | <!-- Self Contained or System Wide Change Proposal? | ||
Use this guide to determine to which category your proposed change belongs to. | Use this guide to determine to which category your proposed change belongs to. | ||
Line 59: | Line 57: | ||
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | ||
--> | --> | ||
* Tracker bug: | * Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1421610 #1421610] | ||
== Detailed Description == | == Detailed Description == | ||
Line 67: | Line 65: | ||
A work in progress for the lab is [https://github.com/fedora-python/fedora-kickstarts-python-classroom available on GitHub]. | A work in progress for the lab is [https://github.com/fedora-python/fedora-kickstarts-python-classroom available on GitHub]. | ||
The Lab will contain: | |||
* Python 3.6 including the python3-devel package | |||
* Python 2.7 including the python2-devel package | |||
* PyPy 3 | |||
* tox | |||
* virtualenv | |||
* IPython console for both Python 2 and 3 | |||
* Jupyter Notebook with Python 2 and 3 kernels (if this gets into Fedora in time) | |||
* offline documentation for Python 2 and 3 | |||
* basic toolchain for building C and C++ extensions and valgrind | |||
* git | |||
* nano, vim, ssh client, curl, wget | |||
* devel packages for commonly used dependencies of packages on the Python Package Index | |||
** libxml2-devel | |||
** libyaml-devel | |||
** ... | |||
The Workstation based lab will also contain: | |||
* Basic GNOME | |||
* Terminal emulator | |||
* Text editor | |||
* PDF reader | |||
* Web browser | |||
* Image viewer | |||
* ...and possibly other utilities | |||
But it will not include multimedia and virtualization support, office suite, e-mail client. | |||
== Benefit to Fedora == | == Benefit to Fedora == | ||
Line 82: | Line 110: | ||
<!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
** create the comps group | ** create the comps group | ||
** create kickstarts for live | ** create kickstarts for live and vagrant variants | ||
** create a layer for docker | |||
* Other developers: | * Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
<!-- What work do other developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do other developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
** Design team: Create an image for [https://labs.fedoraproject.org/ labs.fedoraproject.org] | |||
** Websites team: Add the new Lab to [https://labs.fedoraproject.org/ labs.fedoraproject.org] | |||
* Release engineering: <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | * Release engineering: <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
Line 94: | Line 125: | ||
*** Labs/i386/iso/Fedora-Python-Classroom-Live-i386-_RELEASE_MILESTONE_.iso | *** Labs/i386/iso/Fedora-Python-Classroom-Live-i386-_RELEASE_MILESTONE_.iso | ||
*** Labs/x86_64/iso/Fedora-Python-Classroom-Live-x86_64-_RELEASE_MILESTONE_.iso | *** Labs/x86_64/iso/Fedora-Python-Classroom-Live-x86_64-_RELEASE_MILESTONE_.iso | ||
*** | *** Labs/armhfp/images/Fedora-Python-Classroom-armhfp-_RELEASE_MILESTONE_-sda.raw.xz | ||
*** | *** Labs/i386/images/Fedora-Python-Classroom-Vagrant-_RELEASE_MILESTONE_.i386.vagrant-libvirt.box | ||
*** | *** Labs/i386/images/Fedora-Python-Classroom-Vagrant-_RELEASE_MILESTONE_.i386.vagrant-virtualbox.box | ||
*** | *** Labs/x86_64/images/Fedora-Python-Classroom-Vagrant-_RELEASE_MILESTONE_.x86_64.vagrant-libvirt.box | ||
*** | *** Labs/x86_64/images/Fedora-Python-Classroom-Vagrant-_RELEASE_MILESTONE_.x86_64.vagrant-virtualbox.box | ||
*** | *** docker images via [https://communityblog.fedoraproject.org/fedora-docker-layered-image-build-service-now-available/ Fedora Docker Layered image build service] | ||
* Policies and guidelines: nothing <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | * Policies and guidelines: nothing <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
<!-- Do the packaging guidelines or other documents need to be updated for this feature? If so, does it need to happen before or after the implementation is done? If a FPC ticket exists, add a link here. --> | <!-- Do the packaging guidelines or other documents need to be updated for this feature? If so, does it need to happen before or after the implementation is done? If a FPC ticket exists, add a link here. --> | ||
* Trademark approval: | * Trademark approval: [https://pagure.io/Fedora-Council/tickets/issue/87 approved] | ||
<!-- If your Change may require trademark approval (for example, if it is a new Spin), file a ticket ( https://fedorahosted.org/council/ ) requesting trademark approval from the Fedora Council. This approval will be done via the Council's consensus-based process. --> | <!-- If your Change may require trademark approval (for example, if it is a new Spin), file a ticket ( https://fedorahosted.org/council/ ) requesting trademark approval from the Fedora Council. This approval will be done via the Council's consensus-based process. --> | ||
Line 129: | Line 160: | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
=== Live image === | |||
# Download the latest Fedora 26 iso from [https://koji.fedoraproject.org/koji/packageinfo?packageID=23843 Koji] | |||
# Boot it on actual hardware or virtualized machine | |||
# Test if it boots, installs | |||
# Tests if it contains the tools described in the Detailed Description | |||
=== Docker === | |||
# Run <code>sudo docker pull candidate-registry.fedoraproject.org/f26/python-classroom</code> | |||
# Does it pull? | |||
# Run <code>sudo docker run -ti candidate-registry.fedoraproject.org/f26/python-classroom</code> | |||
# Does it start? | |||
# Tests if it contains the tools described in the Detailed Description | |||
=== Vagrant === | |||
# Download the most recent sucessfull Fedora 26 image from [https://koji.fedoraproject.org/koji/packageinfo?packageID=23847 Koji] | |||
# Run <code>vagrant box add fedora/26-python-classroom ./Fedora-Python-Classroom-Vagrant-26-*.vagrant-virtualbox.box # or ...libvirt.box</code> | |||
# Run <code>vagrant init fedora/26-python-classroom</code> | |||
# Run <code>vagrant up --provider virtualbox # or libvirt</code> Does it start? | |||
# Run <code>vagrant ssh</code> Does it SSH you in? | |||
# Tests if it contains the tools described in the Detailed Description | |||
Preferably try it form other OSes as well. With both libvirt and virtualbox backends if possible. | |||
=== Known issues === | |||
* Vagrant: LANG and LC_ALL are set based on ssh client, but non-english locales are not there, co it falls back to C [https://bugzilla.redhat.com/show_bug.cgi?id=1432426 #1432426] | |||
* All: All alternate Pythons are dragged by tox and that brings dependency on X [https://bugzilla.redhat.com/show_bug.cgi?id=1412398 #1412398] | |||
== User Experience == | == User Experience == | ||
<!-- If this change proposal is noticeable by its target audience, how will their experiences change as a result? Describe what they will see or notice. --> | <!-- If this change proposal is noticeable by its target audience, how will their experiences change as a result? Describe what they will see or notice. --> | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
The target audience will find Fedora Python Classroom Lab at [https://labs.fedoraproject.org/ labs.fedoraproject.org]. | |||
The target audience will find <code>fedora-python-classroom</code> when running Docker or vagrant. | |||
== Dependencies == | == Dependencies == | ||
Line 140: | Line 202: | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
none | |||
== Contingency Plan == | == Contingency Plan == | ||
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "Revert the shipped configuration". Or it might not (e.g. rebuilding a number of dependent packages). If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. --> | <!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "Revert the shipped configuration". Or it might not (e.g. rebuilding a number of dependent packages). If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. --> | ||
* Contingency mechanism: | * Contingency mechanism: Only deliver partial list of new deliverables. Or none. <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
<!-- When is the last time the contingency mechanism can be put in place? This will typically be the beta freeze. --> | <!-- When is the last time the contingency mechanism can be put in place? This will typically be the beta freeze. --> | ||
* Contingency deadline: | * Contingency deadline: beta freeze <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? --> | <!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? --> | ||
* Blocks release? | * Blocks release? No <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
* Blocks product? | * Blocks product? No <!-- Applicable for Changes that blocks specific product release/Fedora.next --> | ||
== Documentation == | == Documentation == | ||
Line 156: | Line 218: | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
Nothing exists yet. Documentation will be added to the [https://developer.fedoraproject.org/ Fedora Developer Portal]. | |||
== Release Notes == | == Release Notes == | ||
Line 165: | Line 227: | ||
--> | --> | ||
[[Category: | [[Category:ChangeAcceptedF26]] | ||
<!-- When your change proposal page is completed and ready for review and announcement --> | <!-- When your change proposal page is completed and ready for review and announcement --> | ||
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | <!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> |
Latest revision as of 12:09, 11 July 2017
Python Classroom Lab
Summary
A new Python Classroom Lab will be created in 3 variants: Workstation based, Docker based and Vagrant based. It's an important step for our Fedora Loves Python initiative. The main audience are Python teachers and workshop instructors.
Owner
- SIG: SIGs/Python
- Namely: Miro Hrončok
- Email: python-devel@lists.fedoraproject.org
- Release notes owner:
Current status
Detailed Description
A new comps packages group with Python development tools will be created and a new Lab (or Spin) for teaching Python or Python related topics will be available from labs.fedoraproject.org as well as from the Docker Hub and Vagrant Atlas.
A work in progress for the lab is available on GitHub.
The Lab will contain:
- Python 3.6 including the python3-devel package
- Python 2.7 including the python2-devel package
- PyPy 3
- tox
- virtualenv
- IPython console for both Python 2 and 3
- Jupyter Notebook with Python 2 and 3 kernels (if this gets into Fedora in time)
- offline documentation for Python 2 and 3
- basic toolchain for building C and C++ extensions and valgrind
- git
- nano, vim, ssh client, curl, wget
- devel packages for commonly used dependencies of packages on the Python Package Index
- libxml2-devel
- libyaml-devel
- ...
The Workstation based lab will also contain:
- Basic GNOME
- Terminal emulator
- Text editor
- PDF reader
- Web browser
- Image viewer
- ...and possibly other utilities
But it will not include multimedia and virtualization support, office suite, e-mail client.
Benefit to Fedora
One of the benefits of Fedora for Python developers is the ease of setting up Python development. This Fedora Lab will make it even easier for teachers and instructors to use Fedora in their classrooms or workshops. Ready to use operating system with important stuff pre-installed - either with GNOME or as a headless environment for Docker or Vagrant.
Scope
- Proposal owners:
- create the comps group
- create kickstarts for live and vagrant variants
- create a layer for docker
- Other developers:
- Design team: Create an image for labs.fedoraproject.org
- Websites team: Add the new Lab to labs.fedoraproject.org
- Release engineering:
- List of deliverables:
- Labs/i386/iso/Fedora-Python-Classroom-Live-i386-_RELEASE_MILESTONE_.iso
- Labs/x86_64/iso/Fedora-Python-Classroom-Live-x86_64-_RELEASE_MILESTONE_.iso
- Labs/armhfp/images/Fedora-Python-Classroom-armhfp-_RELEASE_MILESTONE_-sda.raw.xz
- Labs/i386/images/Fedora-Python-Classroom-Vagrant-_RELEASE_MILESTONE_.i386.vagrant-libvirt.box
- Labs/i386/images/Fedora-Python-Classroom-Vagrant-_RELEASE_MILESTONE_.i386.vagrant-virtualbox.box
- Labs/x86_64/images/Fedora-Python-Classroom-Vagrant-_RELEASE_MILESTONE_.x86_64.vagrant-libvirt.box
- Labs/x86_64/images/Fedora-Python-Classroom-Vagrant-_RELEASE_MILESTONE_.x86_64.vagrant-virtualbox.box
- docker images via Fedora Docker Layered image build service
- List of deliverables:
- Policies and guidelines: nothing
- Trademark approval: approved
Upgrade/compatibility impact
nothing
How To Test
Live image
- Download the latest Fedora 26 iso from Koji
- Boot it on actual hardware or virtualized machine
- Test if it boots, installs
- Tests if it contains the tools described in the Detailed Description
Docker
- Run
sudo docker pull candidate-registry.fedoraproject.org/f26/python-classroom
- Does it pull?
- Run
sudo docker run -ti candidate-registry.fedoraproject.org/f26/python-classroom
- Does it start?
- Tests if it contains the tools described in the Detailed Description
Vagrant
- Download the most recent sucessfull Fedora 26 image from Koji
- Run
vagrant box add fedora/26-python-classroom ./Fedora-Python-Classroom-Vagrant-26-*.vagrant-virtualbox.box # or ...libvirt.box
- Run
vagrant init fedora/26-python-classroom
- Run
vagrant up --provider virtualbox # or libvirt
Does it start? - Run
vagrant ssh
Does it SSH you in? - Tests if it contains the tools described in the Detailed Description
Preferably try it form other OSes as well. With both libvirt and virtualbox backends if possible.
Known issues
- Vagrant: LANG and LC_ALL are set based on ssh client, but non-english locales are not there, co it falls back to C #1432426
- All: All alternate Pythons are dragged by tox and that brings dependency on X #1412398
User Experience
The target audience will find Fedora Python Classroom Lab at labs.fedoraproject.org.
The target audience will find fedora-python-classroom
when running Docker or vagrant.
Dependencies
none
Contingency Plan
- Contingency mechanism: Only deliver partial list of new deliverables. Or none.
- Contingency deadline: beta freeze
- Blocks release? No
- Blocks product? No
Documentation
Nothing exists yet. Documentation will be added to the Fedora Developer Portal.