-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
JS: Backport³ and more additions & fixes #3961
base: dev
Are you sure you want to change the base?
Conversation
Co-authored-by: oldip <[email protected]>
Co-authored-by: oldip <[email protected]>
Co-authored-by: xMasterX <[email protected]>
Co-authored-by: xMasterX <[email protected]>
Co-authored-by: Spooks4576 <[email protected]>
Co-authored-by: Spooks4576 <[email protected]>
Co-authored-by: Spooks4576 <[email protected]>
Co-authored-by: jamisonderek <[email protected]>
} else if (index === 4) { | ||
gui.viewDispatcher.switchTo(views.longText); | ||
} else if (index === 5) { | ||
let path = filePicker.pickFile("/ext", "*"); |
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.
I'm curious whether it's at all possible to integrate the file picker with the rest of the GUI system as an ordinary view and make its API asynchronous. Gonna look into it.
This reverts commit 1967ec0.
@portasynthinca3 @skotopes with ofw 1.1 close to release, and the significant changes to battery driver, i want to release momentum 008 as close after 1.1 as possible, and this for me includes atleast agreeing on user-facing changes of this PR: we of course already had these things that this PR adds, and dont want users to fix scripts on this release, and then change the same things again in next release. hasProperty() is gone, __dirname and __filename names are fixed, toUpperCase() and toLowerCase() are moved to string class. this is most of review comments. although i did not get any feedback on moving toString() to number class, i got it working, so please let me know if you agree with this or not. behavior of __dirname and __filename in load() can be fixed later on. for filepicker, i can label in our changelog that its changed but may change again depending on this. does this sound fine? |
in plugins, `requires` is used to determine which app to distribute the .fal under `apps_data/appid/plugins`
@Willy-JL I hear you. We can postpone release till this series of PRs will be ready to merge. |
i just wanted some feedback on whether these user-facing changes would be ok, no need to rush this pr or delay release, i did not mean to disrupt plans 😄 but besides this, from what i understand this is basically ready, only missing feedback on whether moving of toString() to number class is ok, and whether there is a way to move file picker to new gui system lets see what porta thinks :D |
To be honest, did not mean to delay the release either. |
@Willy-JL, here's our statement on the whole JS API / SDK / versioning mess. GoalsIn short
The user's perspective
The JS developer's perspective
The CFW maintainer's perspective
How do we achieve that?Like I already said, I propose that we introduce a major-minor semantic versioning system like the one that we already have for native apps. Since we have adopted TypeScript, I propose that we consult the following standard to determine whether a change is a major or a minor one: https://www.semver-ts.org/. Version compatibility could be checked by the developer using a combination of the following functions:
To check for additional features found in CFWs, I propose that we introduce the following symbols:
Let us know what you think. |
This sounds like a great plan! There's only one thing i see as suboptimal: Many features added by cfw are shared between other cfw pretty quickly, checkSdkVendor() would allow the developer to ask for the feature set of a certain firmware, and a different firmware could detect this and return a positive result even if it's not the firmware that the script asked for, rather if it supports the features present in said firmware. For example, unleashed includes most, but not all, extra js features that there are in momentum. A script requesting unleashed vendor features would therefore work on momentum, which is a superset of their features, but not viceversa. |
That's a valid point. However, I'm afraid that CFWs falsely presenting themselves as other CFWs, although done in good faith, will quickly devolve into a mess similar to what I propose that we declare OFW the baseline for the feature set, and allow CFWs to introduce and share named features. Suppose that you as the maintainer of Momentum decide to add a regex validator prop to the text input view. You shall, under this social contract, introduce a named feature (e.g. Now, to keep firmware image sizes under control, we need a framework for removing these strings from the code. In other words, we need a mechanism for recognizing a feature as a baseline feature after it has been merged into OFW. I propose that we recognize a backported feature as a baseline feature one SDK major version after it has been merged. Consider the following chain of events as an example:
This leaves the question of vendoring unanswered. Assuming that the system for user-agent-line-creep prevention that I outlined is in place, it would make no sense to keep the |
What's new
Needs feedback:
Verification
Checklist (For Reviewer)