Custom platform packageRepositories alternative? 4.3.x continued support?

Hello PlatformIO Community!

Our team has developed a custom PlatformIO platform for the Cortex M4 cores in an NXP iMX8 processor. To accompany this custom platform, we’ve also developed a custom framework package that contains the SDK that NXP supplies for this part.

We host both the platform and framework on our private github server. Our custom platform’s platform.json includes the following:

  "packageRepositories": [
    "https://dl.bintray.com/platformio/dl-packages/manifest.json",
    "http://dl.platformio.org/packages/manifest.json",
    {
      "our-custom-framework": [
        {
          "url": "git+https://github.com/[the_rest_of_our_repo_url].git",
          "version": "x.y.z",
          "system": "*"
        }
      ]
    }
  ],

For awhile, this worked just fine, but with the 5.x release, PlatformIO decided to remove the packageRepositories feature. From the 5.0.0 release notes:

“Dropped support for “packageRepositories” section in “platform.json” manifest (please publish packages directly to the registry)”

Up until this week, we’ve been working around this limitation by continuing to use PlatformIO 4.3.x. However, we’ve recently encountered issues where new installations of PlatformIO 4.3.x will fail to install packages with an error such as:

PackageManager: Installing toolchain-gccarmnoneeabi @ >=1.8
Error: Detected unknown package 'toolchain-gccarmnoneeabi'

After some initial research, I’ve developed a theory that 4.3.x may no longer be supported. This forces my team into a problem, because if the packageRepositories feature has been permanently deprecated and 4.3.x is no longer supported, then it would appear that my team has no choice but to:

publish packages directly to the registry

However, this also presents us with a problem, because our custom package contains proprietary software that is licensed by NXP, and this license restricts the contained software from being hosted in any sort of public forum.

So, my questions are:

  1. Is the packageRepositories feature truly, permanently deprecated?
  2. Will PlatformIO 4.3.x continue to be supported, or has it also been deprecated?
  3. If both of the above are true, is there another way that a custom platform can point to a package that is hosted on a private repository, other than using the PlatformIO registry?

Thank you to anyone who takes the time to read this! :smile:
Matt

@ivankravets for this topic :slight_smile:

We built our own package registry infrastructure, and PlatformIO Core 5.0 was the first release that had support for it. The legacy packages for Core 4.0 were hosted on Bintray. JFrog closed that project Service End for Bintray, JCenter, GoCenter, and ChartCenter | JFrog

No, we don’t provide bugfix releases for PlatformIO Core 4.0. We kept full compatibility in PlatformIO Core 5.0 with the previous projects created with PlatformIO Core 1.0-4.0. We discussed internally moving to INCREMENTAL releases. For example, year.month.counter, 2021.3.1, and keep FULL compatibility with previously created projects. It seems it’s time to do this.

The issue that happened with packageRepositories is our fault and we fixed it in 5.0. Now, all packages are hosted in a secure place and our customers can’t be affected when someone decides to “distribute” suspicious software (we had these incidents). I don’t mean your company. I’m sure your team does a good job.

Yes, you need Trusted Package Registry | PlatformIO Labs

Please email us at contact@piolabs.com and we will be happy to provide you a solution to host private packages.

Thank you for your feedback.

So, if I understand correctly, the bottom line here is: the only way for us to move forward, given the constraint that we have a custom package that must be hosted privately, is to use your trusted package registry? I’m assuming that there is a $ cost associated with this?

If so, I must admit that I am somewhat frustrated to be faced with this problem with no notice. We may consider using the TPR if the cost is reasonable, but this will require the team to not only pay money but to have to spend time weighing this against other options, which could take time. And, presently, our development is halted for any developer who needs to install our custom platform on a new machine since package installs for PIO 4.3.x do not appear to work anymore.

Can you suggest a short-term solution that will get us working again right away until we can decide how we would like to move forward?

Thanks again,
Matt

We have worked out a short-term solution that unblocks our developers, involving manually cloning our repositories into ~/.platformio/platforms and ~/.platformio/packages - we will consider using TPR in the future.

Thanks again for your help today.

1 Like