How to Release PyMite

Author: Dean Hall
Id:HowToReleasePyMite.txt 355 2009-04-21 02:59:18Z dwhall256

Purpose

This document describes how to make a package release of the PyMite project. In doing so, it is intended strictly for the PyMite release manager.

Overview

Creating a release of PyMite involves updating information in a number of places and performing some housekeeping actions, but it is a fairly straightforward process that can be accomplished by performing the following list of actions in the prescribed order:

  • Create a ticket in the issue tracking system

    • Give the ticket a title like "Create release 03"
    • Assign the ticket to the proper milestone
    • Accept the ticket
  • Create a branch for the issue (there will be changes to files)

  • Edit the README file:

    • Update the ":Release:" number near the top of the file
    • Add thanks to anyone who gave helpful feedback
    • In the "Release Notes" section, create a new entry for the release
    • Add a line item into the entry for each ticket that went into this release.
  • Edit src/vm/pm.h, update the value for the definition, PM_RELEASE

  • Run GNU indent on src/vm using the command make indent

  • Perform all the standard builds to see that they complete without error

    • make html
    • make TAGS
    • make check
    • make ipm
    • map(range, range(5))
    • Ctrl+D
    • make PLATFORM=at91sam7s-ek
    • make PLATFORM=avr
    • cd src/platform/avr; avr-size main.elf
    • Record the size of the AVR sample app in the ticket
  • Verify that a sample app runs on an AVR device; this can be done in one of the following ways:

    • Download and run a known good app on an actual AVR device
    • Build and run a known good app in Atmel's AvrStudio simulator
    • Run a known good app on an AVR simulator
  • Verify that a sample app runs on an AT91SAM7 device; this can be done in one of the following ways:

    • Download and run a known good app on an actual AT91SAM7 device

      • cd src/platform/at91sam7s-ek; make

      • Connect the AT91SAM7S-EK to the computer via a USB cable

      • Apply a jumper to JP5 for 10 seconds to restore SAM-BA; remove the jumper

      • Disconnect, pause and reconnect the AT91SAM7S-EK's USB cable to reset the connection

      • Run sam7:

        % sam7
        found boot agent
        Chip Version: 0
        Embedded Processor: ARM7TDMI
        NVRAM Region 1 Size: 64 K
        NVRAM Region 2 Size: 0 K
        SRAM Size: 16 K
        Series: AT91SAM7Sxx
        Page Size: 128 bytes
        Lock Regions: 16
        
        sam7> unlock_regions
        unlocking region 0: done
        unlocking region 1: done
        
        sam7> flash sample.bin
        sam7> boot_from_flash
        sam7> <ctrl+c>
        
    • Build and run a known good app in IAR's Embedded Workbench for Arm, Kickstart edition

    • Run a known good app on an ARM simulator

  • Check-in the branch and review

  • Mainline the branch

  • Tag the release in the repository and make the distribution file:

    $ make dist PM_RELEASE=RR
    
  • Upload the distribution file to the Python-on-a-chip downloads page.

  • Announce the release on: