From Fedora Project Wiki
 
(9 intermediate revisions by the same user not shown)
Line 135: Line 135:
 
<!-- 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: [https://pagure.io/Fedora-Council/tickets/issue/87 waiting]
+
* 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 163: Line 163:
 
=== Live image ===
 
=== Live image ===
  
# Download the iso from (TODO add link).
+
# Download the latest Fedora 26 iso from [https://koji.fedoraproject.org/koji/packageinfo?packageID=23843 Koji]
 
# Boot it on actual hardware or virtualized machine
 
# Boot it on actual hardware or virtualized machine
 
# Test if it boots, installs
 
# Test if it boots, installs
Line 172: Line 172:
 
# Run <code>sudo docker pull candidate-registry.fedoraproject.org/f26/python-classroom</code>
 
# Run <code>sudo docker pull candidate-registry.fedoraproject.org/f26/python-classroom</code>
 
# Does it pull?
 
# Does it pull?
# Run <code>sudo docker run -ti python-classroom</code>
+
# Run <code>sudo docker run -ti candidate-registry.fedoraproject.org/f26/python-classroom</code>
 
# Does it start?
 
# Does it start?
 
# Tests if it contains the tools described in the Detailed Description
 
# Tests if it contains the tools described in the Detailed Description
Line 178: Line 178:
 
=== Vagrant ===
 
=== Vagrant ===
  
# Run <code>vagrant init (TODO add name)</code>
+
# Download the most recent sucessfull Fedora 26 image from [https://koji.fedoraproject.org/koji/packageinfo?packageID=23847 Koji]
# Run <code>vagrant up</code> Does it download? Does it start?
+
# 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?
 
# Run <code>vagrant ssh</code> Does it SSH you in?
 
# Tests if it contains the tools described in the Detailed Description
 
# 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.
 
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 ==

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

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

Fedora-loves-python.png

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
  • 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
  • Policies and guidelines: nothing

Upgrade/compatibility impact

nothing

How To Test

Live image

  1. Download the latest Fedora 26 iso from Koji
  2. Boot it on actual hardware or virtualized machine
  3. Test if it boots, installs
  4. Tests if it contains the tools described in the Detailed Description

Docker

  1. Run sudo docker pull candidate-registry.fedoraproject.org/f26/python-classroom
  2. Does it pull?
  3. Run sudo docker run -ti candidate-registry.fedoraproject.org/f26/python-classroom
  4. Does it start?
  5. Tests if it contains the tools described in the Detailed Description

Vagrant

  1. Download the most recent sucessfull Fedora 26 image from Koji
  2. Run vagrant box add fedora/26-python-classroom ./Fedora-Python-Classroom-Vagrant-26-*.vagrant-virtualbox.box # or ...libvirt.box
  3. Run vagrant init fedora/26-python-classroom
  4. Run vagrant up --provider virtualbox # or libvirt Does it start?
  5. Run vagrant ssh Does it SSH you in?
  6. 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.

Release Notes