about FS: a roadmap

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

about FS: a roadmap

Stéphane Ducasse
HI guys

I was rambling.... so I looked at other frameworks (RIO, FileMan) and I prefer FS.
So I will start to write again comments, continue to reorganize the current structure.
I was in contact with colin that told me that he found the improved version that he was doing after ESUG.
I asked him to publish it into filesystem

I will integrate the fixes of damien.
I would like to have
        - a better help (already there).
        - Rename workingDirectory as workingDirectoryPath
        - add workingDirectory returning a FSReference
        - Every method with an adequate comment. The idea is that the comment should describe what the method does when we do not see its
        body: let us try to think a bit in JavaDoc or Ruby Yard fashion for once.
        - Use rename primitives
        - Have the possibility to create empty file
        - Clean identification of implementation tests and black box tests
        - Integrate Gemstone fixes
        - Stream usage clearly identified to support Gemstone migration)
        - Onion like structure so that we can have one or two packages that are really the core
        (yes I still want a minimal kernel).
        - Check the file API creation:
                        old, new, exist....
        - Prepare a migration path for 1.3
        - Fix filesystem workingDirectory isWorkingDirectory returns false.
        - rename fileDoesNotExist: and friends do convey that its goal is mainly to raise en exception
        raiseFileDoesNotExistsFor:


Of course I would like to avoid to throw away all that good energy so I hope to collaborate with colin.
We will see what will happen. I can understand that he has another agenda/time frame but we should
move on this front. So all my code will be publicly available in the SqueakSource/fs repository.

If you think that this is the wrong path, let me know.
I will report my changes regularly.

Stef
Reply | Threaded
Open this post in threaded view
|

Re: about FS: a roadmap

Stéphane Ducasse
Excellnt colin

>>
> I've published my changes to the SqueakSource FS repository. However,
> I think we should abandon them, for several reasons:
>
> They're based on a quite old version of FS, and they touch a *lot* of
> methods. So there are a ton of conflicts, and merging them into the
> latest versions that are on SqueakSource is really difficult to do
> correctly.
>
> Also, I think they're ultimately going in the wrong direction, and we
> should try to come up with a better solution to the Path/Reference
> naming problem.

Ok I guess that with good comment and a bit of package reorganization as I did it
we can leave with FSPath.

>
>> I will integrate the fixes of damien.
>> I would like to have
>>        - a better help (already there).
>>        - Rename workingDirectory as workingDirectoryPath
>>        - add workingDirectory returning a FSReference
>
> Agreed.
>
>>        - Every method with an adequate comment. The idea is that the comment should describe what the method does when we do not see its
>>        body: let us try to think a bit in JavaDoc or Ruby Yard fashion for once.
>
> Also agreed, at least for the public API. Comments should be more
> sparse for the private stuff.
>
>>        - Use rename primitives
>>        - Have the possibility to create empty file
>>        - Clean identification of implementation tests and black box tests
>>        - Integrate Gemstone fixes
>
> Agreed.
>
>>        - Stream usage clearly identified to support Gemstone migration)
>>        - Onion like structure so that we can have one or two packages that are really the core
>>        (yes I still want a minimal kernel).
>
> I'd like to see FS split into separate packages:
>
>  - Core (basic, API, resolvers, enumeration and exceptions)
>  - MemoryFS
>  - DiskFS
>  - ZipFS
>  - GitFS
>  - CurlFS
>  - FileStream compatibility
>  - ANSI streams
>  - Xtreams integration
>
> This will make it easier to have a minimal installation (just Core and
> DiskFS) as well as port to platforms like VW and Gemstone
>
>>        - Check the file API creation:
>>                        old, new, exist....
>
> Sure, but that stuff is actually much simpler when you have read-only
> and write-only streams.
>
>>        - Prepare a migration path for 1.3
>>        - Fix filesystem workingDirectory isWorkingDirectory returns false.
>>        - rename fileDoesNotExist: and friends do convey that its goal is mainly to raise en exception
>>        raiseFileDoesNotExistsFor:
>
> Sure.
>
>> Of course I would like to avoid to throw away all that good energy so I hope to collaborate with colin.
>> We will see what will happen. I can understand that he has another agenda/time frame but we should
>> move on this front. So all my code will be publicly available in the SqueakSource/fs repository.
>
> Cool!
>
> Colin


Reply | Threaded
Open this post in threaded view
|

Re: about FS: a roadmap

Stéphane Ducasse
In reply to this post by Stéphane Ducasse
I was bored in the train so ...

I did that and now I will do it regularly.


- I added trace to gather the exact type of arguments.... and
- moved FSLocator out of core and in resolver.
- added comments to FSFileSystem>>fileExist: and friends.
- changed category name error handling -> error raising
- better argument name for createDirectory
- added comment to createDirectory
- added comment to copy and friends
- added comment to ensureDirectory:
- added comment to isDirectory:
- added comment to isFile:
- added comment to open: aStringOrPath writable: aBoolean
- added comment to readStreamOn: aStringOrPath

Next step
- should probably rename FileExists as FileAlreadyExistsError

Stef

Reply | Threaded
Open this post in threaded view
|

Re: about FS: a roadmap

Max Leske
cool!

Keep it up.


On 09.02.2011, at 19:07, Stéphane Ducasse wrote:

> I was bored in the train so ...
>
> I did that and now I will do it regularly.
>
>
> - I added trace to gather the exact type of arguments.... and
> - moved FSLocator out of core and in resolver.
> - added comments to FSFileSystem>>fileExist: and friends.
> - changed category name error handling -> error raising
> - better argument name for createDirectory
> - added comment to createDirectory
> - added comment to copy and friends
> - added comment to ensureDirectory:
> - added comment to isDirectory:
> - added comment to isFile:
> - added comment to open: aStringOrPath writable: aBoolean
> - added comment to readStreamOn: aStringOrPath
>
> Next step
> - should probably rename FileExists as FileAlreadyExistsError
>
> Stef
>


Reply | Threaded
Open this post in threaded view
|

Re: about FS: a roadmap

Stéphane Ducasse
I will now I decided to do it for real.

Stef

Reply | Threaded
Open this post in threaded view
|

Re: about FS: a roadmap

Stéphane Ducasse
In reply to this post by Stéphane Ducasse
- Merged damien changes in fs

Stef

Reply | Threaded
Open this post in threaded view
|

Re: about FS: a roadmap

Stéphane Ducasse

- renamed workingDirectory into workingDirectoryPath
- added FSDiskFileSystem class>>workingDirectory

- renamed working into workingDirectory.
- deprecate working

- better printOn: for DirectoryEntry
- comments allChildren, allFiles, allDirectories, children, files, directories, childDirectories, childDirectories.

Since childDirectories is the same as directories and childFiles the same as files may be we should deprecate child* because this is not good to have both.

Stef
Reply | Threaded
Open this post in threaded view
|

Re: about FS: a roadmap

Stéphane Ducasse

- first cut at rename support - for FSReference and FSFileSystem (only FSDiscFilesystem).
- added fullName to FSPath, FSReference, FSLocator
- more comments
- should do MemoryFS rename:

- deprecate childDirectories and childFiles to use directories and files instead.

Stef
Reply | Threaded
Open this post in threaded view
|

Re: about FS: a roadmap

Damien Pollet
In reply to this post by Stéphane Ducasse
On Fri, Feb 11, 2011 at 19:45, Stéphane Ducasse
<[hidden email]> wrote:
> - renamed workingDirectory into workingDirectoryPath
> - added FSDiskFileSystem class>>workingDirectory
>
> - renamed working into workingDirectory.
> - deprecate working

I think isWorkingDirectory should be renamed to isEmpty. It's only
used in this meaning anyway.

A real isWorkingDirectory should resolve paths and check equality or
something like that, so that it works even if you give it a fully
expanded path rather than just ./

--
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet

Reply | Threaded
Open this post in threaded view
|

Re: about FS: a roadmap

Stéphane Ducasse
> <[hidden email]> wrote:
>> - renamed workingDirectory into workingDirectoryPath
>> - added FSDiskFileSystem class>>workingDirectory
>>
>> - renamed working into workingDirectory.
>> - deprecate working
>
> I think isWorkingDirectory should be renamed to isEmpty. It's only
> used in this meaning anyway.
>
> A real isWorkingDirectory should resolve paths and check equality or
> something like that, so that it works even if you give it a fully
> expanded path rather than just ./

commit and merge :)
Damien better commit into squeaksource/fs dans pharotaksForces.

Ok now heading towards the month saint michel and before the breakfast :)
>
> --
> Damien Pollet
> type less, do more [ | ] http://people.untyped.org/damien.pollet
>