sandbox

15
#RefreshCache Sandbox Testing your project in under 60 seconds. Daniel Hazelbaker Information Technology Director High Desert Church Email: [email protected]

Upload: rolf

Post on 25-Feb-2016

32 views

Category:

Documents


0 download

DESCRIPTION

Sandbox. Testing your project in under 60 seconds. Daniel Hazelbaker Information Technology Director High Desert Church Email: [email protected]. Difficulties for the Developer. A developer must get their custom modules fully installed and functioning on an Arena installation. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Sandbox

#RefreshCache

SandboxTesting your project in under 60

seconds.Daniel Hazelbaker

Information Technology DirectorHigh Desert Church

Email: [email protected]

Page 2: Sandbox

Difficulties for the End-User1. As an end-user wanting to install the custom modules you have to find the latest version of the modules

you want.2. Download them and extract the package bundle.3. Run the SQL installer script(s) on the Arena server, remembering to run them against the correct database.4. Then you have to upload the page.xml into Arena. At that point you should have a working installation.5. When you are ready to upgrade your version of Arena you have to call around and find out if it is going to

break any custom modules or just try the upgrade and hope for the best.

Difficulties for the Developer1. A developer must get their custom modules fully installed and functioning on an Arena installation.2. You have to prepare all the SQL scripts.3. Then you must export the custom modules as a new page.xml, requiring you to add all supplemental files

needed one at a time without forgetting anything.4. After that you have to find a different Arena installation that you can test this page.xml on to make sure

that you remembered to include all the files, set the right paths, have the right module settings, etc. If anything is wrong you have to begin all over.

5. Finally you can upload your page.xml to the community server and announce that it is ready and hope everybody can find the correct version.

Page 3: Sandbox

Difficulties for the End-User1. As an end-user wanting to install the custom modules you have to find the latest version of the modules

you want.2. Download them and extract the package bundle.3. Run the SQL installer script(s) on the Arena server, remembering to run them against the correct database.4. Then you have to upload the page.xml into Arena. At that point you should have a working installation.5. When you are ready to upgrade your version of Arena you have to call around and find out if it is going to

break any custom modules or just try the upgrade and hope for the best.

Difficulties for the Developer1. A developer must get their custom modules fully installed and functioning on an Arena installation.2. You have to prepare all the SQL scripts.3. Then you must export the custom modules as a new page.xml, requiring you to add all supplemental files

needed one at a time without forgetting anything.4. After that you have to find a different Arena installation that you can test this page.xml on to make sure

that you remembered to include all the files, set the right paths, have the right module settings, etc. If anything is wrong you have to begin all over.

5. Finally you can upload your page.xml to the community server and announce that it is ready and hope everybody can find the correct version.

Page 4: Sandbox

What is a Sandbox?

Wikipedia: A sandbox is a testing environment that isolates untested code changes and outright experimentation from the production environment or repository

RefreshCache: A sandbox is a per-user, clean installation of Arena that is built based upon a specific version in under 30 seconds and used for testing purposes.

Page 5: Sandbox

What is a Sandbox?

• Each sandbox is unique to the user who created it.• Multiple versions of Arena are available for testing against.

• 2009.2.100• 2010.1.100• 2010.2.100 (coming soon)

• Each sandbox built is a clean installation of Arena.• Each user gets only a single sandbox.• Rebuild your sandbox as often as you like.• Takes 30 seconds or less.

Page 6: Sandbox

Why use a Sandbox?

• Ensuring that your SQL scripts, modules or full packages will work on any installation of Arena can take time.

• Keeping a vanilla version of Arena around is just one more thing to keep track of and keep up to date which you don’t want to do.

• Testing against multiple version of Arena takes even longer.• Sandboxes make this all easier.

Page 7: Sandbox

Demo

Page 8: Sandbox

PackagingMaking distribution and installation

easier.

Page 9: Sandbox

What is the Packaging Framework?

• Installer System.• Born out of Package Builder.• Based on the concepts from the Voracity Installer and the

RPM Package Manager (Linux).• Designed to be tightly integrated into Arena.

• (yet not dependant upon any specific version)• Provide dependency tracking.• One-click distribution.• One-click installation.

Page 10: Sandbox

RefreshCache.Packager

• Provides a framework for working with page.xml files either inside of Arena or outside of Arena.

• Open project (template) files for preparing how a page.xml file will look. (Package Builder)

• Building a final page.xml output from a template.• Opening and parsing a built page.xml file.

(Namespace Subject To Change)

Page 11: Sandbox

RefreshCache.Packager.Migrator

• Generic database interface (can be used from either inside or outside of Arena).

• Create & modify tables, stored procedures, row records, etc.

• Version based upgrades & downgrades: only run SQL commands that need to be run.

• Version based configuration & un-configuration: run .NET code when a dependency is installed or removed.

• Migration code can be embedded into a distributed page.xml file.

(Namespace Subject To Change)

Page 12: Sandbox

RefreshCache.Packager.Manager

• Public interface to installing and removing packages from an Arena installation.

• Query the database to see what packages are installed.• Safe installation and removal of packages.

• Database changes are performed inside a reversible transaction.

• File system changes are recorded and can also be reversed if something fails.

• Self-installation of the packaging system.

(Namespace Subject To Change)

Page 13: Sandbox

Packaging Framework Status

• Still has bugs to be worked out.• Needs more unit tests to test all functionality.• Installs itself successfully.• Can install, upgrade and remove other packages. • Compatible with current Arena page.xml format.

Page 14: Sandbox

Packaging Framework Future

• Central repository for hosting packages.• Support for multiple repositories (stable, beta, etc.).• Automatic dependency resolution.• GUI interface to browse and install packages.• Integration with the Arena QA Checklist project.

Page 15: Sandbox

More Resources

• Wiki - http://redmine.refreshcache.com/projects/refreshcache/wiki/Package_Manager• API Reference - http://redmine.refreshcache.com/projects/refreshcache/files