Introduction
OpenTAP makes customization easy by offering a plugin-based architecture. The OpenTAP project includes a range of ready-to-use plugins to support instruments, DUTs, user interfaces, results listeners and more. Plugins also originate from OpenTAP ecosystem participants - hardware manufacturers, software suppliers and end-users. If you have developed an OpenTAP plugin and are eager to share it with other ecosystem participants, then consider hosting your plugin in the OpenTAP project repository, for maximum exposure.
You are welcome to host the plugin in other locales - in your company repository, on another web site, etc.
Contribution Steps
Contribution is a straightforward process if you just following a few simple steps:
Create Your Plugin
Creating your plugin is by the far most difficult step. If you've already created a plugin, or want to learn more about how plugins work and how to build one, read the OpenTAP Developer Guide.
Choose a License for Your Plugin
If you plan to share your plugin, it is important that your plugin have a license that is compatible with the OpenTAP project. Learn more about license from the following white paper and/or the blogs extracted from it:
You can read the blogs in this series or read a white paper on the topic
Package Your Plugin
To submit your plugin for OpenTAP Repository hosting, it must be in the form of an OpenTAP package. You can learn about packaging plugins from the following video:
You'll need your package file available for the next step.
Upload to the OpenTAP Repository
There are two methods for uploading your package to the OpenTAP Repository: using a browser and using the command line interface:
Browser-based Upload and Publish Request
This step features multiple sub-steps:
Navigate to the Repository page on the OpenTAP.io website: packages.opentap.io
Login using the link on the upper righthand corner of the Repository page. You will need the credentials for a valid OpenTAP.io account, the same credentials used for logging into the Forum, etc. You can sign up for a new account or recover your password in the same location.
You will need to ensure that your account profile is complete before proceeding. Note that complete contact information is required to publish your plugin. Pull down the menu from the same area in the upper righthand area of the browser window, which should now show your account username and select "Admin".
After you have updated/saved your profile info, choose Packages from the entries on the lefthand part of the screen. You should see a list of previously uploaded packages (if any), a button to upload your package, and a link to upload Guidelines, leading back to the Developer Guide.
Click on the Upload Package button and select your package file for uploading. Package files should have the file suffix ".TapPackage". Once uploaded, your package should appear in your list of packages.
Click on the Publish link in the Action column of the packages listing. You will be presented with a publishing dialog box:
You should provide a Summary in the provided field. Don't forget to specify the correct license for your plugin. If you are uncertain regarding choice of license, read the blogs and/or the white paper mentioned earlier. Clicking on the button "Send Email Request" will open your mail client to request consideration by the OpenTAP project maintainers. The email will contain the following text:
Share '<package name>' with community
Package Name: '<package name>'
Summary: <your summary>.
License: <chosen license>
UserId: <your user ID>
Name: <your name>
Email: <your email>
Phone: <your phone with country code>
Company Name: <your company name>
Company Address: <your street address>
You can review this process (again) in the following video:
CLI Upload and Publish Request
Why CLI?
As you will read earlier in this blog, it is quite simple to upload a plugin for consideration using a browser interface. And, to use the CLI, you will still have to utilize the browser interface to obtain a user token (see below). However, if you need to include upload in a script or other automated invocation, you should read the rest of this section.
CLI on Windows vs. Linux
Unlike the process for browser-based upload, CLI-based upload will be slightly different on Windows and Linux development hosts.
Note that on a default Windows installation of OpenTAP, tap.exe
is installed in c:\Program Files\OpenTAP\
but that this location may not be added to the execution path, necessitating that tap.exe
be fully qualified as c:\Program Files\OpenTAP\tap.exe
or that you add that directory to the path yourself. On Linux, the tap binary is installed in ~/bin/
which should be on the default execution path.
Enabling Package Upload
On both Windows and Linux, you will need to enter the commandtap package install "Repository Client" --version 1.0
Repository Client
is a package that enables plugin developers to upload plugin packages and other files to an OpenTAP Repository using CLI commands. Learn more about this package.
Obtaining a User Token
On both Windows and Linux hosts, you will need to obtain a user token from the OpenTAP Repository, using the web interface. To obtain a User Token, follow these steps:
Login, as described in the browser-based upload section above, but select the third user admin option, User Tokens, on the lefthand side of the screen:
Click the button New User Token.
In the New User Token dialog, enter a name for your User Token and choose an expiry period (by default 30 days).
Copy and paste the token for use in the next CLI command. It will only be displayed once, so don't misplace it or you'll need a new token!
Upload Your Package
Enter the command
tap repo upload <PACKAGE NAME> --token <USER_TOKEN>
where<PACKAGE NAME>
is the name of your package and<USER TOKEN>
token obtained above.
If your package has already been uploaded or if the name conflicts with another package, you will receive an error message and your upload will fail.
Submit A Review Request
Finally, you will need to email support@opentap.io with the same information enumerated above in the autogenerated email.
Share '<package name>' with community
Package Name: '<package name>'
Summary: <your summary>.
License: <chosen license>
UserId: <your user ID>
Name: <your name>
Email: <your email>
Phone: <your phone with country code>
Company Name: <your company name>
Company Address: <your street address>
Be sure to complete all fields in your email.
Conclusion
The OpenTAP team strives to make plugin contribution easy and straightforward. We invite you to enrich the OpenTAP ecosystem through contribution to the core project. Don't forget that you can also publish and distribute plugins to your customers and partners via your own web sites and repositories.