ethereum / solidity

Solidity, the Smart Contract Programming Language
https://soliditylang.org
GNU General Public License v3.0
23.09k stars 5.72k forks source link

Snap version is out of dated #3982

Closed favadi closed 6 years ago

favadi commented 6 years ago

Current version in snap store:

$ solc --version
solc, the solidity compiler commandline interface
Version: 0.4.21-develop.2018.3.8+commit.dfe3193c.Linux.g++

At the time I'm writing it 0.4.23 is released.

So have we enabled automatically build for snap package yet?

One more thing, the version of snap package.

channels:                  
  stable:    develop (776) 19MB -
  candidate: develop (911) 19MB -
  beta:      ↑                  
  edge:      develop (926) 19MB -

According to the version-script line: git describe --exact-match --tags 2> /dev/null || echo "develop", it should returns "0.4.23", not "develop".

chriseth commented 6 years ago

@elopio could you take a look here, please? Thanks!

come-maiz commented 6 years ago

@chriseth things would be easier now if somebody with permissions on the solidity repo goes to https://build.snapcraft.io and enables the automated build there. Then you can add me as a contributor, to keep maintaining the snap from the dashboard.

What do you think? :)

come-maiz commented 6 years ago

@favadi this has to do with the version-script not working as expected. For now, jump to the edge channel to get the latest. I have to report this as a bug in snapcraft.

axic commented 6 years ago

Can you link the reported issue here so we can close this (since it is an upstream issue)?

favadi commented 6 years ago

@elopio what is the problem with version-script of snapcraft?

btw, as I read from here: https://github.com/snapcore/snapcraft/blob/02774cd6b3140b46b181479fad70d0dc52eafd15/snapcraft/internal/meta/_version.py#L28, the part || echo "develop" is redundant as snapcraft will fallback to use version if version_script failed.

chriseth commented 6 years ago

@elopio I added the repo on build.snapcraft.io but I do not see where I could configure it.

chriseth commented 6 years ago

Do I need an ubuntu one account?

favadi commented 6 years ago

From what I see, we can choose Github repository to auto build here: https://build.snapcraft.io/select-repositories.

chriseth commented 6 years ago

I think it is selected for auto-build. Perhaps it does not build on all branches?

favadi commented 6 years ago

I asked for help in snapcraft forum: https://forum.snapcraft.io/t/auto-build-on-build-snapcraft-io-questions/5278/2 and there are what I learned:

Do I need an ubuntu one account?

Yes, you need to login to Ubuntu One to be abble to automatically push the snap packages to snap store. I think @elopio is owner of the solc pakge in snap store, so only he can do it.

I think it is selected for auto-build. Perhaps it does not build on all branches? this has to do with the version-script not working as expected.

build.snapcraft.io will only trigger build for commit to default branch (in our case "develop"), but as all releases are tagged from "release" branch, no stable package will be build. To fix that we need config source-branch to "release".

Also it is not possible to use build.snapcraft.io to build multiple branches and push to multiple channels.

I created https://github.com/ethereum/solidity/pull/4065 to address these problems. We should get tagged releases auto build and push to snap store after merging it.

Disclaimer: I'm not a snap expert and I don't know how to test my changes properly.

come-maiz commented 6 years ago

I am the owner of the solc name, but I don't have permissions on the https://github.com/ethereum/solidity repo, so I can't add it. What I'm proposing is for somebody with permissions on the repo to add the automated build, and I will transfer the name to an ubuntu one account that's owned by the project. Then you add me as a contributor to that account on dashboard.snapcraft.io. Because it needs a transfer, it's a little messy, but I think it will be better to move foward for you to own everything.

@favadi I can test your changes, and anyway, we have the edge channel to experiment. We have some users on that channel that will give early feedback if something looks wrong.

favadi commented 6 years ago

@chriseth as @elopio is OK with transferring the "solc" name in snap store to solidity project, could you provide the Ubuntu One account he will transfer to?

chriseth commented 6 years ago

Yes, sounds like a good idea! I hope I will have time to do that towards the end of the week.

come-maiz commented 6 years ago

Thanks @chriseth. Just ping me and I'll start the transfer.

chriseth commented 6 years ago

Sorry for the delay, actually we already had an account for the launchpad ppa. The ubuntu one username is builds-c

come-maiz commented 6 years ago

Cool. I have just requested the transfer: https://forum.snapcraft.io/t/transfer-solc-to-upstream-ethereum-devs/5429

chriseth commented 6 years ago

Transfer worked, thanks a lot!

I just realized that this will bring us arm automation, nice!

come-maiz commented 6 years ago

Awesome, thanks @chriseth. I've just disabled the launchpad job that was building the develop branch. Did you go to https://build.snapcraft.io to enable it from the official account?

What's left on my side is to report the issue with the version-script. I'll take a look now to see if I can make sense of it, or just forward it to the devs.

come-maiz commented 6 years ago

solc 0.4.23 is on the candidate channel! After a couple of days, I'll move it to stable. And hopefully now we will be able to move closer to the github releases. I have no idea what was the problem with the version, but it seems solved now. :man_shrugging:

About arm, we have it working on armhf, but there's a problem with arm64: https://forum.snapcraft.io/t/solidity-needs-libz3-dev-but-its-not-in-the-arm64-archive/1837

This libz3-dev package is building without issues on bionic. So we could backport it to xenial, or build the snap on bionic. Both options require some work, and I'm trying to close a few things to go on holidays for the rest of the week, so I'll check it when I get back.

pura vida.

favadi commented 6 years ago

Thanks a lot @elopio @chriseth.

chriseth commented 6 years ago

@elopio z3 is optional, we can try to disable it depending on the platform.

come-maiz commented 6 years ago

The issue with the tagged release was not solved, so I reported this: https://forum.snapcraft.io/t/some-launchpad-builds-not-setting-the-right-version/5541

I'll check how to remove z3 for arm64 when I have some free time.