-
Notifications
You must be signed in to change notification settings - Fork 58
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
PeerPad is not working #150
Comments
I'm digging into this now. |
@olizilla I couldn't reproduce this locally, but I got the error |
Same here, i think that'll fix it. |
To reduce the scope for dep related issues to appear in prod, and to improve our chances of recreating them locally, we're going to add a I'm gonna PR with the minor update to peer-pad-core version, and add the package-lock.json to pin all the deps. I'm then going to look at adding integration tests so CI can give us a heads up about these things before deploying them. |
Ok, so there is a failing test |
- Update peerpad-core to v0.11 - Add package-lock #150 (comment) - Update jest snapshots to fix Home.test.js
#151 is in the pipe. Awaiting the Jenkins launch codes now. |
Bumping the deps has not fixed the issue. I'll write up what I've found so far, later this eve. |
In Chrome, If you use a fresh browser profile or remove all the indexDbs for the domain, you hit
Which looks like ipfs/js-ipfs#1131 |
Fix for the can't set links issue was ipfs/aegir#180 which disables mangle and compress in aegir Recently mangle and compress got re-enabled in a aegir This is the subsequent error we see in peer pad when refreshing after the initial error
Which is referenced in So it sounds like something went wrong with the bundling with of js-ipfs for peer-pad-core |
peerpad is currently built as a "website (hugo)" job on jenkins, so its production build is triggered by sh 'docker run -i -v `pwd`:/site ipfs/ci-websites make -C /site build' The ipfs/ci-websites docker image is built with these deps https://github.com/ipfs/ci-websites/blob/af0b98f712a5e6bd4174eb86e2ee05c9bdaacb57/Dockerfile The prod site is the result of calling which invokes https://github.com/ipfs-shipyard/peer-pad/blob/8977207042fd41a51e6ce28865e813dab70b4a3c/package.json#L62 which calls the |
No yarn version is specified in the make file To get a deterministic build, we'd need both a yarn.lock file and a pinned yarn version. There is an open PR to pin the version of yarn (and aegir) https://github.com/ipfs/ci-websites/pull/2/files but a project like peerpad should be able to pin its own dependencies and have the build process use them, rather than have CI decide what versions to use. This points to a need for a "webapp" jenkins build target, that tailored to building single page apps and more complex web apps. |
Using
The same errors are observed in the local build |
My preferred solution here is to use |
@fsdiogo do you have any idea why a yarn build would lead to a bundle with js-ipfs in that exhibits the errors you mentioned in ipfs/aegir#214 but an npm install does not? |
Hmm, that's weird.. I don't see any reason for not working with yarn 🤔 |
Indeed! What I want to do with the pipelines is able to pipe them together, so you can call first |
@olizilla I'm doing some pm-ing for the andyet team and had a conversation with David this morning. I'd like to understand if a change that one of our devs made caused this issue and how we can avoid it in the future. It is unclear to me whether it was a change in this repo or a pre-existing issue in the CI system or with dependency bundling, that caused peerpad to break. The DEPLOY.md helps to clarify your process so thanks for creating that.
It looks like the CI tests than run on a merge are not entirely stable and from your comment above it sounds like we should be running the some tests manually prior to merges since deploy happens automatically on merges to master. Can you please clarify the testing process we should be following, or if you prefer to leave PRs in features branches until more thorough testing exists? Thanks! |
@one000mph I'm a little uncomfortable. I feel like I'm missing some nuances. Please can we arrange a call? It'd be great to talk with you all. The short version is, no, as far as I can tell, none of your devs caused this issue. Work was done by PL to allow peerpad to be automatically deployed to production when commits are merged to master. The build process that was used to create the prod site used Other problems that this event uncovered are
The CI tests are stable, we need more of them. The e2e smoke test will at least tell us if users can create new pads without an error, and sync 2 pads via IPFS. If CI says that isn't working, it needs to be checked out before the PR is merged. Of note, that is a full on integration test, nothing is stubbed out, so it can be affected by network or IPFS infrastructure issues, but the point is, if it does fail, for any reason, then it's likely it will also fail for users, so is worth checking. PRs should be reviewed by at least 1 other person before merging to master, the general guidelines that we're converging on for all-the-things are here https://github.com/ipfs/community/blob/master/js-code-guidelines.md |
Also of note, it occurs to me that smoke test being run on travis won't catch the issue of the travis test build steps diverging from the jenkins deploy build steps, which is the root cause of this issue. @victorbjelkholm it'd be rad if we could add a post build test hook to jenkins that could pass the root hash of the site once it's been added to ipfs but before we update the dns. We could configure the smoke test to run against the ipfs.io/ipfs/QmLatestHash which would also catch issues like non-relative urls used for assets as found in #154 |
Seems that something got published to PeerPad and it stopped working. Wonder if this was intentional or not, it might have slipped with the auto deploy. //cc @victorbjelkholm
The text was updated successfully, but these errors were encountered: