Giter Site home page Giter Site logo

zeugwerk / twinpack Goto Github PK

View Code? Open in Web Editor NEW
38.0 8.0 1.0 2.13 MB

Twinpack is a package manager for TwinCAT libraries with integration into the TwinCAT IDE. It enables the TwinCAT community to share their libraries and simplifies the continous integration of third-party components into TwinCAT projects.

Home Page: https://twinpack.dev

License: GNU General Public License v3.0

C# 95.03% Groovy 0.01% Inno Setup 4.96%
beckhoff libraries package packagemanager placeholders plc references twincat

twinpack's Introduction

Twinpack

The Twinpack Package Manager is a powerful and user-friendly package management tool for TwinCAT libraries. It is designed to empower the TwinCAT community by enabling sharing and distribution of libraries. It acts as a versatile platform similarly to NuGet (but with a PLC touch), allowing users to efficiently manage and deploy their custom-built modules.

Quicklinks

Installation

To use the Twinpack Package Manager, follow these steps:

  1. Download the latest installer.
  2. Select the IDEs, which Twinpack should be installed for.
  3. Click on "Install".
  4. Follow the on-screen instructions to complete the installation.

Using a Package

To install a package, follow these steps:

  1. Open a TwinCAT solution and navigate to a PLC.
  2. Right click the References item of your PLC
  3. Click 'Twinpack Catalog...'
  4. Browse or search for the desired package.
  5. Click on the package to view details.
  6. Click on the "Add" button to install this package and add it to the referenced libraries.
  7. Wait for the installation process to complete. If you are installing packages from a contributor for the first time and these packages come with a license you will be asked to confirm their license agreement in order to advance.
  8. Twinpack automatically installs the package, including all depending libraries, on your System and adds it as a reference to your PLC.
  9. Follow the library documentation or instructions to incorporate its functionality into your project.

Share a Package ...

There are multiple ways to publish a package on Twinpack and you can chose how you want to publish your packages depending on how you want to create releases.

with the Twinpack Registry

The most straight forward way to publish a package, which you release on GitHub anyway, is to use the Twinpack Registry.

  • Create a Pull Request in which you add your repository to the repositories.txt file, similarily to this commit.
  • No other action is needed, there is a workflow in the twinpack-registry repository, which automatically uploads all libraries found in the latest release for all repositories on this list.

with a GitHub workflow

If you have a CI/CD environment it can be benefical to you to upload your package by using the Twinpack Commandline interface (see the TwinpackCli project in Twinpack). For GitHub, we tried to streamline this process as much as possible by providing a GitHub action, which will do this for you, see twinpack-action for details.

Note, if you don't have your own CI/CD environment, this action can be used to implement CI/CD on the Zeugwerk CI/CD environment, unlike Twinpack we can only provide this environment free of charge in a limited amount (at the moment 30 buildactions / month)

manually in your IDE

This is the most straight forward way to publish a package if you want to publish your library directly from your IDE

  1. Open a TwinCAT solution and navigate to the PLC library you want to share with the community.
  2. Right click the PLC item and click 'Twinpack' -> 'Publish ...'
  3. In the dialog, which opens, fill in the information describing your package.
    • Distributor (mandatory): The name you enter here will be exclusively associated with your Twinpack Account, and it will serve as a unique identifier for all your upcoming packages.
    • Version (mandatory): This is the initial version of your package. Once you publish your package for the first time, you have the flexibility to release newer versions in the future.
    • Other fields are optional
  4. Click publish to make Twinpack
    • Check all objects of your library
    • Upload the library as a package to the Twinpack server making it available for the community

After the initial upload of your library as a package, you may publish newer versions of your library or you can also modify the current version by right clicking on the PLC item and then on 'Twinpack' -> 'Modify...'. Users of Twinpack will be notified whenever a newer version is available in the Twinpack Catalog.

Further information

🌟 Make sure to follow this project by leaving a star or simply follow us, to always get notified if a newer version of Twinpack is released.

📺 We have also created a short introductionary video on how to install and use Twinpack (more to come):

twinpack's People

Contributors

iadonkey avatar seehma avatar zeugwerker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

sagatowski

twinpack's Issues

installed entry on a library does not show if a library is installed

if one installed a library, closes twinpack catalog and opens it again, installed is empty

grafik

or should this show referenced?

Edit:
it seems like creator overwrites the config.json file

Edit:
it looks like that the installed entry does not see that this library version is allready installed in twincat? is it supposed to do so?
grafik

Support for auxiliary files

Upload files and let the user specify to destination target. This can be used to

  • upload library specific templates
  • Device description files
  • etc

To handle this use case we archive all files and upload the archive instead of a library file and add a designates files section to the config

fetching library information takes some time, maybe a loading screen would be nice

if one is clicking on a library on the left side in the list, twinpack is fetching the information and shows it on the right.
this takes some time and leaves the user without any information that it will take some time (its also depending on the speed of your internet line).

add a loading gif or something like this on the right half of the dialogue?

grafik

its also a strange behavior when changing from one library to the next that the name gets updated and the other information takes half a second longer till its updatet

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.