-
Notifications
You must be signed in to change notification settings - Fork 408
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add snapcraft build files #414
Conversation
Signed-off-by: James Jesudason <james.jesudason@gmail.com>
Hi,
|
Good question! It provides a universal approach to installing apps on a number of platforms. Also, by publishing the snap to the Ubuntu Store it then increases the exposure of Leshan to any system that has snapd installed. This includes Ubuntu, Debian, Yocto, Fedora.... The snap package includes everything that the apps need to run (it includes the client, server and bootstrap server), with all the dependencies and paths already setup. Your example assumes that the java runtime is installed and configured and is a compatible version. The snap is a single, complete, sandboxed application that can be installed and used simply. Also, maybe not relevant for Leshan, but the snapcraft build system builds for multiple architectures e.g. amd64 and arm. So that makes it simpler to install and try out on a device. |
I'm still counting pros and cons. About exposure, I don't know I'm not sure it's a good idea to expose demo without explaining they are demo. Leshan is not an application, it's a library. For us (I mean as committer) :
For users,
I really think that snap and flatpack are great improvement for linux world, but in our case sounds not so useful. |
Whilst I understand that, as a project team, you see Leshan as a framework and not an application, but I think that you may be victims of you own success :) Whilst the server and bootstrap demos are only intended as a reference, I think they have become really good out-of-the-box implementations of a LwM2M server. I think that the demos are actually quite attractive and useful to IoT developers who are implementing LwM2M at a client level. Just look at what the server and bootstrap demos provide:
An IoT developer that is looking to add LwM2M to a device may not be proficient in Java and it's eco-system. So having the ability to quickly install a Leshan server is quite attractive. Many of the developers will be developing on Ubuntu anyway, so snapd is already installed. So being able to install a Leshan snap is quite beneficial to them - they can spin up a Leshan server quickly and focus on the functionality of their LwM2M client application. I understand the concerns about the github account for snapcraft.io. The main benefit there is that it will build for multiple architectures. It is possible to handle builds manually using the Where Leshan as a framework is more interesting is for other projects such as Kura where they need a LwM2M protocol adapter. An interesting personal observation from EclipseCon was that it was on their roadmap, but it did not seem high on their priority list. |
Here are my two cents: I agree with @sbernard31 in that leshan is about providing libraries for building LWM2M based applications and that people who are interested in using it in that way will not have any problem with setting up an appropriate Java environment for it. |
Let's see what they think about that.
So it seems the main benefits, is "the easy way to get leshan-demo running", but again the current way is really easy ... just download a jar and launch a java -jar command :
|
a8f1ad0
to
b6da9cc
Compare
No more news about integrating snapcraft.io. |
Adding the build files to create a snap that can be installed on multiple platforms (see snapcraft.io). This will make Leshan simpler for users to try out. Once the snap is built and installed it provides three commands:
Which are the demo server, bootstrap server and client.
The snap can be built and published on the Ubuntu Snap Store, which will make it available to install on any system that has snapd installed via:
Signed-off-by: James Jesudason james.jesudason@gmail.com