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