LucidUbuntuOneSymlinksAndUDFs

Differences between revisions 1 and 2
Revision 1 as of 2009-11-06 20:50:05
Size: 2598
Editor: 224
Comment:
Revision 2 as of 2009-11-07 17:10:51
Size: 5080
Editor: 200-127-235-12
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
This should provide an overview of the issue/functionality/change proposed here. Focus here on what will actually be DONE, summarising that so that other people don't have to read the whole spec. See also CategorySpec for examples. Add to Ubuntu One File Sharing the possibility of synchronizing folders that are not inside ~/Ubuntu One. This user defined folders can be downloaded or not from every machine. This functionality is related to symlink support, so we define both together.
Line 14: Line 14:
This section should include a paragraph describing the end-user impact of this change. It is meant to be included in the release notes of the first release in which it is implemented. (Not all of these will actually be included in the release notes, at the release manager's discretion; but writing them is a useful exercise.)

It is mandatory.
Added support for symlinks.
Added support for syncing folders not under ~/Ubuntu One
Line 20: Line 19:
This should cover the _why_: why is this change being proposed, what justifies it, where we see this justified. This is the current #1 user request for Ubuntu One File Sharing.
We cant ask the user to put all his files under ~/Ubuntu One, so we must take ~/Ubuntu One to them.
Line 24: Line 24:
== Assumptions == Use Cases:
Line 26: Line 26:
== Design == user wants to sync symlinks:
   if the user creates a symlink (or shortcut) inside a folder that is being shared, the symlink will be uploaded as a symlink and downloaded like that on the other ends.
   It will have the same target (eg, "../someotherdir") even if that means that it will be broken on the other machines
   The contents of the the target (file or directory) will NOT be synced
   The symlink will have an emblem to make it clear that we wont sync past it
Line 28: Line 32:
You can have subsections that better describe specific parts of the issue. user wants to sync an user-defined-folder (UDF)
    when the user wants to sync a folder that is not inside ~/Ubuntu One he will:
  - right click on the folder -> "sync with ubuntu one..."
  - Select a name for the folder (defaults to the folder name)
  - from the list of machines that he has authenticated, he can select for each one:
        * if he wants to download the files to that machine (default: yes)
        * where he wants to put this folder ( default ~/Ubuntu One/Folder Name)
  - the folder will start uploading and appear in all the machines that he selected
  - if the folder is going inside ~/Ubuntu One and there is already a file with that name, the UDF will be renamed on that machine only.
  - if at a later time a file with the name of the UDF appears, the UDF will be renamed.
Line 30: Line 43:
== Implementation == user wants to share an user-defined-folder (UDF)
Syncing with ubuntu one is very similar to sharing with yourself. So we need to decide how to create the interaction for when the user want to share a folder that is not yet synced with ubuntuone. (maybe just add a space to add people to share with in the 'sync with u1' dialog)
Line 32: Line 46:
This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like: user wants to move the location of a user-defined-folder (UDF)
If the user wants to change the location to where a UDF syncs, he can right click on the folder -> "u1 settings..." and change the location to another folder. How can he select the folder to be synced into ~/Ubuntu One again? Just selecting ~/Ubuntu One/ as the path? too much magic?
Line 34: Line 49:
=== UI Changes === user wants to stop downloading contents from a UDF to this machine
right click on the folder -> "u1 settings...", dont download here
Line 36: Line 52:
Should cover changes required to the UI, or specific UI that is required to implement this user wants to start downloading contents from a UDF to this machine
here the user can:
a) go to the global list of UDFs
b) we could have a folder inside U1 (or some other location the user may have chosen) with an emblem showing that this is an UDF that is turned off, and do right click to enable it.
Line 38: Line 57:
=== Code Changes === new machine added to u1
When a new machine is added, a list of all the UDF should be presented so he can select which ones he wants (all by default) and configure special locations for some
Line 40: Line 60:
Code changes should include an overview of what needs to change, and in some cases even the specific details. user wants to see and configure all his UDF
The user may want to know what parts of his system are under control of u1 and understand the disk usage involved in this. Also, being able to enable/disable UDF from a central location may make it easier for him to manage them.
Applications->Internet->Ubuntu One should have a tab that lists all UDF and their preferences
Line 42: Line 64:
=== Migration ===

Include:
 * data migration, if any
 * redirects from old URLs to new ones, if any
 * how users will be pointed to the new way of doing things, if necessary.

== Test/Demo Plan ==

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.
Line 57: Line 67:
This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved. UDF == Share?
UDF behave very much like shares. So maybe there is a way we can present them as the same or a similar way to make things easier (you could define locations for shares. you could choose not to download a share in one machine)

move/configure regular folders?
If you have a UDF inside U1 you do right-click to move it. But then, if you try the same in a regular folder inside ~/Ubuntu One you wont find these settings. should we not put UDF close to normal folders? should we give normal folders all the capabilities of UDFs? This would be expensive to implement. Would it be possible to manage that mess?

Folder Names inside ~/Ubuntu One and conflicts
if we keep UDFs inside ~/Ubuntu One, we have to name them so they dont conflict with regular files or folders. Even renaming them as they appear. Will this confuse the user?

symlinks and shares
there might be security considerations or opportunities for social engineering when i share a folder to you that contains a link to /etc/passwd or stuff like that.

Summary

Add to Ubuntu One File Sharing the possibility of synchronizing folders that are not inside ~/Ubuntu One. This user defined folders can be downloaded or not from every machine. This functionality is related to symlink support, so we define both together.

Release Note

Added support for symlinks. Added support for syncing folders not under ~/Ubuntu One

Rationale

This is the current #1 user request for Ubuntu One File Sharing. We cant ask the user to put all his files under ~/Ubuntu One, so we must take ~/Ubuntu One to them.

User stories

Use Cases:

user wants to sync symlinks:

  • if the user creates a symlink (or shortcut) inside a folder that is being shared, the symlink will be uploaded as a symlink and downloaded like that on the other ends. It will have the same target (eg, "../someotherdir") even if that means that it will be broken on the other machines The contents of the the target (file or directory) will NOT be synced The symlink will have an emblem to make it clear that we wont sync past it

user wants to sync an user-defined-folder (UDF)

  • when the user wants to sync a folder that is not inside ~/Ubuntu One he will:
  • - right click on the folder -> "sync with ubuntu one..." - Select a name for the folder (defaults to the folder name) - from the list of machines that he has authenticated, he can select for each one:

    • if he wants to download the files to that machine (default: yes)
    • where he wants to put this folder ( default ~/Ubuntu One/Folder Name)
    - the folder will start uploading and appear in all the machines that he selected - if the folder is going inside ~/Ubuntu One and there is already a file with that name, the UDF will be renamed on that machine only. - if at a later time a file with the name of the UDF appears, the UDF will be renamed.

user wants to share an user-defined-folder (UDF) Syncing with ubuntu one is very similar to sharing with yourself. So we need to decide how to create the interaction for when the user want to share a folder that is not yet synced with ubuntuone. (maybe just add a space to add people to share with in the 'sync with u1' dialog)

user wants to move the location of a user-defined-folder (UDF) If the user wants to change the location to where a UDF syncs, he can right click on the folder -> "u1 settings..." and change the location to another folder. How can he select the folder to be synced into ~/Ubuntu One again? Just selecting ~/Ubuntu One/ as the path? too much magic?

user wants to stop downloading contents from a UDF to this machine right click on the folder -> "u1 settings...", dont download here

user wants to start downloading contents from a UDF to this machine here the user can: a) go to the global list of UDFs b) we could have a folder inside U1 (or some other location the user may have chosen) with an emblem showing that this is an UDF that is turned off, and do right click to enable it.

new machine added to u1 When a new machine is added, a list of all the UDF should be presented so he can select which ones he wants (all by default) and configure special locations for some

user wants to see and configure all his UDF The user may want to know what parts of his system are under control of u1 and understand the disk usage involved in this. Also, being able to enable/disable UDF from a central location may make it easier for him to manage them. Applications->Internet->Ubuntu One should have a tab that lists all UDF and their preferences

Unresolved issues

UDF == Share? UDF behave very much like shares. So maybe there is a way we can present them as the same or a similar way to make things easier (you could define locations for shares. you could choose not to download a share in one machine)

move/configure regular folders? If you have a UDF inside U1 you do right-click to move it. But then, if you try the same in a regular folder inside ~/Ubuntu One you wont find these settings. should we not put UDF close to normal folders? should we give normal folders all the capabilities of UDFs? This would be expensive to implement. Would it be possible to manage that mess?

Folder Names inside ~/Ubuntu One and conflicts if we keep UDFs inside ~/Ubuntu One, we have to name them so they dont conflict with regular files or folders. Even renaming them as they appear. Will this confuse the user?

symlinks and shares there might be security considerations or opportunities for social engineering when i share a folder to you that contains a link to /etc/passwd or stuff like that.

BoF agenda and discussion

Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.


CategorySpec

Specs/LucidUbuntuOneSymlinksAndUDFs (last edited 2010-02-08 18:09:02 by 24-117-212-232)