Wiki

Clone wiki

compatibility / Discussion

Discussion

Current status

This wiki's design, per-entry content and selection of entries is up for discussion. Things have been done so far with the goal of easing adaptation to improved designs and workflows, as soon as we get any.

It may be interesting to keep the wiki repo in sync as the main repo, so the UI helps visualizing history and handling the .wiki files and the scripts. What scripts, you ask? Well...

To make it more maintainable and easier to test/debug, there is a script to parse the wiki and save it as easy-to-edit YAML. This script checks for errors in formatting (parsing will break) and that the creole->YAML->creole conversion round-trips (showing a diff if it doesn't). Line-wrapping and some content normalization (e.g. lowercasing of link names, a.k.a. 'slugs', sorting) are handled by this script. It also checks and handles updates of dependencies. What dependencies, you ask? Well...

Dependencies for each entry are being recorded as possible. While some crazy visualizations are possible, the aim is to include dependencies (and some other useful information) in each package page, so people interested in making some software work get to know what needs to support PyPy before that software can.

Besides this conversion/checking script, there is one for spell-checking pages, one for building dependency graphs and an incipient test suite.

Workflow

As mentioned above, everything is being done to make the workflow flexible. Feel free to edit the wiki normally: the changes will be picked up and added to the YAML file. Soon, it'll be possible to edit the YAML file instead and get changes automatically into the wiki.

Adding Entries

If you are interested in adding some software to the wiki, please do so. You can copy and paste another entry and modify it to get the format right, but here's an overview anyway (one blank between entries, two between categories):

\\\\
== CATEGORY

=== [[SLUG | NAME]]
ICONS
\\ URL
\\ TAGLINE
----


\\\\
== CATEGORY

=== [[SLUG | NAME]]
ICONS
\\ URL
\\ TAGLINE
----

=== [[SLUG | NAME]]
ICONS
\\ URL
\\ TAGLINE
----

Entry:
SLUG - link target, page file name
NAME - link text, entry page title
URL - main URL, for links page (Home for now)
TAGLINE - links page
ICONS - info about compatibility and presence of entry page

Again, this is open to change. We could have a page per category, a different format, put the URL in the entry page instead or anything else.

The current YAML looks like this (one blank between entries, two between categories):

002 - Frameworks and application servers:

  bottle:
    slug: bottle
    name: Bottle
    url: https://github.com/defnull/bottle/wiki
    tagline: Bottle is a fast and simple micro-framework for small web-applications.
    compatible: '?'
    hasinfo: false
    information: ''
    category: 002 - Frameworks and application servers
    description: ''
    harddepends: []
    softdepends: []

  django:
    slug: django
    name: Django
    url: http://www.djangoproject.com/
    tagline: Django is a high-level Python Web framework that encourages rapid development
      and clean, pragmatic design.
    compatible: y
    hasinfo: true
    information: |
      Django is [[code.djangoproject.com/wiki/DjangoAndPyPy|known to work]]
      with PyPy. However, most DB drivers don't work, leaving [[psycopg]] and SQLite
      as options. PyPy
      [[http://speed.pypy.org/timeline/?ben=django|runs the templating engine faster]]
      than CPython, but so far DB access is slower.
    category: 002 - Frameworks and application servers
    description: ''
    harddepends: []
    softdepends: []

Testing

Tests are conducted manually and the results are added to an entry's page. If you have tested something and want it to appear here but not to edit the wiki, report your findings on #pypy on freenode and someone will put it in the wiki for you.

See Contributing for detailed instructions about testing software compatibility with PyPy.

Any patches needed for the test suite to run should be reported if possible.

Ideas

Add your idea here

To-do

These are the features and tasks planned for the future:

  • Add PyPI link and a list of links per entry.
  • Make the conversion script handle updating YAML -> wiki.
  • Decide whether to mirror the wiki in the repository, or just the scripts.
  • Clean up and commit other helper scripts.

Updated