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

State of the Extension world #3506

Closed
6 of 32 tasks
pelikhan opened this issue Oct 28, 2020 · 22 comments
Closed
6 of 32 tasks

State of the Extension world #3506

pelikhan opened this issue Oct 28, 2020 · 22 comments

Comments

@pelikhan
Copy link
Member

pelikhan commented Oct 28, 2020

See the documentation on how to fix in https://support.microbit.org/en/support/solutions/articles/19000121371-makecode-extension-compatibility-v1-and-v2

@AlasdairAtKitronik
Copy link

AlasdairAtKitronik commented Oct 29, 2020

@pelikhan Noticed that all the Kitronik extensions listed here are ones which include .cpp files.
Is the error you're getting (MakeCode 3.1.21)?:
image
Or this one (MakeCode 3.0.34)?:
image

I can't make the ZIP64 orZIP Tile Extensions work at all with these versions of MakeCode, even after switching to the core version of the WS2812B driver, and using the C++preprocessor test from this issue: #3494

Also just tested the :GAME Controller extension and that gives the same error message.

Has something changed with being able to use C++ files or DAL stuff?:

//% block="Joypad Up (P8)"
Up = DAL.MICROBIT_ID_IO_P8,
//% block="Joypad Down (P14)"
Down = DAL.MICROBIT_ID_IO_P14,
//% block="Joypad Left (P12)"
Left = DAL.MICROBIT_ID_IO_P12,
//% block="Joypad Right (P13)"
Right = DAL.MICROBIT_ID_IO_P13,
//% block="Fire 1 (P15)"
Fire1 = DAL.MICROBIT_ID_IO_P15,
//% block="Fire 2 (P16)"
Fire2 = DAL.MICROBIT_ID_IO_P16

@pelikhan
Copy link
Member Author

yotta is broken right now and all packages with C++ fail.

@AlasdairAtKitronik
Copy link

yotta is broken right now and all packages with C++ fail.

OK, good to know - I'll do something else!

@jaustin
Copy link
Collaborator

jaustin commented Oct 29, 2020

@microbit-sam FYI

@CleoQc
Copy link
Contributor

CleoQc commented Oct 30, 2020

Are we expected to do anything for our extension?

@microbit-mark
Copy link
Contributor

microbit-mark commented Nov 5, 2020

@pelikhan @abchatra We have an example of one extension listed here as failing to build, that is tested as working in the /beta editor and with V1 and V2 boards, BrightWearables/pxt-microbit-brightboard @BrightWearables can you confirm this?

Extension builds, but errors with

pxt_modules/brightboard/brightboard.ts(88,23): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'Number' has no compatible call signatures.

pxt_modules/brightboard/brightboard.ts(110,30): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'Number' has no compatible call signatures.

List was edited 2 days ago. Is there an update to this or is it just failing all extensions that use C++ and that is why we see it listed here. What is the action for @BrightWearables?

@pelikhan
Copy link
Member Author

pelikhan commented Nov 5, 2020

This list is outdated. Look at the output of the GitHub action.

@microbit-mark
Copy link
Contributor

microbit-mark commented Nov 5, 2020

Can you update the list @abchatra as we've linked to this for accessory makers to check against

@abchatra
Copy link
Contributor

abchatra commented Nov 6, 2020

I still see all the same packages failing in the logs. How do I see the exact issue from the logs? @pelikhan

@microbit-mark
Copy link
Contributor

The brightboard extension is still reporting a build failure in the latest logs @abchatra, but we can build locally with the warnings in #3506 (comment). Do you know why that would be?

@pelikhan
Copy link
Member Author

I still see all the same packages failing in the logs. How do I see the exact issue from the logs? @pelikhan

Best to look at the action output. https://github.com/microsoft/pxt-microbit/runs/1377260278?check_suite_focus=true#step:7:22023

@pelikhan
Copy link
Member Author

The build script is using pxt-microbit from master; which uses the latest version of pxt. In that version, we have fixed a compiler bug and we detect when you try to do a call on a property.

https://github.com/BrightWearables/pxt-microbit-brightboard/blob/master/brightboard.ts#L88

buffer.length is a property, so the () should be removed.

@pelikhan
Copy link
Member Author

I've modified the script to test both master and stable3.0.

@abchatra
Copy link
Contributor

Still 41 extensions are failing in the latest /beta. @jaustin what is the plan here?

@abchatra
Copy link
Contributor

I have updated the list at the top

@microbit-sam
Copy link
Contributor

Hey @abchatra , I think the current plan is:

Extensions using Timer from mbed should build without any changes once this has merged:
lancaster-university/codal-microbit-v2#23

Extensions using Button from mbed aren't compatible with CODAL button
There's an existing issue to add the constructor to CODAL, or it could be added as part of the compat layer
https://github.com/microbit-foundation/codal-microbit/issues/142 (private repo)

Other extensions using mbed features may need to include 'mbed.h', or include the features they actually need e.g. DigitalIn.h, DigitalOut.h. Were these previously included by pxt.h?
For example pxt-iot-environment-kit uses DigitalIn, but currently doesn't include 'mbed.h' or 'DigitalIn.h'

Extensions that use mbed BLE functions will need to be modified to support CODAL BLE

@jaustin
Copy link
Collaborator

jaustin commented Nov 13, 2020

@finneyj could we please merge lancaster-university/codal-microbit-v2#23 ASAP so we can get an updated list once we automunge the timer information?

@abchatra
Copy link
Contributor

More extensions failed in the latest run. Total 31 excluding the warning. I am bit confused on what state these extensions are and what I need to disable.

This was referenced Nov 18, 2020
@microbit-sam
Copy link
Contributor

As you can see from the referenced issues above I've opened issues on the failing extensions

Having gone through the extension build logs to create these tickets, I think solving the compat issues with I2C/NRF52I2C, MicroBitFont, and MicroBitSerial is worth doing. For I2C/Serial I think it should just be an additional constructor that accepts mbed Pins as parameters

lancaster-university/codal-microbit-v2#31

@pelikhan
Copy link
Member Author

pelikhan commented Nov 18, 2020 via email

@microbit-sam
Copy link
Contributor

microbit-sam commented Nov 20, 2020

Todays action didn't output any errors, is it possible to reenable the disabled extensions for this build

@microbit-mark
Copy link
Contributor

We have replicated the guidance in lancaster-university/codal-microbit-v2#31 on the micro:bit Knowledgebase in https://support.microbit.org/en/support/solutions/articles/19000121371-makecode-extension-compatibility-v1-and-v2

Please link to this if you see further issues @pelikhan @abchatra

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

No branches or pull requests

7 participants