Check out our website at ipfs.tech.
For papers on IPFS, please see the Academic Papers section of the IPFS Docs.
MIT.
Legacy dist.ipfs.tech website and artifact build tools
Home Page: https://dist.ipfs.tech
License: MIT License
Check out our website at ipfs.tech.
For papers on IPFS, please see the Academic Papers section of the IPFS Docs.
MIT.
I've did a fresh git clone
, make all
and gulp serve
to give a test to the new distributions page, before saying anything, huge ^5 for all the work put onto this! :)
Here are things I noticed:
See https://en.wikipedia.org/wiki/List_of_ARM_microarchitectures for details
cc @noffle
I had problems finding it, and others seem to have same problem.
January 1, 2016
data.date
for the go-ipfs 0.4.0 release.date
field manually to 0.4.0
this time.TODO:
date
to other old releases manuallydate
is generated automatically in the futureCurrently none of the binaries on dist.ipfs.io can be used on a musl-based Linux, since they're all dynamically linked against glibc (which is the libc they are built on). We should provide an extra Linux/musl build.
Example: the linux-amd64 build would have an additional linux-musl-amd64 build.
Following: ipfs/kubo#616 (comment)
@dignifiedquire you mentioned in a hangout this week that making the JS builds reproducible is difficult.
Wondering if this would help: webpack/webpack#408
TL;DR add to webpack config plugins section: new webpack.optimize.OccurenceOrderPlugin()
I imagine doing npm shrinkwrap
might help lock down dependencies as well.
You might be thinking of more sophisticated problems than I am though ๐
ยป make all
echo "** making go-ipfs **"
** making go-ipfs **
cd dists/go-ipfs && make
chmod +x go-ipfs-dist
./go-ipfs-dist all
--> making v0.2.2
---> preparing ../../releases/go-ipfs/v0.2.2
---> getting archives from gobuilder...
No downloads has been found for your request.
---> failed.
error: failed to make v0.2.2
make[1]: *** [dist] Error 1
make: *** [go-ipfs] Error 2
we need one. here's a super basic one i made: https://asciinema.org/a/ev9so7mlfqme0254s50oqiw1l but it's so off.
i want to cover:
ipfs init
ipfs cat
the welcome readmeipfs add -r .
a big directory of filesipfs cat
files just addedipfs ls
dirs just addedipfs add
a big file (progress bar)maybe we could cover:
ipfs swarm peers
ipfs cat
through the network -- a file i didnt have.what else? other ideas?
This would also need to set up the tooling required:
cc @ligi
v0.4.0-dev is debris from when we tried to get gobuilder.me to build from the dev0.4.0 branch.
The only release of 0.4.0 so far is v0.4.0-rc1.
see https://github.com/ipfs/distributions/blob/master/site/public/index.jade#L45
I'm guessing this was a workaround until release date got built into the build scripts. We can probably grab the date on the git tag that's being used.
Trying to get this running it fails for me as I do not have gobuilder setup, and I'm not sure how to go about that. Can we get rid of that as there is already a todo in the code?
bin/gobuilder-cli: bin
#TODO: make this not require a go compiler...
go get github.com/Luzifer/gobuilder/cmd/gobuilder-cli
cp $(gbcli) bin/gobuilder-cli
The version listings for the go packages got screwed up, they now have a directory for a version with just a go-ipfs.zip
inside. This is broken, please restore the old schema, which is typical of traditional systems, and which tools already depend on:
go-ipfs_$version_$platform.$archive
-- eg go-ipfs_v0.3.11_amd-64.tar.gz
- this way it is clear on a downloads folder what version you just downloaded, and it does not replace older versions..zip
is fine for windows, but please use .tar.gz
for unix platforms, as some zip tools ignore/lose permissions. since we will ship binaries and shell scripts it is important that they absolutely always keep permissions.To be clear, we want:
.
โโโ go-ipfs
โ โโโ latest -> v0.3.7
โ โโโ v0.3.6
โ โ โโโ go-ipfs_v0.3.6_darwin-386.tar.gz
โ โ โโโ go-ipfs_v0.3.6_darwin-amd64.tar.gz
โ โ โโโ go-ipfs_v0.3.6_linux-386.tar.gz
โ โ โโโ go-ipfs_v0.3.6_linux-amd64.tar.gz
maybe we should have a small screenshot that shows what each "distribution" is
(let's start with pngs, and then levelup to short gifs.
@dignifiedquire this is looking great -- took it out for a spin with people.
some feedback:
.d-component { min-height: 700px }
-- about a screen-height's worth. when we add the asciinema or jpgs and so on it will get there, but may be good to just do it (even it blank) to make sure the user is focused on one release at a time even if there is no media.i can do more user testing if useful.
cat dists/*/card.html >>index.html
)inspired by iojs
harp compile
into make
webpack
build into make
Looks like go-ipfs @ 0.4.3-rc1 is the default download at https://dist.ipfs.io/ right now. This is not great, because RCs could have serious issues and vulnerabilities.
In this case, 0.4.3-rc1 is thought to be much better than 0.4.2, but i'm not sure this merits skipping the release process... this is the sort of thing that can make small problems big.
the version listing inside a distribution should have a latest
symlink, which is used to enable links like https://dist.ipfs.io/go-ipfs/latest/dist.json
to be clear:
.
โโโ go-ipfs
โ โโโ latest -> v0.3.11
โ โโโ v0.3.11
There MUST NOT be a dependency to update this website when a new version is released. That's super cumbersome. The gobuilder links explicitly avoided this problem. This was not by accident, but by design.
One easy way to do is is to add a release dir (to mirror the git branch name) that gets updated by the dist.ipfs.io repo release process. this can symlink the files directly like so:
ls -l go-ipfs/release
go-ipfs_release_linux-386.tar.gz -> ../v0.3.11/go-ipfs_v0.3.11_linux-386.tar.gz
go-ipfs_release_linux-amd64.tar.gz -> ../v0.3.11/go-ipfs_v0.3.11_linux-amd64.tar.gz
This has the unfortunate side-effect that the files will be downloaded as go-ipfs_release_linux-386.tar.gz instead of preserving a version. Not sure how to solve that yet. What we need is effectively something like a 302 redirect. I can imagine a way of importing symlinks into ipfs not as dag hardlinks but as dag symlinks that the gateway serves as 302 redirects.
Other ideas?
e.g. http://v04x.ipfs.io/ipfs/QmUA7DPsDZrp1qjDHfG9oGZM7Z1Jx7fosawHxu7B78rHz3/go-ipfs/v0.3.11/build-log
@whyrusleeping could you do this please?
change "interplanetary networks" copyright notice to "IPFS Community", we'll make a proper foundation later. but right now it's out of place because it should be "Protocol Labs"
maybe @RichardLitt can help here?
What should the url / domain be for this site?
could be:
There should be README.md files inside of a distribution version listing, and inside each version listing.
Eg from https://github.com/ipfs/distributions#how-this-repo-works:
dist/index.html -- listing of all bundles available
dist/<dist> -- all versions of <dist>
dist/<dist>/README.md -- simple readme for <dist>
dist/<dist>/latest -- points to latest <version>
dist/<dist>/<version> -- dist version
dist/<dist>/<version>/README.md -- readme for <version> listing
these READMEs can be the same across versions, and should be autogenerated. They are like a human readable version of dist.json
, there in case the user ends up with a big archive directory of the version. The readme could point to https://dist.ipfs.io, could point to this repository, and to `https://ipfs.io
The go version listings seem to have a build-info
and results
files
dist.json
do we think that it will scale to keep all the dists in this one repo? it may be relevant to do:
distributions
(this repo) - is the website, and aggregates all the othersdist-<thing>
is a repo for producing all the build targets, and outputting a single ipfs hash per version.So basically, we'd have repos like dist-go-ipfs
and dist-station
.
OR another option is to put the bin building in go-ipfs
or station
themselves, and use this repo only to manipulate ipfs hashes (i.e. can be given a hash with all the binaries, then patch it to include all the other data)
not added for go-ipfs -- see ipfs/ipfs-update#7 (comment)
As this repository will play a crucial role in enabling code signing (Ref #51) we need to enforce 2fa for everyone who has write access to this repository:
Using this url: http://v04x.ipfs.io/ipfs/QmUCqDJ2dVkdfiMrkgsM7PYNVL91GY8LdvpitxKL71biRp/
Running Chromium 47.0.2526.106 on 64-bit Linux. All text is invisible:
Firefox renders this fine, however. I haven't dug into this any deeper, but am happy to try if you aren't able to reproduce. :)
go-ipfs 0.4.2 adds support for NetBSD
This is the copy that needs to be written/reviewed:
These are linked, but we need to make sure they actually exist (link is: <repo>/CHANGELOG.md
)
$ git clone https://github.com/ipfs/distributions.git
Cloning into 'distributions'...
remote: Counting objects: 131, done.
remote: Total 131 (delta 0), reused 0 (delta 0), pack-reused 130
Receiving objects: 100% (131/131), 159.82 MiB | 1.67 MiB/s, done.
Resolving deltas: 100% (29/29), done.
Checking connectivity... done.
Using this script: https://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/
$ ./gitsize.sh
All sizes are in kB's. The pack column is the size of the object, compressed, inside the pack file.
size pack SHA location
7287 2040 276eb15fbc05f26c4b4f1d8ebd907860e521412e dists/go-ipfs/bin/gobuilder-cli
5660 5629 79fdf3b9fc6efd7cb33185dc8a55d0b646440220 releases/go-ipfs/v0.3.6/ipfs_v0.3.6_linux-amd64.zip
5660 5629 90e2d20056c02ae75facf60bd24b0e9692dd1ebf releases/go-ipfs/v0.3.7/ipfs_v0.3.7_linux-amd64.zip
5644 5613 6468916f94ce5d3ef021f468a22d08d0efadc69e releases/go-ipfs/v0.3.6/ipfs_v0.3.6_freebsd-amd64.zip
5643 5612 d22c22822233302ae59d1359a0aad49435cb96f8 releases/go-ipfs/v0.3.7/ipfs_v0.3.7_freebsd-amd64.zip
5627 5595 41a80697760d1f25eec3c834a8bd24239417ae0e releases/go-ipfs/v0.3.7/ipfs_v0.3.7_darwin-amd64.zip
5627 5595 76595522458ad032b207e367fa9ad1fc68930cf8 releases/go-ipfs/v0.3.6/ipfs_v0.3.6_darwin-amd64.zip
5434 5405 c9c7349009885d7ac3be4c662d02f07160e8c57f releases/go-ipfs/v0.3.7/ipfs_v0.3.7_windows-amd64.zip
5434 5405 4069cb6cc7196570c325e0ed2d64781a15b6c7c7 releases/go-ipfs/v0.3.6/ipfs_v0.3.6_windows-amd64.zip
5337 5307 75d6f630be3c6a5d839f6f0303da397a57aeb166 releases/go-ipfs/v0.3.5/ipfs_v0.3.5_linux-amd64.zip
Haven't managed to get rid of them
We should probably have a "distribution" of the webui as well, but just say that the webui is distributed through ipfs, and thus accessible from go-ipfs
and ipfs-app
already. (i.e. it is not "downloaded").
Reason is that many people get confused and install the node package. see http://www.siliconian.com/blog/16-bitcoin-blockchain/23-beginner-s-guide-to-installing-ipfs-on-a-raspberry-pi-2
(king of like a .PHONY
target in a makefile)
It would be great to these links to each distribution:
issues
or bugs
or report a bug
or report an issue
- which links to $repo/issues
repo
or repository
which links to $repo
for the distributionThe issues/bugs one is higher prio. Even in presence of repo
, would still be important to have the link to issues. Many users will not know their way around github, or know to do "github repo page -> issues link", and instead we want to lead them to submitting issues + getting help asap.
We could have some text at the bottom or the top of the page describing that we use github for issues, with a link to https://guides.github.com/features/issues/. Maybe:
We use GitHub.com to host our code, track issues, and discuss solutions. If you're new to github, sign up for an account here and read about posting issues here. Then, to report problems with any of our distributions, click the "Report an Issue" link under the description.
These links could be added to the set "docs, changelog, all versions", and just make a second line.
ipget for windows download is not available
I'm running make
for the first time and it builds everything. Imagine if I was the one preparing a new release of something, this would change all artifacts of everything.
Instead, it should get all of dist.ipfs.io, and then only build what's missing, patch it in, and publish the result of that.
This is kind of urgent, since changed checksums of release artifacts will rightfully (and hopefully) set of alarm bells with users.
Visual standardization was fixed via #289, but we still need to include the fonts used in the site so it can be fully delivered over IPFS.
Standardize CSS and fonts against those used in www.ipfs.io and/or docs-beta.ipfs.io to a degree that brings them visually into line with existing branded materials, but stopping short of effort-heavy rebranding (we'll be tackling this as part of overall approach to ipfs.io in the future).
It should ideally be vendored
https://dist.ipfs.io is serving an SSL cert that doesn't match the subdomain. Since links have started appearing various places (e.g. the README at https://github.com/ipfs/go-ipfs) and the site currently prompts a giant insecure connection warning in most browsers, this should probably be addressed soon.
I'm thinking that it would be helpful to have a description of the page at the very top, making things clear. Perhaps:
This is the downloads website for all the official software distributions of the IPFS Project. You can find all the apps, binaries, and packages here. Every distribution has a section on this page with:
The "all versions" link on each distribution shows directory listings for all the available versions, and a versions
file (example). This file can be used by tools, such as ipfs-update, to find all the available versions and download the latest. The directory listing of each version (example) has all the platform archives (zip or tar), a README.md
and a dist.json
which describe the release for humans and machines. It is meant to be easily consumed and used by tools.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.