Skip to content
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

Controller API Declarations blogpost #341

Merged
merged 1 commit into from
Aug 18, 2024

Conversation

JoergAtGithub
Copy link
Member

No description provided.

@daschuer
Copy link
Member

Thank you for the bog post. It looks good so far.
Can we ship the jsconfig.json file with Mixxx? Maybe we can auto generate it when loading a mapping?

@JoergAtGithub
Copy link
Member Author

Can we ship the jsconfig.json file with Mixxx? Maybe we can auto generate it when loading a mapping?

Shipping with Mixxx makes not much sense, because the paths are always different. Generating can work, but there might be conflicts if we do it automatic, because we put all scripts in the same directory, and jsconfig.json can only fit to one of them. If we would switch to one subdirectory per script project, we would solve this conflict.

@JoergAtGithub
Copy link
Member Author

Can we publish this?

Comment on lines +18 to +19
## How to use it?
Development of mappings and controller scripts is usually done in the subdirectory `controllers` of the [Mixxx Settings Directory](https://manual.mixxx.org/latest/chapters/appendix/settings_directory), while the common files (like `common-controller-scripts.js`) which comes with Mixxx, are store in the subdirectory `controllers` of Mixxx installation directory, or `./mixxx/res/controllers` if you built Mixxx yourself. This is also the location, where the TypeScript files with the declarations of the Mixxx controller API are stored. The LSP language server need to know the location of all of them. To tell the LSP server general settings and the locations of these files, you need to create a file with the name `jsconfig.json` placed next to your JavaScript controller script file, in the `controllers` directory in your `Mixxx Settings Directory`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is very technical and detailed while not being very relevant timely.
I think this belongs almost entirely somewhere on the wiki instead.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree here. Can we describe it in a wiki and just link it here?
We need a wiki entry anyway. Maybe also a Readme.txt in the controller folder?
How about installing a jsconfig.json.template file with a comment how to adjust and use it?

Copy link
Member Author

@JoergAtGithub JoergAtGithub Aug 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, but this is the essence of this blog post! Without knowing how to use the sample content of this file, it is completely incomprehensible for a mapping developer how to use this functionality.
Everything else in this post is just an explanation, but that's what I want to share with the mapping community here!
Feel free to copy elsewhere - but please don't make me remove this post from my blog post.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO this certainly deserves to be a newspost.
This is news, though it's more technical it definitely has it's public.

Articles like this make the difference: Mixxx isn't just a program like 13 in a dozen, there's a lot of added value and although we're not literaly selling something the (shared) knowledge / flexibility / support (not treating users as complete idiots) all are part of Mixxx's USP (Unique Selling Point).
Not everyone reads the wiki on regular bases but rather when they are dealing with a problem or looking for particular information. If articles like this don't get (news-) attention the info might got lost between the other info (that can be overwelming). The readers can choose to read it or not (if it's too technical for them).
The Wiki also needs an 'updated / new' - intro (simular to changelog)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, but this is the essence of this blog post! Without knowing how to use the sample content of this file, it is completely incomprehensible for a mapping developer how to use this functionality. Everything else in this post is just an explanation, but that's what I want to share with the mapping community here! Feel free to copy elsewhere - but please don't make me remove this post from my blog post.

yeah... makes sense. Lets copy it to an appropriate page in the wiki after publishing the article.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a place in mind, where I should copy it to?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JoergAtGithub
Copy link
Member Author

It would be nice, if we could publish my 2.4 feature post finally...

@Eve00000
Copy link
Contributor

Eve00000 commented Aug 1, 2024

It would be nice, if we could publish my 2.4 feature post finally...

So this is the explanation of the magic, I couldn't get it to work yet but maybe with this doc it could work, I'll try. Thank you for the doc.

Comment on lines +18 to +19
## How to use it?
Development of mappings and controller scripts is usually done in the subdirectory `controllers` of the [Mixxx Settings Directory](https://manual.mixxx.org/latest/chapters/appendix/settings_directory), while the common files (like `common-controller-scripts.js`) which comes with Mixxx, are store in the subdirectory `controllers` of Mixxx installation directory, or `./mixxx/res/controllers` if you built Mixxx yourself. This is also the location, where the TypeScript files with the declarations of the Mixxx controller API are stored. The LSP language server need to know the location of all of them. To tell the LSP server general settings and the locations of these files, you need to create a file with the name `jsconfig.json` placed next to your JavaScript controller script file, in the `controllers` directory in your `Mixxx Settings Directory`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree here. Can we describe it in a wiki and just link it here?
We need a wiki entry anyway. Maybe also a Readme.txt in the controller folder?
How about installing a jsconfig.json.template file with a comment how to adjust and use it?

@Eve00000
Copy link
Contributor

IMHO I think the time is right to publish this newsitem.
The last newsitem has had it's attention and by publishing this one now it can have it's deserved attention too.
What do you think?

@Swiftb0y
Copy link
Member

sure... just needs the merge conflict resolved and a squash would be nice too.

Copy link
Member

@Swiftb0y Swiftb0y left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you.

@Swiftb0y
Copy link
Member

can you also resolve your review @daschuer?

@daschuer
Copy link
Member

Thank you.

@daschuer daschuer merged commit 8a53385 into mixxxdj:website Aug 18, 2024
6 checks passed
@JoergAtGithub JoergAtGithub deleted the controllerAPI_declarations branch August 18, 2024 15:21
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