Code Monkey home page Code Monkey logo

pando's People

Contributors

anudit avatar corydickson avatar daviddias avatar deamme avatar fahrradflucht avatar osarrouy avatar stellarmagnet avatar vmx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pando's Issues

Love to participate

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

github2pando bot

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

test matrix / riot integration

Typescript types

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.

Unable to install @pando/cli

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.

Add markdown rendering

It could be nice with markdown rendering, so we can render the README.md file if it exist just like Github/Gitlab.

Initial repository work

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.

Why Pando?

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!)

Development scripts

We need to implement custom dev scripts

  1. Start an IPFS daemon
  2. Start aragon devchain
  3. Deploy all pando-related contracts
  4. Publish all pando-related packages to make them locally accessible as APM packages

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.

Aragon DAOKits

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.

VCS: Referrers to avoid redundance [label:enhancement][label:hard]

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.

pando.js

Hey,

Here is a summary of the discussion we've had yesterday with Cory regarding the implementation of a small pando.js library.

What

The goal of this library would be to:

  • provide a more generic and efficient way to handle repositories frontend state
  • offer in-browser markdown edition,

How

To do so, we need to implement a small library providing the following features:

  • take a head commit IPLD CID and reduce it into an historically ordered commit array [the commit history of the given branch] as done in the current background script here
  • turn an IPLD linked-data commit object into an easier to manipulate Javascript / Typescript object
  • extract each file last update date and message for these commits
  • take a Javascript / Typescript object and turn it back into an IPLD / linked data commit object [to easily create a new commit to push from the browser]

Details

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.

Add diffing of files

We would like to be able to diff files when users are doing merge requests etc.

Documentation

We would need to come-up with a dedicated documentation at some point. Also see #52.

Lineage system

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:

  • Turn the Repository into a TokenManager.
  • Turn the 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.
  • Update and publish the WeightVoting app we had developed for the first version of pando.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.