Olive.jl icon indicating copy to clipboard operation
Olive.jl copied to clipboard

0.1.x

Open emmaccode opened this issue 3 years ago • 52 comments

This is meant to be labeled Release ... I digress. 0.1.x will demonstrate basic functionality of Olive. With this will also come a few choice extensions and way to customize such things. As of right now, here is a list of things we need to get there...

  • More cell controls; right now there is new, evaluate, and delete -- new needs to be fixed and I need to work a better append system into toolips session.
  • Settings overhaul. Many settings will be stored inside of the Project.toml file, and I need to create a loader/saver for that and have such things load into the OliveCore appropriately on startup.
  • I would like to be able to add two windows.
  • There needs to be an expansion of tabs.
  • The start/create functions all need to be worked appropriately to serve things correctly.
  • Custom (UI) directories for home, wd, and things of that nature.
  • The file cells for the files you are working on can go in the top left of the top-bar.
  • A more luxurious interface for working with components of a topbar.
  • Syntax highlighting (it's a nightmare)
  • Completion of IPyRW (this is really close, read is essentially done I just need to mostly just test it and add write -- the easier of the two. Another thing that might be needed is to
  • Pkg/environment cells -- both controls for using ] much like in the REPL and controls for a larger cell that controls the environment.
  • The file menu
  • Build function for Cell{:dir}, which will make cells for a given directory and then be able to set the children along with having a bumper to go up. All the while this is of course.
  • Settings panel
  • Progress

This is a lot, but in the grand scope of things isn't too much work -- there are still a lot of small things.

emmaccode avatar Feb 13 '23 20:02 emmaccode

updated list ...
  • complete setup and tutorial, all that jazz
  • complete other cell bindings
  • complete filemenu
  • create olive-settings menu
  • create TOML settings loader
  • SYNTAX HIGHLIGHTING
  • put project tabs into topbar, allowing for more than window to be opened at a thyme. If we would like to have two windows at once be possible, we will need to instead put each cell into a window with the project name, and pass the project name in the build functions. For now, this is what we have.... This might be a change going forward, as it is not on the target list for 0.1.0
  • more animations, polish
  • new build function for Olive home directory
  • DOCS
  • dir build function
  • new files
  • [IPy](https://github.com/ChifiSource/IPy.jl) save (should be pretty easy)

emmaccode avatar Feb 27 '23 06:02 emmaccode

  • ~~complete setup and tutorial, all that jazz~~
  • ~~complete other cell bindings~~ - note, stilll need save bindings.
  • ~~complete filemenu~~, somewhat complete, need to build alternate Cell{:dir} build function that takes strings for sub-directories (it only works for one directory level)
  • create olive-settings menu
  • create TOML settings loader
  • SYNTAX HIGHLIGHTING
  • put project tabs into topbar, allowing for more than window to be opened at a thyme. If we would like to have two windows at once be possible, we will need to instead put each cell into a window with the project name, and pass the project name in the build functions. For now, this is what we have.... This might be a change going forward, as it is not on the target list for 0.1.0 more animations, polish
  • new build function for Olive home directory
  • DOCS
  • ~~dir build function~~
  • ~~IPy save (should be pretty easy~~ This one was actually done when I wrote this -- I didn't even realize I had already wrote it.

emmaccode avatar Mar 03 '23 01:03 emmaccode

So...

  • settings menu
  • tabs
  • syntax highlighter
  • TOML settings loader
  • TOML project loader
  • custom build function for olive home
  • for setup, we need to create a source dir file that will store the home directory if it is not at the standard homedir
  • bring image data out of memory and into source dir files
  • multi-window management (partial implementation already done)
  • finish cell design (partial implementation, once again)
  • finish dir build function with new arguments for sub-directories of sub-directories (i'm crazy)
  • fix cell as string bug ...
  • fix cell rebuild bug (actions not being binded on rebuilt cells, odd considering it happens with added cells. E.g. This does not work when we come back from a Pkg repl cell)
  • finish Pkg, other REPL cells
  • dep cells at the top of files, letting one know both environment and dependencies of project.

emmaccode avatar Mar 03 '23 01:03 emmaccode

oh, and

  • all style! calls need to be exported to the olivesheet, in order to make such styles a lot more easily mutable with the Styles extension, or otherwise :)

emmaccode avatar Mar 03 '23 01:03 emmaccode

  • ~~settings menu~~
  • ~~tabs~~ (not fully implemented)
  • syntax highlighter
  • TOML settings loader
  • TOML project loader
  • custom build function for olive home
  • or setup, we need to create a source dir file that will store the home directory if it is not at the standard homedir
  • bring image data out of memory and into source dir files
  • multi-window management (partial implementation already done)
  • ~~finish cell design (partial implementation, once again)~~ They're beautiful!
  • ~~finish dir build function with new arguments for sub-directories of sub-directories (i'm crazy)~~ actually I used a better technique with Directory{:subdir} In your face past emmy!
  • ~~fix cell as string bug ...~~ BOOM
  • ~~fix cell rebuild bug (actions not being binded on rebuilt cells, odd considering it happens with added cells. E.g. This does not work when we come back from a Pkg repl cell)~~ BOOM
  • finish Pkg, other REPL cells
  • dep cells at the top of files, letting one know both environment and dependencies of project.

emmaccode avatar Mar 04 '23 23:03 emmaccode

  • syntax highlighter
  • TOML settings loader
  • TOML project loader
  • custom build function for olive home
  • for setup, we need to create a source dir file that will store the home directory if it is not at the standard homedir
  • bring image data out of memory and into source dir files
  • multi-window management (partial implementation already done)
  • finish Pkg, other REPL cells
  • dep cells at the top of files, letting one know both environment and dependencies of project.
  • tab menus
  • dir file options

emmaccode avatar Mar 04 '23 23:03 emmaccode

  • docs
  • styles in stylesheet

This is about it, but of course there are more smaller things which I will do. All in all, we're getting real close to a release on this :)

emmaccode avatar Mar 04 '23 23:03 emmaccode

oh,

  • dir permissions
  • authentication keys

those are smaller easier things, not worried about them as much. ^.^ I think that should be about it...

emmaccode avatar Mar 05 '23 05:03 emmaccode

  • syntax highlighter
  • ~~TOML settings loader~~
  • TOML project loader
  • custom build function for olive home
  • ~~for setup, we need to create a source dir file that will store the home directory if it is not at the standard homedir~~
  • bring image data out of memory and into source dir files
  • ~~multi-window management (partial implementation already done)~~
  • finish Pkg, other REPL cells
  • dep cells at the top of files, letting one know both environment and dependencies of project.
  • tab menus
  • dir file options partial implementation
  • dir permissions
  • authentication keys

emmaccode avatar Mar 06 '23 00:03 emmaccode

  • syntax highlighter
  • TOML project loader
  • custom build function for olive home
  • finish Pkg, other REPL cells
  • dep cells at the top of files, letting one know both environment and dependencies of project.
  • tab menus
  • dir file options partial implementation
  • dir permissions
  • authentication keys

emmaccode avatar Mar 06 '23 00:03 emmaccode

We're so close... I will be registering Olive 0.0.9 here in (probably) less than a week, really depends on how challenging syntax highlighting ends up being with my next attempt. For some background, I have tried like 4 different techniques for this, some of them better than others -- some just complicated things a lot more than I liked. That being said, this is not too far off.

emmaccode avatar Mar 06 '23 00:03 emmaccode

  • syntax highlighter
  • TOML project loader
  • custom build function for olive home
  • finish Pkg, other REPL cells
  • dep**/module** cells at the top of files, letting one know both environment and dependencies of project.
  • tab menus
  • ~~dir file options~~
  • dir permissions
  • authentication keys

emmaccode avatar Mar 06 '23 07:03 emmaccode

  • IPy also needs read_jlcells completed -- these are post-save IPy cells which preserve output. This will be pretty easy to do, so no worries :)

emmaccode avatar Mar 06 '23 07:03 emmaccode

  • ~~IPy also needs read_jlcells completed -- these are post-save IPy cells which preserve output. This will be pretty easy to do, so no worries :)~~ Did this last night 🥲😮‍💨

emmaccode avatar Mar 06 '23 18:03 emmaccode

  • syntax highlighter
  • TOML project loader
  • custom build function for olive home
  • finish Pkg, other REPL cells
  • dep**/module** cells at the top of files, letting one know both environment and dependencies of project.
  • ~~tab menus~~ missing save as and run all
  • ~~dir file options~~
  • dir permissions
  • authentication keys

emmaccode avatar Mar 06 '23 18:03 emmaccode

  • ~~syntax highlighter~~

Given the design of the new syntax highlighter, we can just use the regular cell input text! This means that parseerrors are going to soon be a thing of the past, as well -- so long as the file actually parses correctly! Yay! Aside from this, the highlighter works pretty flawlessly, so that's great news!

  • TOML project loader
  • custom build function for olive home
  • finish Pkg, other REPL cells
  • dep**/module** cells at the top of files, letting one know both environment and dependencies of project.
  • tab menus missing save as and run all
  • dir permissions
  • authentication keys

emmaccode avatar Mar 07 '23 07:03 emmaccode

  • TOML project loader
  • custom build function for olive home
  • finish Pkg, other REPL cells partial implementation -- semi-broken help cells for some reason (they break the entire project), no commands yet for the Pkg cells -- they just exist. Still need to add shell and Olive cells. Also need to make shell cells only activate for those with permissions to use them... This will go along with generally creating access and all of that, something I will be diving into soon.
  • dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with module in them without getting errors :)
  • tab menus missing save as and run all - this is what I will probably be doing next.
  • dir permissions
  • authentication keys
  • on file save, I need like a olive_save(uri::String, ::Cell{:jl}, cells::Vector{Cell{<:Any}}) function... The reason why is pretty obvious; different save functions for different types of files. This will also be another easy implementation, just need to do it!

emmaccode avatar Mar 07 '23 07:03 emmaccode

  • update Olive display funcs

emmaccode avatar Mar 07 '23 07:03 emmaccode

oh!! also

  • new_cell in project tab... Should append a new cell creator that scans for methods that exist to build cells inside of such a context.

emmaccode avatar Mar 07 '23 07:03 emmaccode

  • TOML project loader
  • custom build function for olive home
  • ~~finish Pkg, other REPL cells partial implementation -- semi-broken help cells for some reason (they break the entire project), no commands yet for the Pkg cells -- they just exist. Still need to add shell and Olive cells. Also need to make shell cells only activate for those with permissions to use them... This will go along with generally creating access and all of that, something I will be diving into soon.~~
  • dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with module in them without getting errors :)
  • tab menus missing save as and run all - this is what I will probably be doing next.
  • dir permissions
  • authentication keys
  • on file save, I need like a olive_save(uri::String, ::Cell{:jl}, cells::Vector{Cell{<:Any}}) function... The reason why is pretty obvious; different save functions for different types of files. This will also be another easy implementation, just need to do it!
  • update Olive display funcs

I got a lot more than just this done today. Three big features are missing for 0.0.9 release;

  • Directory permissions/auth keys (quick and easy to do don't worry)
  • new cell creator
  • save as
  • run all control
  • namebox in setup
  • icons/olive defaults in setup

other than this, any other improvements can wait to make it into the final version.

emmaccode avatar Mar 08 '23 02:03 emmaccode

this is in addition to expanding with olive_save, an update to olive display, and updating Pkg cells.

All in all, we are looking at less than a week, that is for certain.

emmaccode avatar Mar 08 '23 02:03 emmaccode

Also wanted to note ^-^ IPy is in the process of registration :)

emmaccode avatar Mar 08 '23 02:03 emmaccode

  • ~~on file save, I need like a olive_save(uri::String, ::Cell{:jl}, cells::Vector{Cell{<:Any}}) function... The reason why is pretty obvious; different save functions for different types of files. This will also be another easy implementation, just need to do it!~~

another one knocked out :)

emmaccode avatar Mar 08 '23 03:03 emmaccode

  • TOML project loader
  • custom build function for olive home
  • finish Pkg, other REPL cells partial implementation -- still need olive and shell cells :)
  • dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with module in them without getting errors :)
  • tab menus missing save as and ~~run all - this is what I will probably be doing next.~~
  • dir permissions
  • authentication keys
  • update Olive display funcs
  • Directory permissions/auth keys (quick and easy to do don't worry)
  • ~~new cell creator~~
  • save as
  • ~~run all control~~
  • namebox in setup
  • icons/olive defaults in setup

emmaccode avatar Mar 08 '23 07:03 emmaccode

we're so close! Olive looks awesome!!

emmaccode avatar Mar 08 '23 07:03 emmaccode

  • TOML project loader
  • ~~custom build function for olive home~~
  • finish Pkg, other REPL cells partial implementation -- still need olive and shell cells :)
  • dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with module in them without getting errors :)
  • tab menus missing save as (needs to open project explorer dir :o)
  • dir permissions
  • authentication keys
  • update Olive display funcs
  • Directory permissions/auth keys (quick and easy to do don't worry)
  • new cell creator
  • save as
  • run all control
  • namebox in setup
  • icons/olive defaults in setup

emmaccode avatar Mar 08 '23 07:03 emmaccode

  • ~~TOML project loader~~
  • finish Pkg, other REPL cells partial implementation -- still need olive and shell cells :)
  • dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with module in them without getting errors :)
  • tab menus missing save as (needs to open project explorer dir :o)
  • update Olive display funcs
  • Directory permissions/auth keys (quick and easy to do don't worry)
  • ~~new cell creator~~
  • save as
  • ~~run all control~~
  • namebox in setup
  • icons/olive defaults in setup

emmaccode avatar Mar 09 '23 01:03 emmaccode

I am still going, just a lot of actual OLIVE work is mainly focused on me now building my own syntax highlighter. I really had to build my own in order for it to work in this context. There is still a lot to do, I am going to go ahead and get this to 0.0.8 standards, release it, then I will be opening a new issue for each upgrade I plan to make.

emmaccode avatar Mar 11 '23 23:03 emmaccode

I'm going to open a separate issue for the 0.0.8 release viva 0.1.x!

emmaccode avatar Mar 11 '23 23:03 emmaccode

  • finish Pkg, other REPL cells partial implementation -- still need olive and shell cells :) dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with module in them without getting errors :)
  • tab menus missing save as (needs to open project explorer dir :o)
  • update Olive display funcs
  • ~~Directory permissions/auth keys (quick and easy to do don't worry)~~
  • save as
  • ~~namebox in setup~~
  • icons/olive defaults in setup

emmaccode avatar Mar 13 '23 10:03 emmaccode