.. _create-new-vipm-package:
Create a VIPM Package
=====================
The `Virtual Package Manager (VIPM) `_ is a tool for managing LabVIEW packages, including instrument drivers and plugins. Using VIPM, you can create a package from your LabVIEW project that can be easily shared and installed by others.
This tutorial will guide you through the process of creating a new VIPM package for use with the RxnRover platform.
General Steps to Create a VIPM Package
--------------------------------------
1. **Open VIPM**
Launch the VI Package Manager application.
2. **Create a New Package**
- Click the **Open VI Package Builder** icon in the VIPM toolbar (top-left).
- In the Package Builder menu, select **Create New**.
- Set the **Source Directory** to the root folder of your LabVIEW project.
- Set the **Product Name** to a meaningful name (e.g., `"IR Sensor Plugin"`).
- Set the **Company Name** to:
- `'RxnRover'` if you're a first-party developer.
- Your own company name if you're a third-party developer.
This will create a new ``.vipb`` (VI Package Builder) file named after the Product Name in your project directory.
3. **Configure Basic Build Information**
- **Source Directory**: Points to your LabVIEW project root.
- **Build Output Directory**: Choose a location like ``\VIPMPackages``.
.. note::
The rest of the configuration differs slightly depending on whether you're a **first-party** (RxnRover) or **third-party** developer.
First-Party Plugins (RxnRover Developers)
-----------------------------------------
These instructions are for RxnRover developers creating official plugins or drivers.
1. **Display Information**
- **Product Name**: Name of your plugin (e.g., "IR Sensor Plugin").
- **Icon**: Optional.
- **Company Name**: `RxnRover`
- **Author Name**: `RxnRover`
- **Product Homepage**: ``https://github.com/RxnRover/``
- **Copyright**: `Copyright (c) RxnRover`
- **License Agreement**: Path to ``LICENSE.txt`` in your project folder.
- **Summary**: Short description (e.g., "A plugin for IR sensor data acquisition and processing").
2. **Destinations**
- Set install location to:
- ``Documents\RxnRover\Plugins\\`` for plugins.
- ``instr.lib\RxnRover\`` for drivers.
- **Package Filename**:
Use this format:
``rxn_rover_lib_-X.X.X.X.vip``
Continue with the rest of the tutorial.
Third-Party Plugins
-------------------
For external developers who wish to make their plugin compatible with RxnRover.
1. **Display Information**
- **Product Name**: e.g., `"IR Sensor Plugin"`
- **Icon**: Optional.
- **Company Name**: Your organization.
- **Author Name**: You or your organization.
- **Product Homepage**: e.g., your GitHub repo.
- **Copyright**: `Copyright (c) `
- **License Agreement**: Path to ``LICENSE.txt`` in your project folder.
- **Summary**: A brief description of the plugin.
- **Description**: Provide a more detailed explanation of the plugin’s features and how to use it.
2. **Destinations**
- For plugins:
``Documents\RxnRover\Plugins\\``
- For drivers:
``instr.lib\RxnRover\``
.. note::
Keep install paths consistent with RxnRover’s plugin architecture to ensure compatibility.
3. **Source File Settings**
- Include:
- All required ``.vi`` files
- Configuration files
- Documentation (e.g., ``README.md``, ``LICENSE.txt``)
- Exclude:
- ``.git``, ``.gitignore``, ``.lvproj``, other unnecessary dev files.
- Set the **Package Source Destination** to the install path you defined in the **Destinations** tab.
- This applies to all subfolders unless explicitly overridden.
4. **Package Dependencies**
- VIPM will auto-detect most dependencies.
- Manually add:
- `RxnRover` (core library)
- `Dynamic Reentrant` (required for plugin loading)
- Any other required plugins or drivers.
.. important::
If your plugin depends on a specific driver—or vice versa—be sure to include that in the dependencies.
5. **Install Requirements**
- Set compatible:
- **Operating Systems**
- **LabVIEW Versions**
Build and Share the Package
---------------------------
1. Once configuration is complete, click **Build** in the VIPM toolbar.
2. The output ``.vip`` file will be generated in your chosen directory.
3. Run the ``.vip`` file to install and test the package using VIPM.
Share your ``.vip`` file with others or submit it to the RxnRover Plugin Catalog for inclusion.
.. _plugin_submission:
After creating your plugin consider `making a submission `__ to the `Rxn Rover Plugin Catalog `__