How to Release PyMite

Author: Dean Hall
Id:HowToReleasePyMite.txt 268 2009-02-20 23:23:49Z dwhall

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 clean; make TARGET=AT91SAM7
    • cd src/sample/at91sam7; make
    • cd ../../..; make clean; make TARGET=AVR
    • cd src/sample/avr; make; cd ../../..
    • 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

      • make clean; make TARGET=AT91SAM7; cd src/sample/at91sam7; make

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

      • Apply a jumper to JP28 for 5 seconds to clear flash; remove the jumper

      • Apply a jumper to JP5 for 30 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 mainline:

    % svn cp -m "Creating release RR" https://svn.pymite.python-hosting.com/trunk https://svn.pymite.python-hosting.com/tags/pymite-RR
    
  • Make the distribution file:

    % make dist PM_RELEASE=RR
    
  • Upload the tar file to a public file server and link to it from the PyMite wiki front page. Get the MD5 hash so people can check the authenticity:

    % md5 pymite-RR.tar.gz
    
  • Announce the release on: