pandonetwork / pando Goto Github PK
View Code? Open in Web Editor NEWA distributed remote protocol for git based on IPFS, ethereum and aragonOS
A distributed remote protocol for git based on IPFS, ethereum and aragonOS
I made partly a custom tab navigation before but aragonUI has been updated and includes a more intentional API now.
We should use the new API. https://github.com/aragon/aragon-ui/releases/tag/v0.32.0
Hi Guys,
I have been thinking about a decentralized GIT with a reward layer and using Aragon for governance for a year or so and suddenly I came across this project yesterday after checking Aragon Nest.
Having a UI interface build with Electron similar to Aragon's will be critical for the UX and I could help on that but I guess that's quite down the line for you now, anyway I would love to help with anything you need.
Ruben
We should come up with a bot able to sync a Github repo into a pando repo. This bot could then be used in cron task to sync repo every hour, day or week.
test matrix / riot integration
We need to extend type checking consistency in pando.js
This means : a. declaring our own custom types ; b. importing external types through DefinitelyTyped or custom packages ; c. making use of Typechain.
Maybe we should add package-lock.json to .gitignore.
Not good to version a binary, but its inner contents.
I know doubts and laughs will spawn from the question "have only a .tar.gz as repo", but reading about USV you could understand.
Hi,
I really like the idea behind Pando. I've considered building something similar for a while now, so I might contribute to your repo in the future.
I'm trying to install @pando/cli on Ubuntu 18.04 as a root but somehow it fails for permission reason while installing keccak:
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/@pando/cli/node_modules/keccak/build'
$ sudo npm install -g @pando/cli
npm WARN deprecated [email protected]: Custom ALPHABET bug fixed in v7.0.2
npm WARN deprecated [email protected]: ⚠️ WARNING ⚠️ tar.gz module has been deprecated and your application is vulnerable. Please use tar module instead: https://npmjs.com/tar
npm WARN deprecated [email protected]: Use mz or fs-extra^3.0 with Promise Support
> [email protected] preinstall /usr/local/lib/node_modules/@pando/cli/node_modules/scrypt
> node node-scrypt-preinstall.js
Error: Error: Command failed: ./configure
./configure: line 1904: config.log: Permission denied
./configure: line 1914: config.log: Permission denied
/usr/local/bin/pando -> /usr/local/lib/node_modules/@pando/cli/lib/pando
> [email protected] install /usr/local/lib/node_modules/@pando/cli/node_modules/keccak
> npm run rebuild || echo "Keccak bindings compilation fail. Pure JS implementation will be used."
> [email protected] rebuild /usr/local/lib/node_modules/@pando/cli/node_modules/keccak
> node-gyp rebuild
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/@pando/cli/node_modules/keccak/build'
gyp ERR! System Linux 4.15.0-33-generic
gyp ERR! command "/usr/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/@pando/cli/node_modules/keccak
gyp ERR! node -v v8.10.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] rebuild: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/gjeanmart/.npm/_logs/2018-09-09T09_05_59_740Z-debug.log
Keccak bindings compilation fail. Pure JS implementation will be used.
> [email protected] install /usr/local/lib/node_modules/@pando/cli/node_modules/scrypt
> node-gyp rebuild
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/@pando/cli/node_modules/scrypt/build'
gyp ERR! System Linux 4.15.0-33-generic
gyp ERR! command "/usr/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/@pando/cli/node_modules/scrypt
gyp ERR! node -v v8.10.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/gjeanmart/.npm/_logs/2018-09-09T09_06_01_381Z-debug.log
Thanks.
It could be nice with markdown rendering, so we can render the README.md
file if it exist just like Github/Gitlab.
Design related feedback etc. can be discussed here.
The related design work still needs to be sketched in Figma.
It's probably going to look a lot like Github/Gitlab and other git services out there but reduced to be simple/minimal/MVP.
Check out the progress in the Pando figma file: https://www.figma.com/file/UCcxPi0qfxMpDv5SZf1lfnHM/Pando?node-id=0%3A1
The Figma file is pretty much used for research, experimentation, rough ideas etc.
The actual work is being put into the frontend UI code.
Please forgive me if I'm a little too obtuse to connect the dots, but the Why Pando? section doesn't satisfy my curiosities. It does talk about a really cool tree/root system, which is lit. It does not tell me why this project specifically is named after that awesome tree/root system. More clarity would be appreciated :)
Also, super cool logo!
Also, now that I think about it... the picture helps: the roots are the code and files, and those support the ecosystem of applications that users live in and interact with. This was not immediately obvious though, so please make it more explicit lol (if that is indeed the message/goal of the project, otherwise please correct me!)
Right now we are using https://github.com/FormidableLabs/prism-react-renderer to do code highlighting but we don't switch "highlighting modes" depending on file type. We have discussed that we should make a mapping of file extension to supported languages.
Languages supported in prism-react-renderer
:
https://github.com/FormidableLabs/prism-react-renderer/blob/master/src/vendor/prism/includeLangs.js
script.js
should use an initialization mechanism to fetch all listed repos and add them as external contracts to listen to their UpdateNameAndDescription
events and update the application state accordingly.
This could be a good source of inspiration: https://github.com/aragon/aragon-apps/blob/200e6ef0511c01f077e663230fd0d607970702c9/apps/voting/app/src/script.js#L56
It will use That Planning Tab. So, issues and other things from that app will work locally, and remotely when pushed.
The git-remote-pando
and git-pando
CLIs should be refactored to rely on pando.js
and the upcoming aragon-kit.js
library.
This would make it easier to update and maintain.
We need to implement custom dev scripts
aragon devchain
The DAOKits discussed in #11 should be a part of the deployed / published packaged to ease the deployment of new pando organizations - i.e. Aragon DAOS.
A good source of inspiration can be found from the great folks at Giveth / SpaceDecentral here.
We need to implement custom DAOKits to ease the development, testing and deployments of pando DAOs and organisms.
These DAOKits should come at least in two flavors: as a dictator-based kit and as a democracy-based kit.
Is this already a thing on Pandy?
For example, when writing and commiting "Foo bar is a protein bar", and then removing "protein" and commiting, then writing "Foo bar is a whey protein bar" and commiting: instead of registering that "whey protein" has been added, it only registers "whey"; and the previous used > removed > re-added word "protein" instead of being registered will be referred/gathered to the commit it has been added.
It will free up lots of storage space for bytes.
Hey,
Here is a summary of the discussion we've had yesterday with Cory regarding the implementation of a small pando.js
library.
The goal of this library would be to:
To do so, we need to implement a small library providing the following features:
js-git-ipld
commit objects look like that:
{
"author": {
"date": "1503667703 +0200",
"email": "author@mail",
"name": "Author Name"
},
"committer": {
"date": "1503667703 +0200",
"email": "author@mail",
"name": "Author Name"
},
"message": "Commit Message\n",
"parents": [
{ "/": cid }, { "/": cid }, ...
],
"tree": { "/", cid }
}
The idea would be for this library to take the CID of such a given commit [the HEAD cid of a branch] and turn it into the following ordered array:
[
commitN,
commitN-1,
commitN-2,
...
]
Where each commit would look like that:
{
"cid": zw9X ..., // CID of the commit
"sha": 9c4v ..., // git sha1 of the commit
" "author": {
"date": "1503667703 +0200",
"email": "author@mail",
"name": "Author Name"
},
"committer": {
"date": "1503667703 +0200",
"email": "author@mail",
"name": "Author Name"
},
"message": "Commit Message\n",
"tree": {
"README.md": { "lastEdit": { "date": xxx, "message": xxx }, mode: "12600", "blob": zw9x ... // CID of the file },
"app/index.js": { "lastEdit": { "date": xxx, "message": xxx }, mode: "12600", "blob": zw9x ... // CID of the file },
"app/util/index.js": { "lastEdit": { "date": xxx, "message": xxx }, mode: "12600", "blob": zw9x ... // CID of the file },
...
},
parents: [
zw9x ..., // CID of parent commit
zw9x ... // CID of the
...
]
}
Conversely, this library should be able to take the object described below as an input an turn it back into an IPLD commit.
We had different feedbacks of people confused with the Colony
thing [because of Colony being another Ethereum dApp].
We would like to be able to diff files when users are doing merge requests etc.
We would need to come-up with a dedicated documentation at some point. Also see #52.
Keybase already have a solution for encrypted git repos. Maybe you can use it!
We should re-introduce the lineage system that we designed in the previous versions of pando with a new rationale: a commit or PR should NOT automatically open a new Lineage Request [because it will clutter everything] but people should be able to easily open a Lineage Request pointing to commit, or a PR, or an issue, etc. To achieve this we would just need to:
Repository
into a TokenManager
.Colony
or renamed Pando
app into a TokenManager and update it to handle multiplying factors in authorship depending on which repository the requests come from.WeightVoting
app we had developed for the first version of pando.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.