qri-io / rfcs

Request For Comments (RFCs) documenting changes to Qri
MIT License
12 stars 6 forks source link

Round of ratifying RFCS #55

Closed b5 closed 4 years ago

b5 commented 4 years ago

We have eight open RFCS that need to get pinned down ASAP. This table picks RFC numbers for each, grouping RFCS in a sensible order.

RFC Complete? Approvals Merged
0026 - expose starlark transform function yes 3/5
0027 - apply command yes 2/5
0028 - externalize private keys yes 2/5
0029 - configuration overhaul yes 2/5
0030 - push/pull commands yes 3/5
0031 - overhauled remove yes 4/5
0032 - access command yes 0/5
0033 - storage command yes 3/5

It's also important to consider how all of these will work together. This is how qri --help might look if all these RFCs were ratified:

Usage:
  qri [command]

Dataset Commands:
  access      control visibility and permissions for datasets
  apply       execute scripts on datasets
  diff        compare differences between two data sources
  get         get components of qri datasets
  list        show a list of datasets
  log         show history of dataset commits
  delete      remove versions from dataset history
  rename      change the name of a dataset
  render      apply templates to datasets
  save        save changes to a dataset
  sql         experimental: apply an SQL query on local dataset(s)
  stats       calculate aggregated stats for a dataset
  storage     manage dataset storage on local and remote peers
  validate    show schema validation errors

Working Directory Commands:
  checkout    create a linked directory and write dataset files
  init        initialize a dataset directory
  restore     restore a checked out dataset's files to a previous state
  status      show what components of a dataset have been changed
  workdir     file system integration tools

Networking Commands:
  connect     connect to the distributed web by spinning up a Qri node
  peers       commands for working with peers
  push        set dataset publicity
  pull        fetch datasets from other peers
  registry    commands for working with a qri registry (qri.cloud)
  search      search the registry for datasets

Other Commands:
  completion  generate shell auto-completion scripts
  config      get and set local configuration information
  help        Help about any command
  setup       initialize qri and IPFS repositories, provision a new qri ID
  version     print the version number

I'll add comments to this issue illustrating common CLI flows in v0.9.8, and how they'd look if all of these RFCs were ratified.

b5 commented 4 years ago

Fetch a dataset to a directory, then fetch an update

qri v0.9.8:

$ qri add b5/world_bank_population
fetched b5/world_bank from registry
added dataset b5/world_bank_population@/ipfs/QmVeTFnoRChxGjPrrayHufefR2vNNQrKEtiRZWaShzS5LD

$ qri checkout b5/world_bank_population
created and linked working directory world_bank_population for existing dataset

$ qri add b5/world_bank_population
fetched b5/world_bank from registry
added dataset b5/world_bank_population@/ipfs/QmVeTFnoRChxGjPrrayHufefR2vNNQrKEtiRZWaShzS5LD

proposed:

$ qri checkout b5/world_bank_population
pulling 1 verison of b5/world_bank_population from registry (https://registry.qri.io)... done.
added dataset b5/world_bank_population@/ipfs/QmVeTFnoRChxGjPrrayHufefR2vNNQrKEtiRZWaShzS5LD
created working directory world_bank_population

$ cd world_bank_population

$ qri pull
[for linkded dataset: b5/world_bank_population ]
pulling 1 version of b5/world_bank_population... done.

Send Data to the registry, then undo

qri v0.9.8:

$ qri save --body file.csv me/dataset
for linked dataset [b5/dataset]
dataset saved b5/dataset@/ipfs/QmVeTFnoRChxGjPrrayHufefR2vNNQrKEtiRZWaShzS5LD

$ qri publish me/dataset
0/8 blocks transferred
1/8 blocks transferred
2/8 blocks transferred
3/8 blocks transferred
4/8 blocks transferred
5/8 blocks transferred
6/8 blocks transferred
7/8 blocks transferred
8/8 blocks transferred
done!
🗼 published to registry
published dataset foo/dataset@/ipfs/QmQTA7NY1Kbk7btVsjZttQmzUM8UrixaAJfU9H5A6WCGio

$ qri publish --unpublish foo/dataset
unpublished foo/dataset

proposed:

$ qri save --body file.csv me/dataset
for linked dataset [b5/dataset]
dataset saved b5/dataset@/ipfs/QmVeTFnoRChxGjPrrayHufefR2vNNQrKEtiRZWaShzS5LD

$ qri push me/dataset
setting dataset access to visible
pushing 28 versions of chriswhong/some_dataset...
X of XX blocks pushed for version 12 August 2019 (Qmss4h552h3j2h33)... done.
pushed foo/dataset to registry (https://registry.qri.cloud)

$ qri remove me/dataset --remote  registry
removing foo/dataset from registry... done.
dropped dataset foo/dataset from registry (https://registry.qri.cloud)

edit version history

qri v0.9.8:

$ qri save --body file.csv me/dataset
for linked dataset [b5/dataset]

dataset saved b5/dataset@/ipfs/QmVeTFnoRChxGjPrrayHufefR2vNNQrKEtiRZWaShzS5LD

$ qri remove me/dataset --revisions 1
for linked dataset [rm_me_2/giro_e_ev_stations]

removed entire dataset 'rm_me_2/giro_e_ev_stations@/ipfs/QmVeTFnoRChxGjPrrayHufefR2vNNQrKEtiRZWaShzS5LD'

proposed:

$ qri save --body file.csv me/dataset
for linked dataset [b5/dataset]

dataset saved b5/dataset@/ipfs/QmVeTFnoRChxGjPrrayHufefR2vNNQrKEtiRZWaShzS5LD

$ qri remove me/dataset --revisions 1
for linked dataset [rm_me_2/giro_e_ev_stations]

removed entire dataset 'rm_me_2/giro_e_ev_stations@/ipfs/QmVeTFnoRChxGjPrrayHufefR2vNNQrKEtiRZWaShzS5LD'
b5 commented 4 years ago

Three RFCS ratified today! only three to go!

b5 commented 4 years ago

🚂 🚋🚋🚋🚋🚋🚋 🚋 🛤️ 🛤️ 🛤️ 🛤️ 🛤️ 🛤️ 🛤️ 🛤️

All 8 RFCS are ratified. We have a roadmap for qri 0.10.0!