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

release rc2 #476

Closed
karissa opened this Issue Apr 26, 2016 · 20 comments

Comments

Projects
None yet
7 participants
@karissa
Collaborator

karissa commented Apr 26, 2016

@karissa karissa added this to the Priorities milestone Apr 26, 2016

@joehand

This comment has been minimized.

Show comment
Hide comment
@joehand

joehand Jun 7, 2016

Member

10.0.0 updates API to use new one. I'm working on updating the CLI output here. We have a few lingering questions/updates on the sensible defaults:

  1. Live or Static by default?

    1a. Is the default the same for both download and sharing?
    1b. When downloading & live, is it okay to seed by default too (otherwise no way to be live)?

  2. Changed append to resume.

  3. Currently if you reshare the same folder the hash will change. This is confusing, but is it acceptable for now?

Member

joehand commented Jun 7, 2016

10.0.0 updates API to use new one. I'm working on updating the CLI output here. We have a few lingering questions/updates on the sensible defaults:

  1. Live or Static by default?

    1a. Is the default the same for both download and sharing?
    1b. When downloading & live, is it okay to seed by default too (otherwise no way to be live)?

  2. Changed append to resume.

  3. Currently if you reshare the same folder the hash will change. This is confusing, but is it acceptable for now?

@mafintosh

This comment has been minimized.

Show comment
Hide comment
@mafintosh

mafintosh Jun 7, 2016

Member

1a. No strong feelings. @maxogden probably has input here. I do like the --live symmetry you get when uploading/downloading if static is default

1b. Defaults should not change based on the input. Always be static per default here.

  1. +1 resume
  2. I don't agree that 3 is confusing. It's just an opaque link. Either way this can be updated in the future.

One thing we should get in there asap the is dat.land links instead of just sharing the hash/public-key.

Member

mafintosh commented Jun 7, 2016

1a. No strong feelings. @maxogden probably has input here. I do like the --live symmetry you get when uploading/downloading if static is default

1b. Defaults should not change based on the input. Always be static per default here.

  1. +1 resume
  2. I don't agree that 3 is confusing. It's just an opaque link. Either way this can be updated in the future.

One thing we should get in there asap the is dat.land links instead of just sharing the hash/public-key.

@mafintosh

This comment has been minimized.

Show comment
Hide comment
@mafintosh

mafintosh Jun 7, 2016

Member

I think the biggest prio here is finishing the CLI output so we can get rid of my console.logs. More 🚢 ing!

Member

mafintosh commented Jun 7, 2016

I think the biggest prio here is finishing the CLI output so we can get rid of my console.logs. More 🚢 ing!

@karissa

This comment has been minimized.

Show comment
Hide comment
@karissa

karissa Jun 7, 2016

Collaborator

I think 3 is confusing if the data hasn't changed but the hash changes. I think we have to decide: is the cli going to be more like dropbox (always live, always resume) or more like the older dat?

It could also be confusing because we are trying to do sync from the command line and maybe it just won't be a very nice interface.

+1 getting dat.land links in there!

Collaborator

karissa commented Jun 7, 2016

I think 3 is confusing if the data hasn't changed but the hash changes. I think we have to decide: is the cli going to be more like dropbox (always live, always resume) or more like the older dat?

It could also be confusing because we are trying to do sync from the command line and maybe it just won't be a very nice interface.

+1 getting dat.land links in there!

@joehand

This comment has been minimized.

Show comment
Hide comment
@joehand

joehand Jun 7, 2016

Member

What needs to happen to get dat.land links working across CLI/web? I can make them links but right now none would seed b/c the different swarms.

Member

joehand commented Jun 7, 2016

What needs to happen to get dat.land links working across CLI/web? I can make them links but right now none would seed b/c the different swarms.

@mafintosh

This comment has been minimized.

Show comment
Hide comment
@mafintosh

mafintosh Jun 7, 2016

Member

@joehand we need to run some hybrid clients. easiest way would be for dat.land to message a hybrid server somewhere to join the swarm for a specific hash.

Member

mafintosh commented Jun 7, 2016

@joehand we need to run some hybrid clients. easiest way would be for dat.land to message a hybrid server somewhere to join the swarm for a specific hash.

@mafintosh

This comment has been minimized.

Show comment
Hide comment
@mafintosh

mafintosh Jun 7, 2016

Member

also anyone can run a hybrid server since you don't need to trust them. we'd only send them the discovery key which isn't enough to decrypt data.

Member

mafintosh commented Jun 7, 2016

also anyone can run a hybrid server since you don't need to trust them. we'd only send them the discovery key which isn't enough to decrypt data.

@joehand

This comment has been minimized.

Show comment
Hide comment
@joehand

joehand Jun 8, 2016

Member

How does this look to everyone:

dat <command> <directory> [--option <argument>]
  dat share <directory>    creates a link and shares directory
  dat <link> <directory>   downloads data from a link into directory

options
  --live              sync new files and keep connection open
  --resume=<link>     resume a link created earlier
  --seed              when downloading, keep seeding data
  --port, -p          set a specific inbound tcp port
  --quiet, -q         quiet output mode
  --debug             debug output mode
  --no-color          no color output mode
  --version, -v       get installed dat version
Member

joehand commented Jun 8, 2016

How does this look to everyone:

dat <command> <directory> [--option <argument>]
  dat share <directory>    creates a link and shares directory
  dat <link> <directory>   downloads data from a link into directory

options
  --live              sync new files and keep connection open
  --resume=<link>     resume a link created earlier
  --seed              when downloading, keep seeding data
  --port, -p          set a specific inbound tcp port
  --quiet, -q         quiet output mode
  --debug             debug output mode
  --no-color          no color output mode
  --version, -v       get installed dat version
@thadguidry

This comment has been minimized.

Show comment
Hide comment
@thadguidry

thadguidry Jun 8, 2016

@joehand

  1. a "link" ... hmm... what kind of link ?
    Let the user know a bit more information. about what a link is. url? uri? samba share?
  2. describe "debug" and "quiet" and "no-color" mode telling what they do or don't do, rather then repeat the words.
  3. "seed" ... hmm... it keeps seeding data ? why ? ...oh it keeps the data FOR seeding ? be a bit more clear here. English is a funky language when you put some words before or after others and changes the intent and meaning.

thadguidry commented Jun 8, 2016

@joehand

  1. a "link" ... hmm... what kind of link ?
    Let the user know a bit more information. about what a link is. url? uri? samba share?
  2. describe "debug" and "quiet" and "no-color" mode telling what they do or don't do, rather then repeat the words.
  3. "seed" ... hmm... it keeps seeding data ? why ? ...oh it keeps the data FOR seeding ? be a bit more clear here. English is a funky language when you put some words before or after others and changes the intent and meaning.
@waldoj

This comment has been minimized.

Show comment
Hide comment
@waldoj

waldoj Jun 9, 2016

Contributor

"seed" ... hmm... it keeps seeding data ? why ? ...oh it keeps the data FOR seeding ?
This is a good point. "seeding" is both a noun and a verb.

Contributor

waldoj commented Jun 9, 2016

"seed" ... hmm... it keeps seeding data ? why ? ...oh it keeps the data FOR seeding ?
This is a good point. "seeding" is both a noun and a verb.

@laurengarcia

This comment has been minimized.

Show comment
Hide comment
@laurengarcia

laurengarcia Jun 9, 2016

dat list might be nice, to view the contents of an archive.

laurengarcia commented Jun 9, 2016

dat list might be nice, to view the contents of an archive.

@juliangruber

This comment has been minimized.

Show comment
Hide comment
@juliangruber

juliangruber Jun 9, 2016

Collaborator

<link> being listed as a "command" is confusing to me. What about calling it dat get <link> <directory> and mentioning dat <link> <directory> as a shorthand?

Collaborator

juliangruber commented Jun 9, 2016

<link> being listed as a "command" is confusing to me. What about calling it dat get <link> <directory> and mentioning dat <link> <directory> as a shorthand?

@juliangruber

This comment has been minimized.

Show comment
Hide comment
@juliangruber

juliangruber Jun 9, 2016

Collaborator

It's also confusing me that some of the options apply to dat in general, like --version, some apply to all commands, like --port, and some only apply to specific commands.

What about splitting it up like this:

dat share <directory>
  --option1 description
  --option2 description

dat get <link> <directory>
  --option1 description
  --option2 description

general dat options:
  --option1 description
  --option2 description
Collaborator

juliangruber commented Jun 9, 2016

It's also confusing me that some of the options apply to dat in general, like --version, some apply to all commands, like --port, and some only apply to specific commands.

What about splitting it up like this:

dat share <directory>
  --option1 description
  --option2 description

dat get <link> <directory>
  --option1 description
  --option2 description

general dat options:
  --option1 description
  --option2 description
@laurengarcia

This comment has been minimized.

Show comment
Hide comment
@laurengarcia

laurengarcia Jun 9, 2016

+1 on julian's suggestions above^^, plus I'd like to see a dat get <link> --list option.

laurengarcia commented Jun 9, 2016

+1 on julian's suggestions above^^, plus I'd like to see a dat get <link> --list option.

@joehand

This comment has been minimized.

Show comment
Hide comment
@joehand

joehand Jun 9, 2016

Member

"seed" ... hmm... it keeps seeding data ? why ? ...oh it keeps the data FOR seeding ?

Yes, seed is a bit confusing. The two options for downloading are:

  1. Download files and exit process after completion (thus stopping the sharing of files with peers)
  2. Download files and keep process open, continuing to share files ("seed").

@waldoj @thadguidry would --share make more sense? Or would that be also confusing with the share command.

Member

joehand commented Jun 9, 2016

"seed" ... hmm... it keeps seeding data ? why ? ...oh it keeps the data FOR seeding ?

Yes, seed is a bit confusing. The two options for downloading are:

  1. Download files and exit process after completion (thus stopping the sharing of files with peers)
  2. Download files and keep process open, continuing to share files ("seed").

@waldoj @thadguidry would --share make more sense? Or would that be also confusing with the share command.

@joehand

This comment has been minimized.

Show comment
Hide comment
@joehand

joehand Jun 9, 2016

Member

Along with the options & wording, the defaults we are looking at:

  1. Require user to specify a directory
  2. Default to static (make --live option for share & get)

Updated w/ @juliangruber idea & other comments.

dat <command> <directory> [--option <argument>]
  dat share <directory>            creates a dat-link and shares directory
  dat get <dat-link> <directory>   downloads a dat-link into directory 

dat share <directory>
  --live                sync new files added to directory
  --resume=<dat-link>   resume a dat-link created previously
  --port, -p            set a specific inbound tcp port

dat get <dat-link> <directory>
  --live                download new files when added to dat-link source
  --list                print file list for dat-link
  --seed (?)            keep process open and share data with peers
  --port, -p            set a specific inbound tcp port

output options:
  --quiet, -q           output only dat-link, no progress information
  --debug               show debugging output
  --no-color            no color in output

general options (no command required):
  --version, -v         get installed dat version
  --doctor              run dat doctor
Member

joehand commented Jun 9, 2016

Along with the options & wording, the defaults we are looking at:

  1. Require user to specify a directory
  2. Default to static (make --live option for share & get)

Updated w/ @juliangruber idea & other comments.

dat <command> <directory> [--option <argument>]
  dat share <directory>            creates a dat-link and shares directory
  dat get <dat-link> <directory>   downloads a dat-link into directory 

dat share <directory>
  --live                sync new files added to directory
  --resume=<dat-link>   resume a dat-link created previously
  --port, -p            set a specific inbound tcp port

dat get <dat-link> <directory>
  --live                download new files when added to dat-link source
  --list                print file list for dat-link
  --seed (?)            keep process open and share data with peers
  --port, -p            set a specific inbound tcp port

output options:
  --quiet, -q           output only dat-link, no progress information
  --debug               show debugging output
  --no-color            no color in output

general options (no command required):
  --version, -v         get installed dat version
  --doctor              run dat doctor
@waldoj

This comment has been minimized.

Show comment
Hide comment
@waldoj

waldoj Jun 9, 2016

Contributor

@joehand: I conclude the same thing that you did—that --seed isn't the problem, but the description was the problem. I think your revised description is much more clear.

Contributor

waldoj commented Jun 9, 2016

@joehand: I conclude the same thing that you did—that --seed isn't the problem, but the description was the problem. I think your revised description is much more clear.

@juliangruber

This comment has been minimized.

Show comment
Hide comment
@juliangruber

juliangruber Jun 9, 2016

Collaborator

@joehand i found the first block confusing still, what about this? (also reworded the command descriptions slightly to match the rest)

dat share <directory>

  create a dat-link and share directory

  --live                sync new files added to directory
  --resume=<dat-link>   resume a dat-link created previously
  --port, -p            set a specific inbound tcp port

dat get <dat-link> <directory>

  download a dat-link into directory

  --live                download new files when added to dat-link source
  --list                print file list for dat-link
  --seed (?)            keep process open and share data with peers
  --port, -p            set a specific inbound tcp port

general options

  --version, -v         get installed dat version
  --doctor              run dat doctor
  --quiet, -q           output only dat-link, no progress information
  --debug               show debugging output
  --no-color            no color in output
Collaborator

juliangruber commented Jun 9, 2016

@joehand i found the first block confusing still, what about this? (also reworded the command descriptions slightly to match the rest)

dat share <directory>

  create a dat-link and share directory

  --live                sync new files added to directory
  --resume=<dat-link>   resume a dat-link created previously
  --port, -p            set a specific inbound tcp port

dat get <dat-link> <directory>

  download a dat-link into directory

  --live                download new files when added to dat-link source
  --list                print file list for dat-link
  --seed (?)            keep process open and share data with peers
  --port, -p            set a specific inbound tcp port

general options

  --version, -v         get installed dat version
  --doctor              run dat doctor
  --quiet, -q           output only dat-link, no progress information
  --debug               show debugging output
  --no-color            no color in output
@thadguidry

This comment has been minimized.

Show comment
Hide comment
@thadguidry

thadguidry Jun 9, 2016

@joehand +1 for "share".

thadguidry commented Jun 9, 2016

@joehand +1 for "share".

@joehand

This comment has been minimized.

Show comment
Hide comment
@joehand

joehand Jun 17, 2016

Member

Will be released soon...

Member

joehand commented Jun 17, 2016

Will be released soon...

@joehand joehand closed this Jun 17, 2016

joehand added a commit that referenced this issue Jun 17, 2016

Merge pull request #485 from joehand/dat-folder
Adds a .dat folder and updates to RC2 API (#476, #484)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment