Giter VIP home page Giter VIP logo

cider's People

Contributors

alexander-block avatar aplteam avatar mkromberg avatar rikedyp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cider's Issues

Requires Tatin to intialise before opening project

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

Confusing Prompt from AddTatinDependencies

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: ----------

  1. #.vikings c:/tmp/vikings
  2. #.christ c:/tmp/christ

Also, after asking this, the subsequent question

"christ: add dependencies to tatin-dependencies/ ? (Y/n)"

... seems unnecessary ...

OpenProject fails on non-empty namespace

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

Problem with user config files

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.

Checking for "better" dependencies does only half the job

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.

Opening an already opened project

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.

  • If not an error should be thrown
  • If yes the project should be erased from the workspace and then opened again

Unable to open CIDER project

I got the following issue

  1. ]cd to some project folder
  2. ]CIDER.CreateProject
    a. Accept default cider.config
  3. Open project with `{}⎕SE.UCMD'CIDER.OpenProject .'

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

Remove githubUsername from the Cider config file

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.

Cannot access Cider help from UCMD

      ]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

dyadic init function errors on OpenProject

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│ 
 └───────────────────────────────────────┘ 

Enhance the alias syntax

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.

  • If there is just a single project it should be taken
  • If there are multiple fitting projects the user should be presented the list
  • If no project fits an error should be thrown

VALUE ERROR: Undefined name: Cider when using Cider

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

]CloseProject should accept an alias

Currently ]CloseProject requires a namespace to be passed as an argument (if any).

Instead it should also accept an alias:

]Cider.CloseProject [cider]

OpenProject reports FILE ACCESS ERROR when it fails to find the global user setting file

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.")

Value Error in AddAlias

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

Editing aliases has an issue

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.

Report inability to load NuGet dependencies

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.

Rename and enhance the "tatinFolder" parameter

  1. "tatinFolder" binds Cider too closely to Tatin. It should be open for other dependencies as well
  2. The syntax for telling principal dependencies from development dependencies is too complex.

For these reasons I suggest having this:

dependencies: {
    tatin: "packages",
    dado: "utilities",
},
dependencies_dev: {
    tatin: "packages_dev=TestCases",
},

Cider issues a file access error

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]

]CloseProject without argument should present a list

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.

WIBNI don't have to delete Cider to update 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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.