microsoft / AL-Go

The plug-and-play DevOps solution for Business Central app development on GitHub
MIT License
285 stars 121 forks source link

Dependencies to AppSource Apps #77

Closed StefanMaron closed 1 year ago

StefanMaron commented 2 years ago

I am working on setting up Pipelines for a bunch of PTEs. A few of them will need to have dependencies to AppSource apps.

I researched a bit and it seems like the only way to do this, is with pipelines running against a Sandbox. Is it correct that we do not have any way to install AppSource apps in docker, for pipeline uses?

If no other possibility is available I guess Saas Sanbox can be a solution. But if I remember correctly, it is not possible to use the MS test libraries in Saas Sandboxes, right?

Is there any recommended way to handle such scenarios with pipelines? And, do you plan to support pipelines running against Saas Sandboxes?

freddydk commented 2 years ago

Run-AlPipeline does support Saas Sandboxes and Test frameworks are available. Test libraries are not yet - I am considering how I can make this work. AL-Go doesn't yet support saas sandbox running out of the box, but the plan is it should

StefanMaron commented 2 years ago

I think for small scale partners who have one or max two repositories/parallel builds, sandboxes can be the solution.

But for any partner that goes beyond that level, there is no way around builds on docker. I will need to request runtime packages for the AppSource dependencies from the ISVs in order to get my builds running.

freddydk commented 2 years ago

Agree

skkulla commented 2 years ago

I believe you can contact ISV to provide you a run-time package which they use for OnPrem and install that in your container, the symbols should be identical to use.

jonaswre commented 1 year ago

I believe you can contact ISV to provide you a run-time package which they use for OnPrem and install that in your container, the symbols should be identical to use.

I was wondering the same thing. It's it possible to install runtime packages in a container?

skkulla commented 1 year ago

Yes, I have been doing this for all the ISV we use in Saas.

freddydk commented 1 year ago

This has been moved to the backlog and we will actively work on a solution for 2023 wave 1 You can see the roadmap here: https://aka.ms/algoroadmap and the item you will be looking for is support for NuGet and GitHub packages.

StefanMaron commented 1 year ago

There are currently two differences I see between building with docker and building with a sandbox when it comes to AppSource dependendies:

  1. I need to ask the ISV to give me a runtime package. Not every ISV knows how to or is willing to do this
  2. The ISV need to give me the rights to include his objects in my dev license. Otherwise I will be able to compile my app but I will not be able to run tests if any event subscriber of the ISV app execudes

In addition to 2.: For my own AppSource app, I do not even have requested a range for OnPrem licenses. I could easily do that, but I havent because I do not want to sell OnPrem. If anyone would want to depend on my app, I would first need to request the range.

If nuget packages will get created and published as part of the submission to AppSource the first point will be solved.

But how about the second one? Couldnt we either get rid off the requirement to have ISV modules included in DEV licenses completely or at least for the combination with sandbox containers? This would help us get the container expierence closer to how real sandboxes work

freddydk commented 1 year ago

we will include this viewpoint in our discussions.

stefanJeady commented 3 months ago

This has been moved to the backlog and we will actively work on a solution for 2023 wave 1 You can see the roadmap here: https://aka.ms/algoroadmap and the item you will be looking for is support for NuGet and GitHub packages.

Did this end up getting completed in 23W1? If so how to use it? I don't see it on the roadmap anymore.

freddydk commented 3 months ago

Unfortunately, not yet.