Skip to content

This pull is to fix most of the broken API code, as well as add some#92

Closed
jfrancis42 wants to merge 3 commits into
js8call:mainfrom
jfrancis42:api-cleanup-and-enhancement
Closed

This pull is to fix most of the broken API code, as well as add some#92
jfrancis42 wants to merge 3 commits into
js8call:mainfrom
jfrancis42:api-cleanup-and-enhancement

Conversation

@jfrancis42

Copy link
Copy Markdown

This pull is to fix most of the broken API code, as well as add some new useful API endpoints. Two of the API calls could only be partially fixed, as I don't have the necessary skills to make the needed changes to the JS8 GUI (as noted in the comments). One (raise window) seems to not work at all on Linux, but I can't rule out whether or not it works on other OSes, so I left it as-is. Two API endpoints disappeared in the latest code, so I added them back, as both are critical for API usage (also noted in comments). There are no docs yet, per se, though there are comments for each API endpoint. I hope to put together at least some preliminary docs later in the coming week. All changes build and run correctly on Linux. I have no way to test for Mac or Windows, but given the nature of the changes, I expect no issues. This work is not 100% done (there is a todo list in the code comments), but what is here is complete and works correctly, and all previously broken API calls have been fixed (though two of them still don't update the GUI properly, as noted above). I don't believe there are any breaking changes, though I've added a SYSTEM.VERSION endpoint so future API users can test what version of JS8 is running and adjust API calls as necessary.

new useful API endpoints. Two of the API calls could only be partially
fixed, as I don't have the necessary skills to make the needed changes
to the JS8 GUI (as noted in the comments). One (raise window) seems to
not work at all on Linux, but I can't rule out whether or not it works
on other OSes, so I left it as-is. Two API endpoints disappeared in
the latest code, so I added them back, as both are critical for API
usage (also noted in comments). There are no docs yet, per se, though
there are comments for each API endpoint. I hope to put together at
least some preliminary docs later in the coming week. All changes
build and run correctly on Linux. I have no way to test for Mac or
Windows, but given the nature of the changes, I expect no issues. This
work is not 100% done (there is a todo list in the code comments), but
what is here is complete and works correctly, and all previously
broken API calls have been fixed (though two of them still don't
update the GUI properly, as noted above). I don't believe there are
any breaking changes, though I've added a SYSTEM.VERSION endpoint so
future API users can test what version of JS8 is running and adjust
API calls as necessary.
@wmiler

wmiler commented Oct 19, 2025

Copy link
Copy Markdown

@Chris-AC9KH Can you cherry pick this into your 2.3.2 branch please. The mode.set_speed is already fixed in PR #72 that is already in your 2.3.2.

@Chris-AC9KH

Copy link
Copy Markdown
Contributor

@wmiler I'll cherry-pick this into my new dev/2.4 branch, which was created from rc/2.3.2

Just to compare the code where I can reset HEAD if it's duplicate work, without affecting the PR branch. Then I'll make a decision as to whether or not to include in rc/2.3.2, which will affect the PR.

@jfrancis42

Copy link
Copy Markdown
Author

Please stand by before dropping this in. I'm most of the way through writing API docs, and have found a couple of errors and misspellings in the code along the way that I've fixed. Give me 24 hours, and I'll have both the API fixes/upgrades and the docs to go with them. Almost done. Jeff/N0GQ

@Chris-AC9KH

Copy link
Copy Markdown
Contributor

@wmiler this fix has already been implemented in the rc/2.3.2 branch that is waiting to be merged(although coded slightly different, done as a boolean in rc/2.3.2).

So I'm leaving as-is for right now.

@Chris-AC9KH

Copy link
Copy Markdown
Contributor

Please stand by before dropping this in. I'm most of the way through writing API docs, and have found a couple of errors and misspellings in the code along the way that I've fixed. Give me 24 hours, and I'll have both the API fixes/upgrades and the docs to go with them. Almost done. Jeff/N0GQ

@jfrancis42 Jeff, we've had to do things a bit differently here because JS8Call main is so far behind development HEAD. This makes it difficult for developers to submit PR's on a codebase that is basically out-of-date. This is where current development is at and I submitted a PR to try to get JS8Call main up-to-date with current development. But changes to 414 files and 11,222 lines of code affected is quite daunting for the project maintainer.

https://github.com/js8call/js8call/pull/91/files

So we'll see what Jordan does with this? Your PR can be merged, but there is conflicts to resolve, which will require a rebase if JS8Call main catches up to active development HEAD.

@jfrancis42

Copy link
Copy Markdown
Author

I'd be happy to sit on my PR until there's a little more sanity in the code base. There's no rush. The longer we wait, the more I can tidy things up and build good docs. For example, some API calls return values in value, some return values in params, and some don't bother to even acknowledge that they were received. Adding standardized success/fail returns would also be worth the effort (as there are definitely calls that can fail, depending on the configuration, state, etc), and there's currently no standardized way to indicate this to the user. IMHO, we should do all of the breaking changes at once, rather than spread them out over a year, while the number of API users is still relatively low. In the long run, we'll be glad we did it early.

@jfrancis42

Copy link
Copy Markdown
Author

I just added the first draft of API docs. I'll continue to work on both the docs and some serious cleanup in the API itself until it's time to integrate.

@Trippnology

Copy link
Copy Markdown

The API bugs have been outstanding for a number of years now, so I am very excited to see them finally get resolved!

There was extensive discussion around this at the time, in Bitbucket issues, which all now seem to have been deleted. :(

There is some minimal API documentation in the repo of my JS lib: https://bitbucket.org/Trippnology/lib-js8call/src/master/js8call-json-api-docs.md

Really pleased to see some movement on this after so long! 👍

@jsherer

jsherer commented Dec 12, 2025

Copy link
Copy Markdown
Contributor

Hey there! Active development is moving to https://github.com/JS8Call-improved/JS8Call-improved if you would like to re-raise there! Thanks for your help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants