-
-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(developer): add user interface for kmc copy
to TIKE
#13076
base: fix/developer/13072-make-kmc-log-options-consistent
Are you sure you want to change the base?
feat(developer): add user interface for kmc copy
to TIKE
#13076
Conversation
Adds a new set of 'New Project' dialogs to allow authors to easily copy keyboards from local filesystem, Keyman Cloud (including a keyboard search web page, implemented in keymanapp/keyman.com#536), and directly from a GitHub URL. Adds related documentation. Fixes: #13073 Depends-on: keymanapp/keyman.com#536
|
||
Projects can also be cloned from the command line with [`kmc copy`](kmc). | ||
|
||
Only keyboard projects can be cloned from Keyman Cloud at this time via this |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens if the user tries to clone
- a legacy keyboard where the source isn't available?
- a multi-keyboard package?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good questions. The legacy keyboard would generate an error in the kmc-copy log, so the user would get feedback that way. An open source multi-keyboard package should copy fine -- the .kpj and .kps would get the new id, but the keyboards within would retain their original names. Would be worth a test for each of these, and so I'll give that a go.
developer/src/tike/project/Keyman.Developer.UI.Project.UfrmNewProject.dfm
Show resolved
Hide resolved
developer/src/tike/project/Keyman.Developer.UI.Project.UfrmCloneLocalProjectParameters.pas
Show resolved
Hide resolved
developer/src/tike/project/Keyman.Developer.UI.Project.UfrmCloneLocalProjectParameters.pas
Outdated
Show resolved
Hide resolved
developer/src/tike/project/Keyman.Developer.UI.Project.UfrmCloneGitHubProjectParameters.pas
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
developer/src/tike/compile/Keyman.Developer.System.KmcWrapper.pas
Outdated
Show resolved
Hide resolved
@dinakaranr thank you for running these tests. I have updated the user interface to clarify that lexical model IDs should match the pattern The test TEST_CLONE_CLOUD was dependent on keymanapp/keyman.com#536 being merged, and that has now been merged. Can you please re-test all given the changes that I have implemented? Thank you! @keymanapp-test-bot retest |
Co-authored-by: rc-swag <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Test ResultsI tested this issue with the attached "Keyman-18.0.178-alpha-test-13076" build(31/01/2025) on Windows 10. I'm sharing my observation here.
|
These messages had the following pattern
The important thing to note is 'This is not normally a problem'. Looking up the reference for the error message KM0B01B shows us:
|
Adds a new set of 'New Project' dialogs to allow authors to easily copy keyboards from local filesystem, Keyman Cloud (including a keyboard search web page, implemented in keymanapp/keyman.com#536), and directly from a GitHub URL. Adds related documentation.
Clone from local filesystem:
Clone from Keyman Cloud:
Clone from GitHub:
Fixes: #13073
Depends-on: keymanapp/keyman.com#536
User Testing
Please note that user test of TEST_CLONE_CLOUD is blocked until keymanapp/keyman.com#536 is merged.
For each of these tests, follow the steps to clone the project, using a new keyboard/lexical model id of your choice, and then make sure that the newly created project builds successfully.