#cloudsmith (2020-10)

Cloudsmith package management and hosting

2020-10-12

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
03:53:38 PM

@Erik Osterman (Cloud Posse) has joined the channel

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
03:53:39 PM

set the channel description: Cloudsmith package management and hosting

Lee Skillen avatar
Lee Skillen
03:53:46 PM

@Lee Skillen has joined the channel

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

@Lee Skillen so I’m looking at the next big initiative which is adding debian support for our cloudposse packages. Cloudsmith has the concept of “universal packages” (right name?) where you can generate the synthetic packages for any major distro.

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

In this mode, is it possible to upload packages to override the synthetic packages? e.g. we’ve had to make bug fixes for certain distros.

Lee Skillen avatar
Lee Skillen

Yep, you can upload packages that are in all of the supported distribution indexes, for any release of those distributions. Although if you’re looking to create a derivative (forked, flavour, whatever you’d like to call it) package of something that exists, then it’s better to represent this in the versioning of the package (rather than it being identical to the upstream). This is how distributions, like Ubuntu, create Debian-derivative packages, but put an “ubuntu” spin on them: https://www.debian.org/doc/debian-policy/ch-controlfields.html#version

E.g. Imagine that sl at version 1.0.3-1 had an issue. You might create a new variant with a version of 1.0.3-1cp1 which would be semantically greater than 1.0.3-1 but (e.g.) less than 1.0.4-1. When a user goes to install sl from your repository, and 1.0.3-1 already exists alongside your fixed 1.0.3-1cp1 package, yours will be chosen.

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

So let me clarify, the binary would be identical to the upstream. What we’ve had to do is in the past, add different dependencies based on the OS release to satisfy things like dynamic linking (e.g. in alpine, sometimes we need to add libc6-compat but not always).

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

(we’re never forking / patching, only redistributing binaries)

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Though I’m guessing we’ll have a lot less of these sort of issues once we move to a glibc os

Lee Skillen avatar
Lee Skillen

Sure, although those are still changes to the package since the metadata is versioned alongside the content. If the user had the same version already, the local package manager wouldn’t fetch your modified version. Some Ubuntu packages (e.g.) are identical to the upstream too, and sometimes the changes are the same as you’ve proposed. Linkage changes. Upto you on how to manage it, of course!

Lee Skillen avatar
Lee Skillen

So when you see sl @ 1.0.3-1ubuntu2 in the wild, it means the upstream version was 1.0.3 (i.e. the version of the package the source was built from), the Debian version is 1 (i.e. the first package version of 1.0.3 that Debian built and released), and the Ubuntu version is 2 (i.e. the second version of the package that Ubuntu built and released).

1
Lee Skillen avatar
Lee Skillen

Looking forward to Debian-based packages though.

Andriy Knysh (Cloud Posse) avatar
Andriy Knysh (Cloud Posse)
08:36:21 PM

@Andriy Knysh (Cloud Posse) has joined the channel

Stan M avatar
Stan M
08:50:42 PM

@Stan M has joined the channel

Matt Gowie avatar
Matt Gowie
09:17:26 PM

@Matt Gowie has joined the channel

Joe Niland avatar
Joe Niland
11:58:25 PM

@Joe Niland has joined the channel

MattyB avatar
MattyB
02:36:05 AM

@MattyB has joined the channel

Reinholds Zviedris avatar
Reinholds Zviedris
05:59:07 AM

@Reinholds Zviedris has joined the channel

2020-10-13

Kyle Harrison avatar
Kyle Harrison
08:57:20 AM

@Kyle Harrison has joined the channel

Andrew Speed avatar
Andrew Speed
01:42:58 PM

@Andrew Speed has joined the channel

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)
04:01:12 PM

@Lee Skillen any idea what would cause this?

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

I’m trying out the any-version feature with alpine

Andrew Speed avatar
Andrew Speed

Hi Erik, I work with Lee at Cloudsmith, I’ll take a look into this for you now

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Thanks @Andrew Speed!

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Here’s the command to reproduce:

docker run -it alpine:3.12 sh -c 'apk add curl bash; curl <https://cloudsmith.cloudposse.workers.dev/install.sh> | bash; apk add terraform-0.13@cloudposse'
Andrew Speed avatar
Andrew Speed

Thanks very much Erik, I think we’ve identified the issue and are working on the fix now

1
Andrew Speed avatar
Andrew Speed

Hi Erik, apologies for the delay, our fix is now live and looks like it should resolve the issue you were seeing.

Let us know if things are working as expected, or if you run into any other issues

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

Confirmed! It works for me now

Andrew Speed avatar
Andrew Speed

Great to hear, but sorry for the inconvenience this caused. Give us a shout if you encounter any more issues and we’ll help get it resolved

Erik Osterman (Cloud Posse) avatar
Erik Osterman (Cloud Posse)

For sure! About to merge our PR now to take advantage of this. Will reduce our builds from ~500 -> 100

1
Tom Gibson avatar
Tom Gibson
04:18:15 PM

@Tom Gibson has joined the channel

    keyboard_arrow_up