Open SayantanRC opened 1 year ago
This is also the case for nixos-unstable as well, where postman is version 10.18.6. Based on their release notes, the latest version as of today (10/5/2023) is 10.18.10. Downloading that works: https://dl.pstmn.io/download/version/10.18.10/linux64
I tried every 10.18.x version and the only one found is 10.18.10... so unfortunately I suspect they decided to stop hosting old versions. I'm sure this has come up with other packages before, so what pattern(s) does nixpkgs use for dealing with this? I imagine postman using an unfree license makes this even more complicated.
for i in {0..10}; do echo "$i"; curl -v https://dl.pstmn.io/download/version/10.18.$i/linux64 2>&1 | grep "< HTTP/2"; done ~/nix-config
0
< HTTP/2 404
1
< HTTP/2 404
2
< HTTP/2 404
3
< HTTP/2 404
4
< HTTP/2 404
5
< HTTP/2 404
6
< HTTP/2 404
7
< HTTP/2 404
8
< HTTP/2 404
9
< HTTP/2 404
10
grep: (standard input): binary file matches
P.S. Should someone should reach out to Postman to point out the impact this caused, ask if it's intentional, and kindly ask if they'll reconsider? I think opening an issue on https://github.com/postmanlabs/postman-app-support is the right way.
Created issue on postman: https://github.com/postmanlabs/postman-app-support/issues/12383
As confirmed here, there are no plans for them to re-upload older versions.
In case we have no way to cache the packages from NixOS, we will have to remove Postman from nixpkgs. Users will need to use flatpak.
Not sure we have to remove it. If there's a rule saying we have to then cite it. (I couldn't find one)
@Craftzman7 it's better to remove it because it won't work anyway unless the postman team chooses to reverse their decision. Moreover, anyone who sees that postman is available in nixpkgs through search.nixos.org, might add it to the config file and break the build process.
Sorry for showing up late, everyone. I see a few options. It'd be nice to get some votes/opinions below so any future passersby can understand why things changed the way that they did:
1) We do our best to maintain the nixpkgs
version against the tip of postman
.
2) We maintain a 3rd-party archive/mirror of postman
tarballs (not super secure and also it would likely need to be the primary URL not the fallback URL since I think fetchTree
and cousins still don't support fallback URLs.)
3) We remove postman
from nixpkgs
. This one makes me a bit sad since I'd like nixpkgs
to support as many tools as possible, but this software is non-free and there are decent alternatives to it. So, maybe it'd be good to pull support unless postman.com
makes a bunch of changes that makes it easier/more attractive to work with them.
@johnrichardrinehart personally I would prefer option 2, although I don't know how feasible it is (especially the fetchTree part went above my head)
If not option 2, then I would prefer option 3.
@johnrichardrinehart personally I would prefer option 2, although I don't know how feasible it is (especially the fetchTree part went above my head)
If not option 2, then I would prefer option 3.
Nice. Ranked-choice voting. 2 -> 3 -> 1 for @SayantanRC .
Given the fragility/centralization of 2 my vote is
3 -> 1 -> 2
I just learned that postman
deleted all user data on upgrade unless you created an account. That's kind of icky and I'd rather not lower the bar (by having this repo in nixpkgs
) and encourage adoption. But, if users really want it then I don't like the idea of OSS being responsible for the time spent managing infrastructure for postman
(who otherwise would and used to provide it) and bearing responsibility for the security issues that arise from that. So, that's how I'm rationalizing my vote.
I'm working on packaging bruno
now.
It's possible to archive a download using the internet archive.
I'm working on packaging
bruno
now.
Nice tip on bruno
@johnrichardrinehart.
I'm wondering what's so bad about option 1. Postman is a proprietary service and the client app is main just a client. Are there scenarios where users need to retain a certain version?
Or is the concern that changes between postman binary releases will break the nixpkgs
script?
Postman's builds of the latest versions appear to be always available at permalinks https://dl.pstmn.io/download/latest/linux_64 and https://dl.pstmn.io/download/latest/linux_arm64
As far as encouraging the alternatives, could a corresponding note be included in the nix package description promoting open-source alternatives like bruno
? Or does that go against Nix policies?
@batonac the permalink option is fine as it helps prevent breaking existing configs... but it doesn't keep the version frozen.. it's like following the unstable nixpkgs. I personally don't have a problem with it, but we should mention this properly on search.nixos.org.
Could the version simply be displayed as latest
on search.nixos.org?
Could the version simply be displayed as
latest
on search.nixos.org?
The build will break when the file is changed so someone will have to keep updating the hash. Internet archive has to be used for many of these proprietary programs which don't have stable urls.
It's possible to archive a download using the internet archive.
Given the fragility/centralization of 2 my vote is
might e.g. IPFS help ensure availability for those packages we know do not offer latest releases?
Sorry for showing up late, everyone. I see a few options. It'd be nice to get some votes/opinions below so any future passersby can understand why things changed the way that they did:
- We do our best to maintain the
nixpkgs
version against the tip ofpostman
.- We maintain a 3rd-party archive/mirror of
postman
tarballs (not super secure and also it would likely need to be the primary URL not the fallback URL since I thinkfetchTree
and cousins still don't support fallback URLs.)- We remove
postman
fromnixpkgs
. This one makes me a bit sad since I'd likenixpkgs
to support as many tools as possible, but this software is non-free and there are decent alternatives to it. So, maybe it'd be good to pull support unlesspostman.com
makes a bunch of changes that makes it easier/more attractive to work with them.
Is it against "the rules" to just give people bruno when they ask for postman? This is first I ever heard of bruno, even briefly looking for alternatives cus postman is now :-1: , I didn't come across it. If i had tried to install postman or postman-free or something like that and got bruno it would have scratched my itch :shrug:. (I just came across this thread once again trying trying to get postman up; and now I have bruno and doubt I will ever use postman again. )
bruno is now packaged in unstable.
nix-shell -p bruno
I would recommend to the maintainers they put something like 'postman alternative' in the description so people searching for postman will find bruno.
If anecdotes / datapoints are useful for you, I went with 3) / Bruno. Seems to work well and, crucially, can import / export postman collections which my colleagues are using.
I would recommend to the maintainers they put something like 'postman alternative' in the description so people searching for postman will find bruno.
That might be worthwhile. Right now it's not showing up in nixpkgs search if you search for "postman" (unstable).
Unfortunately, I have to use postman at work.
If it serves to anyone, this overlay has been saving me for a while:
{ pkgs, inputs, system, ... }:
{
nixpkgs.overlays = [
(final: prev: {
postman = prev.postman.overrideAttrs(old: rec {
version = "20231205182607";
src = final.fetchurl {
url = "https://web.archive.org/web/${version}/https://dl.pstmn.io/download/latest/linux_64";
sha256 = "sha256-PthETmSLehg6eWpdDihH1juwiyZdJvzr+qyG2YYuEZI=";
name = "${old.pname}-${version}.tar.gz";
};
});
})
];
}
Update: Switching to a newer release (December), that's availiable on archive.org.
error: builder for '/nix/store/vacray94h4sxd7jl4nanj92105hgswx2-postman-10.18.6.zip.drv' failed with exit code 1; last 7 log lines:
trying https://dl.pstmn.io/download/version/10.18.6/osx_arm64 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (22) The requested URL returned error: 404 error: cannot download postman-10.18.6.zip from any mirror For full logs, run 'nix log /nix/store/vacray94h4sxd7jl4nanj92105hgswx2-postman-10.18.6.zip.drv'.
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/nix-postman-package-is-broken/39669/2
For me, it's working by using the unstable version
For me, it's working by using the unstable version
The fundamental problem is that unstable only happens to work at the moment because nixpkgs and the downloadable Postman artifact are in sync. As soon as Postman releases an update, unstable breaks again.
Getting the fllowing error on NixOS 23.11
building '/nix/store/wivdcvbharqx3nmiwwh9g0jml2fjvqrm-postman-10.18.6.tar.gz.drv'...
trying https://dl.pstmn.io/download/version/10.18.6/linux64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (22) The requested URL returned error: 404
error: cannot download postman-10.18.6.tar.gz from any mirror
error: builder for '/nix/store/wivdcvbharqx3nmiwwh9g0jml2fjvqrm-postman-10.18.6.tar.gz.drv' failed with exit code 1
error: 1 dependencies of derivation '/nix/store/7s63l9kjkvnbpkp1xp8slzrj4xad6hda-postman-10.18.6.drv' failed to build
error: 1 dependencies of derivation '/nix/store/1nf6mrwx77dj9z54iqjkk0wqk9vfrj78-system-path.drv' failed to build
error: 1 dependencies of derivation '/nix/store/yn9pqmdfajydiw4i1lc6d7biag5cvm11-nixos-system-i7-3770S-23.11.5541.56528ee42526.drv' failed to build
Have you tried Apidog? I think this might be better as a substitute for postman.
Thanks, I'll try it out
Describe the bug
Postman cannot be downloaded and installed from nix packages.
Steps To Reproduce
Steps to reproduce the behavior:
nix-shell -p postman
(this also happens if postman is added in the config file)This results in the following error:
Expected behavior
The command should work.
Screenshots
Additional context
Notify maintainers
@johnrichardrinehart @evanjs @tricktron @Craftzman7
Metadata