Skip to content

Building Rubi Package

Patrick Scheibe edited this page Aug 23, 2018 · 2 revisions

These are the things that need to be done to release a new version Rubi, when either Albert has made changes in the integration rules or things changed in the interface code. Building the Rubi Mathematica package consists of 3 steps

  1. Convert all Rubi notebooks into .m package files by extracting the code cells and exporting them into the IntegrationRules directory inside the Mathematica package folder.
  2. Updating the PacletInfo.m to include the new version number
  3. Using the RubiPackageTools.m from the Rubi sources to pack a paclet and zip file containing the package.

Converting the notebooks to .m files is an automated process and we assume, that your Rubi source are placed below a dev/Rubi folder.

Get["dev/Rubi/Rubi/RubiPackageTools.m"];
BuildIntegrationRules[];

This will automatically go through all notebooks that reside in the parent folder under IntegrationRuleNotebooks and recreate the same folder-structure and export an .m file for each found notebook.

The PacletInfo.m file can be found in the same source directory as the Rubi.m. We use a somewhat specific version number that has the following form 4.16.0.3. The first 3 numbers represent the Rubi engine version which is the version of the integration rules that are Albert's responsibility. The last number is the version of the interface, which is the package code itself that is required to load the rubi rules, provide Steps/Stats, and to format expressions. So if the integration rules have not changed, then only the last number will be incremented.

In a last step, we commit all changes and tag this commit with a git tag that is equal to the version number. Then, we use

DeployRubi[]

from the RubiPackageTools.m to create a paclet and zip file containing the Mathematica package. After that, changes are pushed to the master-branch on GitHub and the git tag is used to create a new release i the release section.

The final step is to upload the .paclet and the .zip file as assets to the new release and edit the website to include installation instructions that point to the latest release.

Clone this wiki locally