aplteam / cider Goto Github PK
View Code? Open in Web Editor NEWCider is a Project Manager for Dyalog APL
License: MIT License
Cider is a Project Manager for Dyalog APL
License: MIT License
Don't know whether this is documented and I missed it, but
]CIDER.OpenProject \g\ParquetDotNet
* Command Execution Failed: VALUE ERROR: Undefined name: Tatin
goes away if I first do
]TATIN.Version
┌─────┬───────────┬──────────┐
│Tatin│0.90.0+1485│2023-02-27│
└─────┴───────────┴──────────┘
I would expect not to have to call a different UCMD before being able to use Cider
Releases from 23 onwards are missing a zip of the folder to copy into MyUCMDs
The question should make it clear that the question is about which of my open projects to add vikings to. For example:
"Which open project should vikings be added to?"
Currently:
]cider.addTatinDependencies vikings
--- Select a Cider project: ----------
Also, after asking this, the subsequent question
"christ: add dependencies to tatin-dependencies/ ? (Y/n)"
... seems unnecessary ...
If you try to create a project from a namespace which already contains some code, CreateProject fails at the very last step. It should instead write the contents of the namespace to source files, IMHO.
]CIDER.CreateProject c:\tmp\myproj myapp
"c:/tmp/myproj" does not exist yet - create? (Y/n) y
Project successfully created; open as well? (Y/n) y
Loading project from c:\tmp\myproj/
Checking parameters...
All fine
Bringing in the source code...
Target namespace "#.myapp" is not empty. Delete contents? (y/n) n
* Command Execution Failed: Cannot Link into non-empty namespace
This command really should exist
It would be nice if there was a way to have user command output no boxed since I usually have ]box on -fns=on
In particular why both Cider and Tatin have a "source" parameter, and why they might be different.
This concerns projects that are open. When the config file is changed via the ]Cider.ViewConfig -edit
command those changes should be reflected in #.<projectName>.CiderConfig.CIDER.*
When Cider is installed as a package it comes with a file cider.config.template
. This is used as a template when a new project is created.
When this file is edited in order to amend it to personal preferences this works. But when a new version is installed the amendments will be overwritten.
Therefore when any Cider command is executed that is related to (or depends on) its config file
Cider needs to check whether there is already a template in a user-specific location. If it does not exist yet it needs to copy over the template file. This way it happens only once.
When a project has a package loaded from a local server (rather than [tatin]
) and this package is then deleted from [local]
and published on [tatin]
instead, then it is not reported (let alone replaced) when the project is opened and the question "Report availability of later versions of installed Tatin packages?" is answered with a "Y".
Note that the version number might well be the same as before, but it still needs to be reported or (even better) replaced after confirmation.
Currently the list is not ordered in any useful way.
At least under some circumstances
When the user attempts to open a project that has already been opened then this might be by mistake or because she wants to re-open the project.
Therefore Cider should state that the project is already opened and ask whether it should be re-opened.
I got the following issue
]cd
to some project folder]CIDER.CreateProject
cider.config
Result:
Invalid LINK parameter: info_url
CheckParameters[9] ('Invalid LINK parameter',((1<+/~bool)/'s'),': ',{0=≢⍵:'' ⋄ ⊃{⍺,',',⍵}/⍵}(~bool)/list2)Assert∧/bool
Workaround:
GetValidCiderParams
sets 'project_url'
as a valid param but ]CIDER.CreateProject
creates a cider.config
with a key info_url
. Replace info_url
with project_url
in cider.config solves this issue.
Interpreter:
Version: 18.2.46765
Platform: Linux-64
Edition: Unicode/64
Cider:
Version: 0.23.6+367
Regards,
Karl
githubUsername
is required by Cider for making calls to APLGit2
that require the owner
of a project on GitHub.
However, if a project is hosted on GitHub then project_url
is supposed to point to it, and therefore Cider can establish the owner
from project_url
, ergo no need for the config parameter.
]cider.help
--- Select document to be viewed: ---------------------------------------------------------------------------------------
1. Cider-API-Reference
2. Cider-User-Guide
Select one or more items (q=quit, a=all) :2
* Command Execution Failed: * Command Execution Failed: The system cannot find the file specified
I created a dyadic, non-result-returning init function:
⎕VR'APLAutoHotKey.DevSetup'
∇ dir DevSetup config
[1] LoadHTML dir
[2] LoadKeymaps dir
[3] LoadSnippets dir
∇
According to the docs:
Such a function may be niladic, monadic, ambivalent or dyadic:
- A non-niladic function receives a namespace with the project configuration as right argument
- An ambivalent or dyadic function receives a path as left argument: this is the home folder of the project
Instead, I got an error:
Executing the project's initialising function "DevSetup"...
┌───────────────────────────────────────┐
│Invalid function valence: is ambivalent│
└───────────────────────────────────────┘
Currently one must either specify aan [alias]
or [?]
for getting a list. with all aliases defined.
Suggestions: Cider should also accept [foo*]
That should be treated as "the project that starts with foo
.
... then that should not become the default for a missing project name.
... then the communication is inconsistent: the user is asked whether she wants to fix the problem with "N" meaning "Abandon all changes" but when "N" is entered she is asked again:
Invalid package name
Would you like to try to fix the problem in the editor? (n=abandon changes) (Y/n) n
"Cider is capable of collaborating with the Git package but does not rely on it."
should this link to https://github.com/aplteam/APLGit2 ?
Some low-level functions Assert
an error with a particular error message which is recognized by ⍷
in the calling function.
Instead a dedicated error number should be used.
It was thought to be not required, but multiple test cases call the user command in order to create a new project.
It does not make a difference whether a path, an alias or ?
is specified.
With a clean MyUCMDs
folder in 18.2, even after restarting Dyalog rather than just ]UReset
]TATIN.Version
Tatin 0.90.0+1485 2023-02-27
]TATIN.InstallPackages [Tatin]Cider [MyUCMDs]
Sure you want to install
Cider
into [MyUCMDs]Cider ? (y/n) y
Attempting to install https://tatin.dev/aplteam-Cider-0.23.2...
Establish dependencies...
Dependency aplteam-APLTreeUtils2-1.1.3 identified...
Dependency aplteam-CommTools-1.2.3 identified...
Dependency aplteam-Tester2-3.3.0 identified...
Dependency aplteam-IniFiles-5.0.3 identified...
Scanning 2 registries for aplteam-CommTools-1.2.2...
found in https://tatin.dev/
Dependency aplteam-CodeCoverage-0.9.4 identified...
Dependency aplteam-FilesAndDirs-5.3.4 identified...
Dependency aplteam-OS-3.0.1 identified...
Scanning 2 registries for aplteam-APLTreeUtils2-1.1.1...
found in https://tatin.dev/
Scanning 2 registries for aplteam-FilesAndDirs-5.3.3...
found in https://tatin.dev/
8 dependencies identified
Fetching from Tatin package cache...
Add aplteam-Cider-0.23.2 to dependency file...
Fetching from Tatin package cache...
Fetching from Tatin package cache...
Fetching from Tatin package cache...
Fetching from Tatin package cache...
Fetching from Tatin package cache...
Fetching from Tatin package cache...
Fetching from Tatin package cache...
Saving build list...
aplteam-Cider-0.23.2
]ureset
201 commands reloaded
]CIDER.Version
* Command Execution Failed: VALUE ERROR: Undefined name: Cider
After such a change the workspace should be updated.
If that is for technical reasons not possible then at the very least Cider should tell the user about it.
Currently ]CloseProject
requires a namespace to be passed as an argument (if any).
Instead it should also accept an alias:
]Cider.CloseProject [cider]
The error reported is caused by Cider looking for a template file in the wrong place. This only affects new users as previous versions of Cider created the file for the user correctly. To replicate you must first remove the user settings and then try to open a project.
]cider.openProject .
Loading project from .
Checking parameters...
All fine
Bringing in the source code...
Code established, "watch" is "ns"
* Command Execution Failed: FILE ACCESS ERROR: C:/Users/e9gil/Documents/MyUCMDs/Cider/.cider/config.json: Invalid file or
directory ("The system cannot find the path specified.")
If you provide an invalid folder name, AddAlias hits a value error on "p" trying to display the error message:
⎕SE.Cider.AddAlias 'clocks' 'c:\tmp\clockproj' ⍝ Reverse argument order
VALUE ERROR: Undefined name: p
AddAlias[16] (1 parms.batch)p'Could not find "',folder,'"'
∧
]cider.version
0.35.0+410
It now offers to (re)-load all dependencies, which is not tested at all.
This would allow silent test cases.
Editing the aliases with
]Cider.ListAliases -edit
and then deleting one has an issue when one of the paths has two aliases assigned: Cider shows the list again, with a comment added, but when that edit window is closed without another change that is accepted.
Instead Cider should insist on solving the problem.
Also, the consistency check should be performed in any case, even when the user did not change anything.
]cider.version fails with a value error if Expose->Root properties is not ticked in Dyalog
]cider.version
Command Execution Failed: VALUE ERROR
]cider.version
Cider 0.4.0+109 2021-10-13
Try to get the aplversion this way instead:
'.' ⎕wg 'aplversion'
If a project with NuGet dependencies is opened, and the NuGet interface is not available for whatever reason, OpenProject needs to tell the user that dependencies could not be established.
The idea is to act as if the projects are running as packages and do development work on multiple of them by loading them into each other.
For these reasons I suggest having this:
dependencies: {
tatin: "packages",
dado: "utilities",
},
dependencies_dev: {
tatin: "packages_dev=TestCases",
},
Though the user should be allowed to publish to any (local) path, URLs should be rejected in case they are not (yet) known.
I unzipped Cider-0.4.1.zip into my Documents/MyUcmds
I had not created a Cider or a Cider/.cider folder there yet because I did not know that I should from the Installation instructions. I have now done so.
But, I do not have a config.json file there.
filename ⎕NCOPY GetMyUCMDsFolder,'/Cider/.cider/config.json'
)si
⎕SE._Cider.Cider.GetCiderConfigFilename[17]*
⎕SE._Cider.Cider.GetFunctionNameFromCiderConfigFile[2]
⎕SE._Cider.Cider.ExecUserFunction[1]
⎕SE._Cider.Cider.OpenProject[72]
⎕SE.input.c.Cider_uc.Run[33]
⍎
⎕SE.SALTUtils.CallUserCode[3]
⎕SE.UCMD[2]
The test Test_UC_045
tries to add a second package to an already established one but fails.
With the command:
]cider.createProject . MyProject
I expect the project to be created in the current dir, instead it is created in the parent folder.
Perhaps change the line below to:
folder←⊃1 ⎕NPARTS './'
Cider/APLSource/Cider_uc.dyalog
Line 530 in 35552f8
Currently when no argument is specified the user will be asked whether she wants to close all currently opened projects.
Instead a list with all opened projects should be presented, including the option to close all of them.
... because there is no result returned; should be a success message.
Passing a parameter space to OpenProject
with amended stuff works for variables but not for projectSpace
which is a reference (⎕NL 9
) rather than a variable.
Cider assumes that both are addressed relativ to the project, but it does not check whether the user entered an absolute path, starting with #
.
It should check that, and never allow it.
I was going to report this as FILE NAME ERROR trying to update Cider using Tatin client
]TATIN.InstallPackages Cider [MyUCMDs]
Sure you want to install
Cider
into [MyUCMDs]Cider ? (y/n) y
Scanning 2 registries for Cider...
found in https://tatin.dev/
Attempting to install https://tatin.dev/aplteam-Cider-0.26.1...
Establish dependencies...
5 dependencies identified
Fetching from https://tatin.dev/...
Save package in cache...
Unzipping C:/Users/rpark/AppData/Local/Temp/rpark_102607671.zip...
Add aplteam-Cider-0.26.1 to dependency file...
* Command Execution Failed: FILE NAME ERROR
turns out it's:
FILE NAME ERROR
InstallPackages[79] CheckForInvalidVersion qdmx
∧
dmx
EM FILE NAME ERROR
Message C:\Users\rpark\Documents\MyUCMDs\Cider\apl-dependencies.tmp: Unable to create file
OSError 1 80 The file exists.
So I could workaround but simply deleting the [MyUCMDs]/Cider
folder myself
It was requested that in such a case Cider should refuse to do that.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.