Almost time for step 3 (Re: Modules - plan for the rest!)

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

Almost time for step 3 (Re: Modules - plan for the rest!)

gokr
Hey!

On 09/09/2011 11:07 AM, Göran Krampe wrote:
> Now the fun starts:
>
>
> Step Two - shaping up the model
> ===============================
> Add "Rename module" and "Delete module" buttons in browser.

Done. Although they are now called Packages and the buttons are "Rename"
and "Remove".

> Change "category" to "module" in the UI and in class definitions and
> templates. Yes, we still keep the old class creation methods too, in
> order to ease porting efforts.

Done. Again, called "package", not module.

> Make the meta protocol around Modules complete, thus make for example
> the following work:
> "Finding Module"
> Smalltalk current moduleAt: 'Kernel' ifAbsent:[]
> Smalltalk current moduleAt: 'Kernel'

Done.

All evaluate to true:

(Smalltalk current packageAt: 'Kernel' ifAbsent:[]) class == Package

(Smalltalk current packageAt: 'Kernel') == Object package


> "Creating, removing, listing etc"
> Smalltalk current addModule: 'NewModule'
> Smalltalk current removeModule: 'NewModule'
> Smalltalk current modules

Done.

Smalltalk implements addPackage:, removePackage:, renamePackage:to:

...and privately createPackage: and createPackage:properties:

Also these should evaluate to true:

"All current packages"
Smalltalk current packages size = 8

"All classes in the package of class Object (Kernel)"
Object package classes size = 35


> Add support in the chunk format for describing the Modules (requires and
> comment to start with).

Support is in both st and js file formats! In st the package is defined
in first chunk and includes a literal Dictionary of the properties. In
js file we do the same, but there we use javascript object notation.

Also added #dependencies (I think it is better than "requires"), forgot
adding #comment, but it is trivially done!

> Add UI parts to set and edit dependencies for
> Modules and add/edit a comment for a Module. More properties come later.

Not yet done.


> Hopefully after this step we can actually describe our Modules and work
> with them in the IDE, and not loose anything if we commit/reload. But of
> course, no working mechanism for dependencies yet...

Indeed, which is the next step. I do have a sketch on how it will
operate though. :)

regards, Göran

PS. The above stuff is in my repo - probably not yet merged into the
official Amber repo.
Reply | Threaded
Open this post in threaded view
|

Re: Almost time for step 3 (Re: Modules - plan for the rest!)

Bernat Romagosa
Great work Göran! I'm waiting so eagerly for dependencies to be implemented! :)

2011/10/19 Göran Krampe <[hidden email]>
Hey!

On 09/09/2011 11:07 AM, Göran Krampe wrote:
Now the fun starts:


Step Two - shaping up the model
===============================
Add "Rename module" and "Delete module" buttons in browser.

Done. Although they are now called Packages and the buttons are "Rename" and "Remove".

Change "category" to "module" in the UI and in class definitions and
templates. Yes, we still keep the old class creation methods too, in
order to ease porting efforts.

Done. Again, called "package", not module.

Make the meta protocol around Modules complete, thus make for example
the following work:
"Finding Module"
Smalltalk current moduleAt: 'Kernel' ifAbsent:[]
Smalltalk current moduleAt: 'Kernel'

Done.

All evaluate to true:

(Smalltalk current packageAt: 'Kernel' ifAbsent:[]) class == Package

(Smalltalk current packageAt: 'Kernel') == Object package


"Creating, removing, listing etc"
Smalltalk current addModule: 'NewModule'
Smalltalk current removeModule: 'NewModule'
Smalltalk current modules

Done.

Smalltalk implements addPackage:, removePackage:, renamePackage:to:

...and privately createPackage: and createPackage:properties:

Also these should evaluate to true:

"All current packages"
Smalltalk current packages size = 8

"All classes in the package of class Object (Kernel)"
Object package classes size = 35


Add support in the chunk format for describing the Modules (requires and
comment to start with).

Support is in both st and js file formats! In st the package is defined in first chunk and includes a literal Dictionary of the properties. In js file we do the same, but there we use javascript object notation.

Also added #dependencies (I think it is better than "requires"), forgot adding #comment, but it is trivially done!

Add UI parts to set and edit dependencies for
Modules and add/edit a comment for a Module. More properties come later.

Not yet done.


Hopefully after this step we can actually describe our Modules and work
with them in the IDE, and not loose anything if we commit/reload. But of
course, no working mechanism for dependencies yet...

Indeed, which is the next step. I do have a sketch on how it will operate though. :)

regards, Göran

PS. The above stuff is in my repo - probably not yet merged into the official Amber repo.



--
Bernat Romagosa.
Reply | Threaded
Open this post in threaded view
|

Re: Almost time for step 3 (Re: Modules - plan for the rest!)

laurent laffont
In reply to this post by gokr
Hi Göran,

thanks a lot for all your work.

I also need to specify different commit paths per package. I've written an implementation: https://github.com/NicolasPetton/amber/pull/79  (May be it's not a good idea to have this in Package and instead use a map in Browser/IDE - feedback appreciated)

Laurent. 


2011/10/19 Göran Krampe <[hidden email]>
Hey!

On 09/09/2011 11:07 AM, Göran Krampe wrote:
Now the fun starts:


Step Two - shaping up the model
===============================
Add "Rename module" and "Delete module" buttons in browser.

Done. Although they are now called Packages and the buttons are "Rename" and "Remove".

Change "category" to "module" in the UI and in class definitions and
templates. Yes, we still keep the old class creation methods too, in
order to ease porting efforts.

Done. Again, called "package", not module.

Make the meta protocol around Modules complete, thus make for example
the following work:
"Finding Module"
Smalltalk current moduleAt: 'Kernel' ifAbsent:[]
Smalltalk current moduleAt: 'Kernel'

Done.

All evaluate to true:

(Smalltalk current packageAt: 'Kernel' ifAbsent:[]) class == Package

(Smalltalk current packageAt: 'Kernel') == Object package


"Creating, removing, listing etc"
Smalltalk current addModule: 'NewModule'
Smalltalk current removeModule: 'NewModule'
Smalltalk current modules

Done.

Smalltalk implements addPackage:, removePackage:, renamePackage:to:

...and privately createPackage: and createPackage:properties:

Also these should evaluate to true:

"All current packages"
Smalltalk current packages size = 8

"All classes in the package of class Object (Kernel)"
Object package classes size = 35


Add support in the chunk format for describing the Modules (requires and
comment to start with).

Support is in both st and js file formats! In st the package is defined in first chunk and includes a literal Dictionary of the properties. In js file we do the same, but there we use javascript object notation.

Also added #dependencies (I think it is better than "requires"), forgot adding #comment, but it is trivially done!

Add UI parts to set and edit dependencies for
Modules and add/edit a comment for a Module. More properties come later.

Not yet done.


Hopefully after this step we can actually describe our Modules and work
with them in the IDE, and not loose anything if we commit/reload. But of
course, no working mechanism for dependencies yet...

Indeed, which is the next step. I do have a sketch on how it will operate though. :)

regards, Göran

PS. The above stuff is in my repo - probably not yet merged into the official Amber repo.