Skip to content
This repository was archived by the owner on Oct 1, 2024. It is now read-only.

No way to pass extra compile flags and defines #975

Open
astro-stan opened this issue Feb 29, 2020 · 15 comments
Open

No way to pass extra compile flags and defines #975

astro-stan opened this issue Feb 29, 2020 · 15 comments
Labels

Comments

@astro-stan
Copy link

I need to pass defines to the compiler, but the arduino.json does not support such option. I tried putting a

"defines":[...]

in the c_cpp_properties.json, but it is not picked up during compilation.
Same goes for extra compile flags. I tried putting

"compilerArgs": [...]

in the c_cpp_properties.json, but it is not picked up.

@elektronikworkshop
Copy link
Contributor

elektronikworkshop commented Feb 29, 2020

Hi Slav again,

c_cpp_properties.json is a configuration file for IntelliSense and it's not related to the Arduino build back-end in any way. It's just for getting code highlighting and navigation right (This is what I'm implementing currently because how the extension manages it currently is pretty bollocks).

To cite this post

There isn't really any convenient way to do this via the Arduino IDE. This was actually an intentional decision by Arduino because they feel it will lead library developers to unnecessarily create library interfaces that are not beginner friendly.

There is a way to pass flags to the compiler using the build.extra_flags preference. But you'd have to build your project from the command line:

arduino --pref build.extra_flags=-DF_USB=16000000 --upload --board arduino:avr:leonardo foobar.ino

And BTW: It's not a good idea to set this in Arduino's preferences.txt because if you do so, all sketches you build will have this flag set.

I suggest you try to work around it. What is the problem that forces you to pass a define to the compiler?

Regards,
EW

Edit: I added a note to my "branch notes" that it could be useful to support Arduino preferences within arduino.json

elektronikworkshop added a commit to elektronikworkshop/vscode-arduino that referenced this issue Feb 29, 2020
…are applied during any build and can be used to set custom compiler flags and defines for instance.

Addresses microsoft#975
@elektronikworkshop
Copy link
Contributor

Hi Slav,

I added support for additional build preferences in my branch. You can set any Arduino preferences to be used during build within arduino.json. Here's an example to set some build flags

{
    "board": "arduino:avr:nano",
    "sketch": "test.cpp",
    "port": "/dev/ttyUSB0",
    "configuration": "cpu=atmega328old",
    "buildPreferences": [
        ["build.extra_flags", "-DMY_DEFINE=666 -DANOTHER_DEFINE=3.14"],
        ["compiler.cpp.extra_flags", "-DYET_ANOTER=\"hello\""]
    ]
}

Within my branch those defines will then automagically be added to the IntelliSense configuration.

You can alpha test here.

Please note, that I'm not affiliated with the maintainers of this repository and my current work still has to be merged.

Regards,
EW

@elektronikworkshop
Copy link
Contributor

Thanks, @SlavDimov !

Your inquiry triggered me to implement this pretty neat feature!

Regards,
EW

@astro-stan
Copy link
Author

Hi EW,
Awesome! Thank you for the quick patch!

To respond to your original question my use case is the following:
I am using .cpp and .h files instead of .ino.
About the defines - I need to be able to exclude/include some code based on what I am doing. Say I have a "DEBUG" define and when it is enabled I want it to print a sensor reading every second on the serial monitor. When it isn't it will be excluded from the source.

About the compiler flags - I want to be able to pass extra arguments like -Wall, -Werror etc. Use cases are pretty straight forward here.

@elektronikworkshop
Copy link
Contributor

Hi @SlavDimov

You're welcome!

vscode-arduino already supports .cpp main sketches. Just set the sketch to your main.cpp within arduino.json. All other .cpp sources within the sketch folder are compiled automatically as well. So no need to fiddle with compiler arguments in this case.

I usually write a library as soon as I have reusable code. This has several advantages:

  • It remains portable
  • no need for compiler arguments (again portability)
  • others (or myself) can use it with the Arduino IDE

Actually I have some pretty complex projects which don't need any compiler fiddling. I can only recommend that for portability.

DEBUG defines: fair enough - I already suspected that it would be something like that. But that's nothing one couldn't solve with a global include.

The -Wall is globally enabled on my system within ~/.arduino15/preferences.txt - good to see, that there are others who enable this. I can't stand folks which disable warnings 😉

But anyhow: Having the power to set some preferences is a good thing and pretty powerful.

Regards,
EW

@astro-stan
Copy link
Author

Hi EW,
I know about the CPP in arduino.json. I already did that. My point was that if you are using .ino files there is not much point in using defines. About the warnings, yes you can do that, but what happens when you collaborate with other people? It is better for them to live as an argument inside the .vscode folder

Regards,
Slav

@elektronikworkshop
Copy link
Contributor

Hi!

I know about the CPP in arduino.json. I already did that. My point was that if you are using .ino files there is not much point in using defines.

This might need more explanation (even though this might not be the right place to discuss such stuff).

Regarding the warnings: You mean because of that the bad code of others? I usually fix the warnings of others and file pull requests. But of course - having a project-wise switch at hand is pretty convenient. Especially for large frameworks which have a slow release cycle...

Happy coding!

Regards,
EW

@ivankravets
Copy link

Please take a look at https://platformio.org that supports Arduino framework.

@elektronikworkshop
Copy link
Contributor

elektronikworkshop commented Mar 3, 2020

Hi Ivan,

thanks, but there are people like me who want a lightweight extension and don't want to use Platform IO. Another concern of me is its restricted licensing scheme.

Regards,
EW

@elektronikworkshop
Copy link
Contributor

And BTW, @ivankravets : It's pretty uncool to come here to fish for people. This makes Platform IO for me even less attractive.

@ivankravets
Copy link

Another concern of me is its restricted licensing scheme.

@elektronikworkshop there is not difference will you use PlatformIO or won't. It's a fully free and open source. It's licensed under the maximum permissive Apache 2.0 license, where Arduino's new products including IDE are close sourced and even paid. Community Java-based Arduino IDE is under GPL.

I just wanted to save your time.

@elektronikworkshop
Copy link
Contributor

@ivankravets Thanks for being so generous and saving my time!

Ah, I see - you changed your licensing... There seemed to be the simple mechanics at work: I don't like to contribute to projects where some guy then cashes in the revenues.

But what you're spreading here about Arduino is simply wrong. The new Arduino Pro IDE will be licensed under the EPL. But that doesn't matter, since vscode-arduino doesn't make use of it anyways. I think, the new Arduino Pro will render vscode-arduino and Platform IO obsolete for all the Arduino users. I wish you Good Luck!

@ivankravets
Copy link

Ah, I see - you changed your licensing...

PlatformIO has been fully open source since the first day (2014) under Apache 2.0. We didn't change license.

where some guy then cashes in the revenues.

What do you mean?

But what you're spreading here about Arduino is simply

Are Arduino Create, Cloud and other newly added services free and open source? No, because there is no more freedom with Arduino. It has been acquired by ARM/Softbank.

Platform IO obsolete for all the Arduino users.

It is your personal opinion and I respect it. You can't create a product where 100% of people will be satisfied. There are hundreds of thousands of developers who are super happy with PlatformIO:

I wish you Good Luck!

Thanks! If you will need any help, do not hesitate to contact us.

@elektronikworkshop
Copy link
Contributor

Yes, the PIO's back-end was, but the IDE and other stuff wasn't.

Yeah, there are some services which are closed but the core will remain open. For advanced Arduino users Platform IO was an option due to the lack of professional features on the classic Arduino IDE. If this deficiency is gone, the demand for alternatives will perish. And I have the impression, that a considerable share of PIO's user base are simply Arduino users who had the same problem as I did.

@ivankravets
Copy link

Yes, the PIO's back-end was, but the IDE and other stuff wasn't.

Thanks, I've just edited that post!

If this deficiency is gone, the demand for alternatives will perish.

PlatformIO is not an alternative to Arduino. Arduino for us is a big Community of talented people and we work hard to keep full compatibility with legacy Arduino IDE builder. When I talk about Arduino, I don't mean "arduino.cc". I mean all the good things (Wiring) which were founded by Hernando. You can read more here The Untold History of Arduino . I prefer truth and justice.

Today, PlatformIO is the only neutral, independent, free and open-source ecosystem for embedded development. We support over 30+ different architectures and dev-platforms. We don't force people to use the only Arm. Our mission to support as much as more different hardware and software solutions in the embedded market.

In the case of Arduino, this is a framework for us and is a small puzzle in our ecosystem. We support ~20 different frameworks and SDKs. Our customers have full freedom and personally decide which IDE or OS to use: VScode, Eclipse, CLion, etc (see more). If we have tomorrow a much better text editor than VSCode, we will create a new extension and all previous projects will be compatible.

Just finalize. We don't compete or fight with Arduino. There is nothing common between Arduino and PlatformIO. They are totally different. We even have different business models. As I mentioned before, we respect the Arduino Community and help them as much as we can. PlatformIO - this is not about VSCode or debugging. This is about having a unified ecosystem for different architectures and dev-platforms. Our mission is to help silicon vendors to save their expensive resources working on "yet another Eclipse IDE". You can learn more about what we do from my recent talk at RISC-V Summit https://www.youtube.com/watch?v=0eYDKION0Bs
We help different silicon vendors which make products based on the different architectures.

P.S: I known, most of the developers look on PlatformIO as an enhancement for Arduino IDE. This is our personal mistake that we spent a lot of time on Arduino. Most of our advanced instruments, such as Project Inspection, Memory Analyzer, Static Code Analyzers, Unified Debugger are not intended for Makers. This is why I said that it is incorrect to compare Arduino vs PlatformIO. If your project is very simple with 1 file and you personally work on it - Arduino IDE is a great option for this. If you need advanced control on a build process or you have a team, they work on different machines, use a different OS, different IDEs - PlatformIO is ideal here with its support for hybrid configuration.

This issue is about "advanced control". This why I added 5 cents to save your time. Take a look at this project example https://github.com/MarlinFirmware/Marlin/blob/2.0.x/platformio.ini to understand what PlatformIO can.

@robotdad robotdad added the build label Oct 30, 2020
hlovdal pushed a commit to hlovdal/vscode-arduino that referenced this issue Nov 17, 2020
…are applied during any build and can be used to set custom compiler flags and defines for instance.

Addresses microsoft#975
hlovdal pushed a commit to hlovdal/vscode-arduino that referenced this issue Jan 7, 2021
…are applied during any build and can be used to set custom compiler flags and defines for instance.

Addresses microsoft#975
adiazulay pushed a commit that referenced this issue Jan 19, 2021
…are applied during any build and can be used to set custom compiler flags and defines for instance.

Addresses #975
adiazulay added a commit that referenced this issue Mar 22, 2021
commit 57c8d2d
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Mon Mar 22 13:00:21 2021 -0700

    update changelog

commit 6e65997
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Mon Mar 22 12:49:56 2021 -0700

    bump to v0.4.0

commit 6d63a01
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Tue Mar 9 08:54:05 2021 -0800

    update version

commit ed886ad
Merge: 6ecfc55 9ca2400
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Mon Mar 8 14:01:55 2021 -0800

    Merge branch 'develop' into pre-release-v0.4.0

commit 9ca2400
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Fri Mar 5 09:58:10 2021 -0800

    remove -MMD from complier args for intellisesne (#1208)

commit 6ecfc55
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 18 11:27:45 2021 -0800

    update version in package

commit 1126581
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 18 11:07:59 2021 -0800

    update readme

commit 5571e52
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 18 10:52:24 2021 -0800

    update package-lock

commit 0b60f1f
Merge: e044711 e97bad8
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 18 09:59:26 2021 -0800

    Merge branch 'master' into pre-release-v0.4.0

commit e044711
Merge: 739aa95 5f4c400
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 4 14:32:52 2021 -0800

    Merge branch 'develop' of https://github.com/microsoft/vscode-arduino into pre-release-v0.4.0

commit 739aa95
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 4 14:21:55 2021 -0800

    pre release v0.4.0

commit 5f4c400
Merge: b7094ba 595def8
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 4 11:53:29 2021 -0800

    Merge branch 'master' into develop

commit b7094ba
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Fri Jan 22 14:56:07 2021 -0800

    remove IntelliSense Auto branch notes

commit b0375c8
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Jan 20 09:45:43 2021 -0800

    Bump ini from 1.3.5 to 1.3.8 (#1159)

    Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8.
    - [Release notes](https://github.com/isaacs/ini/releases)
    - [Commits](npm/ini@v1.3.5...v1.3.8)

    Signed-off-by: dependabot[bot] <support@github.com>

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Adi Azulay <adazulay@microsoft.com>

commit f80b38f
Author: Jason Tranchida <jtranchida@gmail.com>
Date:   Tue Jan 19 16:41:36 2021 -0800

    Populate the list of programmers by parsing programmers.txt for each package (#1129)

    * Improved handling of programmer selection

    - Selected programmer is now saved to and loaded from the arduino.json file
    - Arduino.json is monitored for changes, and changing file will update selected programmer & ui
    - Programmer selection UI now shows both the friendly name of the programmer, as well as the arduino name
    - Minor fix to deviceContexts to fire change events after all states are modified
    - Layed groundwork to support querying list of programmers for the current board from arduino toolchain

    * Parse the list of programmers from packages

    * Tests for parsing programmers

    * Show board specific list of programmers when selecting

    Populate the selected programmer and it's display name using list of programmers provided by BoardManager.  When selecting programmer, only present the user a list of programmers relevant to the current board.

    * Initial set of tests for ProgrammerManager

    * add support for cli

    * fix hardcoded package name for programmers

    * adds programmer.key back to support arduino IDE

    * fix handeling of programmer name in ide and cli

    Co-authored-by: Adi Azulay <adazulay@microsoft.com>

commit 8bb1130
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Tue Jan 19 12:16:15 2021 -0800

    fix missing "

commit a717e5b
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Tue Jan 19 12:11:25 2021 -0800

    update travis

commit 9d1899e
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Tue Jan 12 12:25:51 2021 -0800

    remove redundant prebuild check

commit 7ac331f
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Tue Jan 12 12:08:33 2021 -0800

    fix verbose setting and cli programmer upload

commit b91a5ca
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Dec 10 16:41:17 2020 -0500

    fix cli analyze mode

commit 2e763c8
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Dec 10 15:53:53 2020 -0500

    add support for cli

commit b5360b5
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Jan 7 00:39:08 2021 +0100

    Remove arrow-head anti-pattern

commit 0356bb7
Author: Håkon Løvdal <kode@denkule.no>
Date:   Wed Jan 6 23:03:06 2021 +0100

    Join args.push statements

commit b97a740
Author: Håkon Løvdal <kode@denkule.no>
Date:   Wed Jan 6 22:38:23 2021 +0100

    Replace "upload" with "compile --upload"

commit e591480
Author: Håkon Løvdal <kode@denkule.no>
Date:   Wed Jan 6 21:25:59 2021 +0100

    Reverse and merge tests

commit 5a49b97
Author: Håkon Løvdal <kode@denkule.no>
Date:   Tue Jan 5 22:23:21 2021 +0100

    Remove compile argument and expand BuildMode with CliUpload and CliUploadProgrammer

commit 8b83873
Author: Håkon Løvdal <kode@denkule.no>
Date:   Tue Jan 5 23:34:25 2021 +0100

    Consolidate all boardDescriptor argument pushing

commit a6512a4
Author: Håkon Løvdal <kode@denkule.no>
Date:   Mon Jan 4 21:48:51 2021 +0100

    Move the _build to the end and make private

commit c2ab577
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 29 14:39:38 2020 +0100

    Updated log, additional stuff and beers

commit 8a491ed
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 29 13:50:28 2020 +0100

    Fixed security issue

    * Web-server for library-, board-manager etc. was not listening on localhost but on the machine's main interface
    * Web-server wasn't launched asynchronously what can cause problems
    * Port was stored redundantly in webserver class
    Addresses #966

commit 5f32221
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 29 12:15:17 2020 +0100

    Add and document buildPreferences setting

    * Validator for `buildPreferences`
    * Documentation for `buildPreferences`

commit 9543ba7
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 29 11:24:35 2020 +0100

    Support for Arduino preferences in `arduino.json`. These preferences are applied during any build and can be used to set custom compiler flags and defines for instance.
    Addresses #975

commit f9cd3c5
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 29 07:55:37 2020 +0100

    Fix too early initialization of cocopa

    * Fixed bug with build: initializing cocopa too early (was failing if sketch wasn't initialized)
    * More info in error message for uncaught exception during build cleanup
    * Note on output path preparation which seems to be a bit wonky

commit 48c4c64
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 29 01:04:29 2020 +0100

    Updated log, status and beers

commit 95f5a18
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 29 00:32:05 2020 +0100

    Documentation for pre-/post-build commands and their environment variables

commit f85a783
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 28 23:57:08 2020 +0100

    Full cmd support for pre-/post-build commands on Windows
    Addresses #786

commit 2af8f11
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 28 23:19:56 2020 +0100

    Pre-/post-build command improvements

    * Full bash syntax support for pre-/post-build commands on UNIX systems
    * Environment variables for pre-/post-build commands which give the user access to several build process parameters like the sketch, the output directory, serial port, build mode (verify, upload, analyze, ...), board type and workspace path
    Addresses #786

commit d3bcf6e
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 28 21:07:50 2020 +0100

    Logging and post-build commands

    * Error logging for exceptions during build cleanup
    * Compacted log message filter regexes
    * Moved pre-build command after initialization of the output folder in case this command somehow wants to operate on it somehow
    * Better error message handling when post-build command fails
    * Forwarding post-build command error

commit 7c1104c
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 28 15:29:32 2020 +0100

    Section which outlines additional features this branch addresses

commit 2b84aa8
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 28 15:28:21 2020 +0100

    C++ standard is now parsed from compiler arguments

    Plus: Moved some methods to cocopa and got rid of the typed-promisify dependency

commit f6c3b2c
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 27 22:49:54 2020 +0100

    Added post build command support

    * Added post build command support
    * Added validator for both pre and post build (former was missing)
    Yet to be decided: Solution for analysis run: with or without pre/post build?
    Addresses #786

commit 7039ea8
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 27 21:21:33 2020 +0100

    IntelliSense auto gen respected global and project specific dis-/enable flags for analyze only. Now these flags have the same effect during regular builds.

commit deaa18a
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 27 21:02:49 2020 +0100

    Collapsing multiple consecutive newlines into a single newline for non verbose build log

commit 30210dc
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 27 19:47:44 2020 +0100

    Make upload verbosity be conditional and extend filtering

    * Building always verbosely but upload only verbosely when requested
    * Filtering of spurious messages now with regex list and for all platforms

commit fed508f
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 27 19:44:35 2020 +0100

    Filter out invalid include directories

    * Filtering out invalid include directories (discovered when compiling for ESP8266)
    * Compacted IntelliSense message and hint to manual build into a single line

commit 194dc92
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 27 18:40:27 2020 +0100

    Fixed exception which occurs if one of the include directories doesn't exists and we try to search it for Arduino.h

commit 70d323d
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 27 18:36:01 2020 +0100

    Fixed bug in board.ts: Conceptual flaw when checking if configuration option is valid

commit 314d4a8
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 27 16:11:33 2020 +0100

    Build/analysis logging improvements

commit b489a8f
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 27 14:03:58 2020 +0100

    Run IntelliSense analysis for every build

    * Run IntelliSense analysis for every build
    * Added global enum for log level

commit 88e544a
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 26 16:36:40 2020 +0100

    Added link to alpha releases to top of document

commit 15fd705
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 26 16:21:12 2020 +0100

    Updated beers

commit 27d9cac
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 26 16:15:06 2020 +0100

    Final pull request dependency style for cocopa

commit e7f7d05
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 26 16:14:15 2020 +0100

    Updated log

commit 764d21e
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 26 15:57:00 2020 +0100

    Refined some documentation comment

commit deecdf2
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 26 15:48:54 2020 +0100

    Changed Serial.updatePortListStatus to make use of optional argument to eliminate updatePortListStatus(null) calls

commit cdf9f34
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 26 15:46:40 2020 +0100

    Added/reviewed some notes

commit 4202508
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 26 15:28:52 2020 +0100

    Reworked util.spawn to mergable version

commit d408686
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 26 14:22:52 2020 +0100

    Removed IS-REMOVE code

    * Removed code marked with `IS-REMOVE` previously
    * Added constant for the `c_cpp_properties.json`-configuration managed by vscode-arduino
    * Removed code rendered dead by the previous removal

commit 31e530c
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Tue Feb 25 17:16:15 2020 +0100

    Updated cocopa to version 0.0.12

    * Implemented and tested support for `.cpp`-sketches.
    * Done implementing the most relevant unit tests in cocopa.
    * Two independent alpha testers confirmed proper working of the previous alpha releases.
    * Updated to the latest revision of cocopa.

commit b5714b6
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sun Feb 23 18:34:33 2020 +0100

    Updated log and beers

commit f2a5307
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sun Feb 23 18:26:31 2020 +0100

    Forceinclude Arduino.h

    * Added message to end of each build to inform user how to update the IntelliSense configuration
    * The magic now searches all identified include paths for the Arduino core include file (aka Arduino.h) and adds it as forced include - most users expect Arduino core functionality to work without having to include this header. Added typed-promisify to dependencies since I made use of it in the new code for better readability.
    * Conclude is now asynchronous
    * Updated branch status and added new future task
    * Bumped cocopa version to 0.0.10

commit b7effbc
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 22 23:29:15 2020 +0100

    Updated log

    * Updated branch log and beers

commit 5fe6dbc
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 22 23:17:59 2020 +0100

    IntelliSense config generator

    * Now normalizes generated include paths
    * Bumped cocopa to 0.0.9

commit 4238e12
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 22 20:33:16 2020 +0100

    Updated to latest cocopa which features X-platform support and better lexer

commit e6c10cd
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 22 20:24:30 2020 +0100

    Updated log and beers

commit 2d52e52
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 22 14:25:22 2020 +0100

    Fixed handling of invalid manual configurations. Improved code locality for board configuration manipulation and fixed a race condition with fine grained event handling. Details:

    Added missing checks when board configurations are loaded from the configuration file:
    * Up to now vscode-arduino blindly loaded any board configuration from `arduino.json` even if this would result in invalid board configurations which in turn lead to compilation (verify, upload) failure.
    * Up to now this state couldn't be recovered by simply removing the offending configuration from the configuration file. Even worse: it stored the wrong configuration in between board changes.

    To reproduce the bug in 0.2.29

    1. Select Arduino Nano with the *Arduino Board Configuration*
    2. Set configuration in `arduino.json` to `cpu=cray2` and save
    3. Verify -> fails
    4. Switch board to Arduino Uno
    5. Switch back to Arduino Nano: The wrong configuration is back and now the user can't even select another (correct) configuration from the *Arduino Board Configuration* window
    6. Delete the wrong configuration and save -> verify still fails

    `vscode-arduino` does not fall back to a default configuration. The user has now two options: find the correct configuration by himself and set it within arduino.json. Very experienced users could probably accomplish that. Everone else can just restart vscode.

    I corrected that by enhancing IBoard.loadConfig and IBoard.updateConfig member functions to
    * check for proper formatting of the config string loaded from `arduino.json`
    * check if the configuration IDs and the option IDs are valid

    If any of the above fails, the functions bail out and return the error. The board manager then loads a default configuration and issues a warning, that the configuration is invalid. This way the user gets the chance to fix her/his configuration but gets informed at the same time, that a different configuration than the intended is loaded (prevents surprises).

    This situation is only relevant, when users start fiddling with the configuration values in `arduino.json`. As long as they just set the board and the configurations from within the *Arduino Board Configuration Window* nothing bad can happen. But now custom configurations are handled in a cleaner way.

    The DeviceContext's board configuration was set in board.ts and boardManager.ts in different places - even when it was loaded after a DeviceContext's configuration update event which is prone to infinite loops. This has been resolved and it's not re-written/re-set during loading a configuration on change.

    This is valid for board manager's updateStatusBar function which fiddled with the board and the configuration. Now updateStatusBar really just updates the status bar. And it isn't necessary to call it from outside the board manager anymore due to proper event handling which identifies the situations during which the status bar has to be updated. Therefore this member is now private.

    In board manager itself operations that affect device context and current board now happen only within doChangeBoardType and the event handlers of DeviceContext callbacks onDeviceContextConfigurationChange and onDeviceContextBoardChange. This prevents the accidental creation of infinite event loops, makes the code more understandable, maintainable and therefore resilient against future bugs.

commit 640f269
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 21 21:45:52 2020 +0100

    Removed obsolete doc folder as all this is now part of cocopa

commit 98dbc0d
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 21 00:40:16 2020 +0100

    Updated log, status and beers

commit 01e92e9
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 19 23:59:01 2020 +0100

    Added "some" additional issues -- currently I've found 28!

commit 5fd1a27
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 19 23:01:36 2020 +0100

    Updated log and beers.

commit c15dc08
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 19 22:45:54 2020 +0100

    IntelliSense auto-analysis integration

    * Reworked DeviceContext for fine grained event generation on settings change
    * Added dedicated settings classes which allows for the latter
    * Changed board manager and serial monitor to used the new fine grained events instead of the "something changed event" - which makes the code marginally more efficient
    * Implemented an analysis manager which takes care of analysis requests generated by settings change events and makes sure that analysis builds don't interfere with regular builds
    * Adapted the build infrastructure within ArduinoApp such that it allows for the above
    * Removed the global build guard and moved it to ArduinoApp (there is a corner case though for programmer selection within extension.ts which I marked with a TODO
    * Fixed some linting issues but did not lint most of the stuff committed here - this will be part of a later commit
    * I left notes here and there where I saw things which should/could be improved/changed
    * Removed the try/catch guards from the build invocations within extension.ts since exceptions are handled within the build function itself
    * Changed the project setting parameter for the IntelliSense setup to reflect its workings better

commit 548c714
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 19 19:36:36 2020 +0100

    Updated and completed documentation of the current state within README.md

    * Updated project log and status

commit 59bad21
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 19 16:18:15 2020 +0100

    Updated project log and status

commit cabeed6
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Tue Feb 18 20:12:07 2020 +0100

    Updated log and issues

    * Added/documented all known related issues
    * Updated log
    * Updated and extended status
    * General brushing of structure and text

commit d6c7b5a
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Tue Feb 18 18:21:21 2020 +0100

    New classes which will improve the device settings management and event handling. To be integrated with one of the next commits.

commit d712a94
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Tue Feb 18 13:26:09 2020 +0100

    Don't use hard coded paths when possible.

commit 6c1fe68
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Tue Feb 18 01:54:11 2020 +0100

    Updated project log

commit 41bcd44
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Mon Feb 17 16:38:12 2020 +0100

    Disabled and marked all previous implementations of IntelliSense support for later removal using `IS-REMOVE`

commit 3418458
Author: Håkon Løvdal <kode@denkule.no>
Date:   Fri Dec 11 23:25:51 2020 +0100

    Fix whitespace

commit f914a4b
Author: Håkon Løvdal <kode@denkule.no>
Date:   Fri Dec 11 23:18:01 2020 +0100

    Add arduino.rebuildIntelliSenseConfig

commit 216e1b8
Author: Håkon Løvdal <kode@denkule.no>
Date:   Fri Dec 11 23:14:26 2020 +0100

    Merge build and verify

commit 2a2db50
Author: Håkon Løvdal <kode@denkule.no>
Date:   Fri Dec 11 23:12:03 2020 +0100

    Make build and verify identical

commit 2039739
Author: Håkon Løvdal <kode@denkule.no>
Date:   Fri Dec 11 22:53:33 2020 +0100

    Make build return boolean

commit fef2db0
Author: Håkon Løvdal <kode@denkule.no>
Date:   Fri Dec 11 18:07:15 2020 +0100

    Use cocopa and add Analyze build mode

commit 0b2b77a
Author: Håkon Løvdal <kode@denkule.no>
Date:   Fri Dec 11 00:27:21 2020 +0100

    Rename output to buildDir

commit 335d80a
Author: Håkon Løvdal <kode@denkule.no>
Date:   Fri Dec 11 00:10:17 2020 +0100

    Add stdoutCallback expression

commit 4aa7ddc
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 23:52:29 2020 +0100

    Add buildMode argument to verify

commit e4a70b0
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 23:39:12 2020 +0100

    Merge upload and uploadUsingProgrammer into one build function

commit a14f777
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 23:36:46 2020 +0100

    Make upload and uploadUsingProgrammer identical

commit 76c74cf
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 23:26:46 2020 +0100

    Add buildMode argument to upload and uploadUsingProgrammer

commit 86719a3
Author: Håkon Løvdal <kode@denkule.no>
Date:   Tue Jan 5 23:03:58 2021 +0100

    Spelling correction

commit cd9365b
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 23:00:46 2020 +0100

    Move selectProgrammer down

commit e03dc38
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 22:26:39 2020 +0100

    Move arg buildup earlier in functions

commit 88bed5e
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 21:57:40 2020 +0100

    Inline and move appPath later

commit 8227014
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 21:52:59 2020 +0100

    Add selectSerial expression

commit 990c1a1
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 21:36:40 2020 +0100

    Add cleanup expression

commit 0678c9a
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 21:09:50 2020 +0100

    Unify exit error message

commit b28f574
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 20:59:19 2020 +0100

    Unify util.spawn invocation

commit a6968e0
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 20:45:53 2020 +0100

    Introduce verbose variable

commit 3879639
Author: Håkon Løvdal <kode@denkule.no>
Date:   Thu Dec 10 20:21:12 2020 +0100

    Move args variable till top of upload, uploadUsingProgrammer and verify

commit dd308ac
Author: Håkon Løvdal <kode@denkule.no>
Date:   Tue Dec 8 22:40:05 2020 +0100

    Rename verifyResult to success

commit e4c13d0
Author: Håkon Løvdal <kode@denkule.no>
Date:   Tue Dec 8 22:24:21 2020 +0100

    Rename Logger to logger

commit a5d4695
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 15 20:49:13 2020 +0100

    Updated branch notes -- documented changes not committed though.

commit 5945d8d
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 15 12:47:31 2020 +0100

    Updated beer money log

commit 56c9634
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 12 18:12:43 2020 +0100

    Note how to run vscode without having gulp on your user path

commit 4341261
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 12 17:53:28 2020 +0100

    More on beta testing, added link to chat room

commit e80a338
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 12 17:00:26 2020 +0100

    Added instructions how to run development code

commit 6a42d3f
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Mon Feb 10 05:17:19 2020 +0100

    Moved intellisense function to a separate file

commit 4f6565c
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Mon Feb 10 02:33:24 2020 +0100

    Minor documentation rub

commit 40bb52d
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Mon Feb 10 02:26:03 2020 +0100

    Merge c_cpp_properties results with existing configuration

    * More unit testing within cocopa.
    * Implemented c_cpp_properties merging -> compiler analysis results are merged into existing configuration and will preserve configurations of different name than the vscode-studio default configuration name (currently "Arduino"). This opens up the possibility for users to write their own configurations without having to disable the autogeneration.
    * Implemented "write on change" - `c_cpp_properties.json` will only be written if a new configuration has been detected.

commit 67281ae
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sun Feb 9 18:25:01 2020 +0100

    Moved arduino specifics from cocopa to vscode-arduino

commit 3cba412
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sun Feb 9 16:40:00 2020 +0100

    Notes about serial monitor

    * Added more serial monitor ideas from [John Lonergan](#463 (comment))
    * Added some ideas how to implement a better serial monitor

commit d87402d
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sun Feb 9 13:23:48 2020 +0100

    Fix regression and improve regex matching

    * Fixed regression introduced with adaptions to latest version of cocopa
    * Made compile command regex match more stringent

commit 39c3f79
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sun Feb 9 11:51:43 2020 +0100

    Fix issue 771

    * Fixes the line splitting regex as outlined in #771
    * Removed a redundand condition

commit dd3254d
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sun Feb 9 04:24:52 2020 +0100

    Incorporated the latest progress from cocopa development

commit bb2ce83
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 8 16:29:08 2020 +0100

    Try to generate IntelliSense configuration even when the compilation fails

commit 819d2f1
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 8 16:12:58 2020 +0100

    Added IntelliSense setup auto-generation project (sketch-context) configuration flag which can override the global flag

commit f28dd7e
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 8 13:08:59 2020 +0100

    Updated earned :beers:

commit 0865c97
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 8 12:28:25 2020 +0100

    Moved compiler parser to cocopa package for better testability and maintainability

commit d337295
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 8 03:10:06 2020 +0100

    Documenting ...

commit 4a91647
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 7 03:19:09 2020 +0100

    Moved TODO in branch documentation

commit 59c78cb
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 7 03:15:53 2020 +0100

    Added even more TODOs to branch documentation

commit ce1b656
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 7 03:11:14 2020 +0100

    Added two more TODOs to branch documentation

commit 3da2f76
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 7 02:55:26 2020 +0100

    IntelliSense on/off configuration and compiler parser injection preparation

    * Added a global configuration switch which allows the IntelliSense auto-configuration to be turned off
    * Prepared the compiler parser code to be injected into "upload" and "upload using programmer" without overhead
    * Updated branch documentation

commit bc2b292
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 6 23:34:40 2020 +0100

    Documentation updates

    * Notes regarding settings
    * Notes where to run the auto-generation

commit baaf069
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 6 23:30:36 2020 +0100

    Pre-build command updates

    * Moved pre-build command into separate member function to reduce code replication, better maintainablility and readability
    * Added pre-build command to "upload using programmer" since it was (probably unintentional) missing there

commit 79bd476
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 6 23:29:32 2020 +0100

    Improved line splitting of built-in include parser after commenting on a pull request :)

commit 16e861d
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 6 21:48:34 2020 +0100

    Added IntelliSense compiler parsing engine code

    * Added IntelliSense compiler parsing engine code
    * First injection of the compiler command parser and IntelliSense auto-configuration. Currently injected into "verify" only.
    * Updated branch documentation to reflect the current state of this project

commit 82513e4
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Thu Feb 6 01:06:03 2020 +0100

    More documentation update

    * More investigations and documentation, especially on intrinsic/built-in compiler header include paths

commit 5debfb4
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 5 21:33:16 2020 +0100

    Update documentation

    * More documentation on this project
    * Tried to identify most of the tasks
    * Added beer money support option

commit 0291850
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Wed Feb 5 16:28:45 2020 +0100

    Branch for the implementation of the automagical IntelliSense configuration

commit 48418e2
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sun Feb 23 20:14:28 2020 +0100

    Removed unused import

commit 5daa2b1
Author: Håkon Løvdal <kode@denkule.no>
Date:   Fri Dec 11 18:13:55 2020 +0100

    Add missing return values

commit 57f4aa4
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 22 14:25:22 2020 +0100

    Fix @Property

commit 2e490b5
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Fri Feb 7 02:08:35 2020 +0100

    Fixed spelling.

commit ddb804f
Author: Uli Franke <hoi@elektronikworkshop.ch>
Date:   Sat Feb 8 13:05:30 2020 +0100

    Fixed misspelled function name

commit d6459d0
Author: Jason Tranchida <jtranchida@gmail.com>
Date:   Tue Dec 8 13:19:45 2020 -0800

    Improved handling of programmer selection (#1118)

    * Improved handling of programmer selection

    - Selected programmer is now saved to and loaded from the arduino.json file
    - Arduino.json is monitored for changes, and changing file will update selected programmer & ui
    - Programmer selection UI now shows both the friendly name of the programmer, as well as the arduino name
    - Minor fix to deviceContexts to fire change events after all states are modified
    - Layed groundwork to support querying list of programmers for the current board from arduino toolchain

    * fix dtr on serial open

    * fix dtr on serial open

    * fix linting

    * pre release v0.3.4

    * Add RTS signal on serial open, Add baudrates up to 2000000 (#1142)

    * add buad rates up to 2M

    * add rts signal on serial open and buad rate change

    * add missing space in baud rate array

    * Quick fix for Intellisense (#1144)

    * add hardware tool path

    * intellisense quick fix

    * add hardware tool path

    * intellisense quick fix

    * fix typo

    * pre release v0.3.4-rc2

    * bump to v0.3.4

    * Option to use arduino-cli instead of Arduino IDE (#1017)

    * Hardcoded Arduino-CLI commands for build and upload

    * Added menu checkbox for Arduino CLI

    - Upload with programmer is still not supported
    - Must be created an arduino symlink pointing to arduino-cli

    * If Arduino-CLI, check for arduino-cli instead of arduino.

    Not yet supported on Windows or MacOS

    * Typo

    * Fixed CI requests

    * Fixed CI requests

    * Update src/common/sys/darwin.ts

    MacOS patch for arduino-cli

    Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>

    * Update src/common/sys/win32.ts

    Windows patch for arduino-cli

    Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>

    * Trigger

    * add cli option in commandPath for win32

    * add cli support to board and lib managers

    * rename isArduinoCli to useArduinoCli

    * adds support for uploading using programmer

    * simplify getProgrammer

    * add CLI upload

    * Update src/arduino/arduino.ts

    Co-authored-by: Jason Tranchida <jtranchida@gmail.com>

    * refactor uploadUsingProgrammer

    * fix output path for CLI upload

    * Update package.json

    * update cli option text, thanks @maddogjt

    * update tests

    Co-authored-by: giuliof <giulio@marchtop.localdomain>
    Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>
    Co-authored-by: Adi Azulay <adazulay@microsoft.com>
    Co-authored-by: Adi Azulay <azulayadi@gmail.com>
    Co-authored-by: Jason Tranchida <jtranchida@gmail.com>

    * Improved handling of programmer selection

    - Selected programmer is now saved to and loaded from the arduino.json file
    - Arduino.json is monitored for changes, and changing file will update selected programmer & ui
    - Programmer selection UI now shows both the friendly name of the programmer, as well as the arduino name
    - Minor fix to deviceContexts to fire change events after all states are modified
    - Layed groundwork to support querying list of programmers for the current board from arduino toolchain

    * add cli suppport for programmers

    * add documentation

    Co-authored-by: Marc Goodner <robotdad@users.noreply.github.com>
    Co-authored-by: Adi Azulay <adazulay@microsoft.com>
    Co-authored-by: Giulio <giulio@glgprograms.it>
    Co-authored-by: giuliof <giulio@marchtop.localdomain>
    Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>
    Co-authored-by: Adi Azulay <azulayadi@gmail.com>

commit ae0ebd4
Author: Giulio <giulio@glgprograms.it>
Date:   Tue Dec 8 00:41:05 2020 +0100

    Option to use arduino-cli instead of Arduino IDE (#1017)

    * Hardcoded Arduino-CLI commands for build and upload

    * Added menu checkbox for Arduino CLI

    - Upload with programmer is still not supported
    - Must be created an arduino symlink pointing to arduino-cli

    * If Arduino-CLI, check for arduino-cli instead of arduino.

    Not yet supported on Windows or MacOS

    * Typo

    * Fixed CI requests

    * Fixed CI requests

    * Update src/common/sys/darwin.ts

    MacOS patch for arduino-cli

    Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>

    * Update src/common/sys/win32.ts

    Windows patch for arduino-cli

    Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>

    * Trigger

    * add cli option in commandPath for win32

    * add cli support to board and lib managers

    * rename isArduinoCli to useArduinoCli

    * adds support for uploading using programmer

    * simplify getProgrammer

    * add CLI upload

    * Update src/arduino/arduino.ts

    Co-authored-by: Jason Tranchida <jtranchida@gmail.com>

    * refactor uploadUsingProgrammer

    * fix output path for CLI upload

    * Update package.json

    * update cli option text, thanks @maddogjt

    * update tests

    Co-authored-by: giuliof <giulio@marchtop.localdomain>
    Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>
    Co-authored-by: Adi Azulay <adazulay@microsoft.com>
    Co-authored-by: Adi Azulay <azulayadi@gmail.com>
    Co-authored-by: Jason Tranchida <jtranchida@gmail.com>
adiazulay added a commit that referenced this issue Apr 20, 2021
* Option to use arduino-cli instead of Arduino IDE (#1017)

* Hardcoded Arduino-CLI commands for build and upload

* Added menu checkbox for Arduino CLI

- Upload with programmer is still not supported
- Must be created an arduino symlink pointing to arduino-cli

* If Arduino-CLI, check for arduino-cli instead of arduino.

Not yet supported on Windows or MacOS

* Typo

* Fixed CI requests

* Fixed CI requests

* Update src/common/sys/darwin.ts

MacOS patch for arduino-cli

Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>

* Update src/common/sys/win32.ts

Windows patch for arduino-cli

Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>

* Trigger

* add cli option in commandPath for win32

* add cli support to board and lib managers

* rename isArduinoCli to useArduinoCli

* adds support for uploading using programmer

* simplify getProgrammer

* add CLI upload

* Update src/arduino/arduino.ts

Co-authored-by: Jason Tranchida <jtranchida@gmail.com>

* refactor uploadUsingProgrammer

* fix output path for CLI upload

* Update package.json

* update cli option text, thanks @maddogjt

* update tests

Co-authored-by: giuliof <giulio@marchtop.localdomain>
Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>
Co-authored-by: Adi Azulay <adazulay@microsoft.com>
Co-authored-by: Adi Azulay <azulayadi@gmail.com>
Co-authored-by: Jason Tranchida <jtranchida@gmail.com>

* Improved handling of programmer selection (#1118)

* Improved handling of programmer selection

- Selected programmer is now saved to and loaded from the arduino.json file
- Arduino.json is monitored for changes, and changing file will update selected programmer & ui
- Programmer selection UI now shows both the friendly name of the programmer, as well as the arduino name
- Minor fix to deviceContexts to fire change events after all states are modified
- Layed groundwork to support querying list of programmers for the current board from arduino toolchain

* fix dtr on serial open

* fix dtr on serial open

* fix linting

* pre release v0.3.4

* Add RTS signal on serial open, Add baudrates up to 2000000 (#1142)

* add buad rates up to 2M

* add rts signal on serial open and buad rate change

* add missing space in baud rate array

* Quick fix for Intellisense (#1144)

* add hardware tool path

* intellisense quick fix

* add hardware tool path

* intellisense quick fix

* fix typo

* pre release v0.3.4-rc2

* bump to v0.3.4

* Option to use arduino-cli instead of Arduino IDE (#1017)

* Hardcoded Arduino-CLI commands for build and upload

* Added menu checkbox for Arduino CLI

- Upload with programmer is still not supported
- Must be created an arduino symlink pointing to arduino-cli

* If Arduino-CLI, check for arduino-cli instead of arduino.

Not yet supported on Windows or MacOS

* Typo

* Fixed CI requests

* Fixed CI requests

* Update src/common/sys/darwin.ts

MacOS patch for arduino-cli

Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>

* Update src/common/sys/win32.ts

Windows patch for arduino-cli

Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>

* Trigger

* add cli option in commandPath for win32

* add cli support to board and lib managers

* rename isArduinoCli to useArduinoCli

* adds support for uploading using programmer

* simplify getProgrammer

* add CLI upload

* Update src/arduino/arduino.ts

Co-authored-by: Jason Tranchida <jtranchida@gmail.com>

* refactor uploadUsingProgrammer

* fix output path for CLI upload

* Update package.json

* update cli option text, thanks @maddogjt

* update tests

Co-authored-by: giuliof <giulio@marchtop.localdomain>
Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>
Co-authored-by: Adi Azulay <adazulay@microsoft.com>
Co-authored-by: Adi Azulay <azulayadi@gmail.com>
Co-authored-by: Jason Tranchida <jtranchida@gmail.com>

* Improved handling of programmer selection

- Selected programmer is now saved to and loaded from the arduino.json file
- Arduino.json is monitored for changes, and changing file will update selected programmer & ui
- Programmer selection UI now shows both the friendly name of the programmer, as well as the arduino name
- Minor fix to deviceContexts to fire change events after all states are modified
- Layed groundwork to support querying list of programmers for the current board from arduino toolchain

* add cli suppport for programmers

* add documentation

Co-authored-by: Marc Goodner <robotdad@users.noreply.github.com>
Co-authored-by: Adi Azulay <adazulay@microsoft.com>
Co-authored-by: Giulio <giulio@glgprograms.it>
Co-authored-by: giuliof <giulio@marchtop.localdomain>
Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>
Co-authored-by: Adi Azulay <azulayadi@gmail.com>

* Fixed misspelled function name

* Fixed spelling.

* Fix @Property

* Add missing return values

* Removed unused import

* Branch for the implementation of the automagical IntelliSense configuration

* Update documentation

* More documentation on this project
* Tried to identify most of the tasks
* Added beer money support option

* More documentation update

* More investigations and documentation, especially on intrinsic/built-in compiler header include paths

* Added IntelliSense compiler parsing engine code

* Added IntelliSense compiler parsing engine code
* First injection of the compiler command parser and IntelliSense auto-configuration. Currently injected into "verify" only.
* Updated branch documentation to reflect the current state of this project

* Improved line splitting of built-in include parser after commenting on a pull request :)

* Pre-build command updates

* Moved pre-build command into separate member function to reduce code replication, better maintainablility and readability
* Added pre-build command to "upload using programmer" since it was (probably unintentional) missing there

* Documentation updates

* Notes regarding settings
* Notes where to run the auto-generation

* IntelliSense on/off configuration and compiler parser injection preparation

* Added a global configuration switch which allows the IntelliSense auto-configuration to be turned off
* Prepared the compiler parser code to be injected into "upload" and "upload using programmer" without overhead
* Updated branch documentation

* Added two more TODOs to branch documentation

* Added even more TODOs to branch documentation

* Moved TODO in branch documentation

* Documenting ...

* Moved compiler parser to cocopa package for better testability and maintainability

* Updated earned 🍻

* Added IntelliSense setup auto-generation project (sketch-context) configuration flag which can override the global flag

* Try to generate IntelliSense configuration even when the compilation fails

* Incorporated the latest progress from cocopa development

* Fix issue 771

* Fixes the line splitting regex as outlined in #771
* Removed a redundand condition

* Fix regression and improve regex matching

* Fixed regression introduced with adaptions to latest version of cocopa
* Made compile command regex match more stringent

* Notes about serial monitor

* Added more serial monitor ideas from [John Lonergan](#463 (comment))
* Added some ideas how to implement a better serial monitor

* Moved arduino specifics from cocopa to vscode-arduino

* Merge c_cpp_properties results with existing configuration

* More unit testing within cocopa.
* Implemented c_cpp_properties merging -> compiler analysis results are merged into existing configuration and will preserve configurations of different name than the vscode-studio default configuration name (currently "Arduino"). This opens up the possibility for users to write their own configurations without having to disable the autogeneration.
* Implemented "write on change" - `c_cpp_properties.json` will only be written if a new configuration has been detected.

* Minor documentation rub

* Moved intellisense function to a separate file

* Added instructions how to run development code

* More on beta testing, added link to chat room

* Note how to run vscode without having gulp on your user path

* Updated beer money log

* Updated branch notes -- documented changes not committed though.

* Rename Logger to logger

* Rename verifyResult to success

* Move args variable till top of upload, uploadUsingProgrammer and verify

* Introduce verbose variable

* Unify util.spawn invocation

* Unify exit error message

* Add cleanup expression

* Add selectSerial expression

* Inline and move appPath later

* Move arg buildup earlier in functions

* Move selectProgrammer down

* Spelling correction

* Add buildMode argument to upload and uploadUsingProgrammer

* Make upload and uploadUsingProgrammer identical

* Merge upload and uploadUsingProgrammer into one build function

* Add buildMode argument to verify

* Add stdoutCallback expression

* Rename output to buildDir

* Use cocopa and add Analyze build mode

* Make build return boolean

* Make build and verify identical

* Merge build and verify

* Add arduino.rebuildIntelliSenseConfig

* Fix whitespace

* Disabled and marked all previous implementations of IntelliSense support for later removal using `IS-REMOVE`

* Updated project log

* Don't use hard coded paths when possible.

* New classes which will improve the device settings management and event handling. To be integrated with one of the next commits.

* Updated log and issues

* Added/documented all known related issues
* Updated log
* Updated and extended status
* General brushing of structure and text

* Updated project log and status

* Updated and completed documentation of the current state within README.md

* Updated project log and status

* IntelliSense auto-analysis integration

* Reworked DeviceContext for fine grained event generation on settings change
* Added dedicated settings classes which allows for the latter
* Changed board manager and serial monitor to used the new fine grained events instead of the "something changed event" - which makes the code marginally more efficient
* Implemented an analysis manager which takes care of analysis requests generated by settings change events and makes sure that analysis builds don't interfere with regular builds
* Adapted the build infrastructure within ArduinoApp such that it allows for the above
* Removed the global build guard and moved it to ArduinoApp (there is a corner case though for programmer selection within extension.ts which I marked with a TODO
* Fixed some linting issues but did not lint most of the stuff committed here - this will be part of a later commit
* I left notes here and there where I saw things which should/could be improved/changed
* Removed the try/catch guards from the build invocations within extension.ts since exceptions are handled within the build function itself
* Changed the project setting parameter for the IntelliSense setup to reflect its workings better

* Updated log and beers.

* Added "some" additional issues -- currently I've found 28!

* Updated log, status and beers

* Removed obsolete doc folder as all this is now part of cocopa

* Fixed handling of invalid manual configurations. Improved code locality for board configuration manipulation and fixed a race condition with fine grained event handling. Details:

Added missing checks when board configurations are loaded from the configuration file:
* Up to now vscode-arduino blindly loaded any board configuration from `arduino.json` even if this would result in invalid board configurations which in turn lead to compilation (verify, upload) failure.
* Up to now this state couldn't be recovered by simply removing the offending configuration from the configuration file. Even worse: it stored the wrong configuration in between board changes.

To reproduce the bug in 0.2.29

1. Select Arduino Nano with the *Arduino Board Configuration*
2. Set configuration in `arduino.json` to `cpu=cray2` and save
3. Verify -> fails
4. Switch board to Arduino Uno
5. Switch back to Arduino Nano: The wrong configuration is back and now the user can't even select another (correct) configuration from the *Arduino Board Configuration* window
6. Delete the wrong configuration and save -> verify still fails

`vscode-arduino` does not fall back to a default configuration. The user has now two options: find the correct configuration by himself and set it within arduino.json. Very experienced users could probably accomplish that. Everone else can just restart vscode.

I corrected that by enhancing IBoard.loadConfig and IBoard.updateConfig member functions to
* check for proper formatting of the config string loaded from `arduino.json`
* check if the configuration IDs and the option IDs are valid

If any of the above fails, the functions bail out and return the error. The board manager then loads a default configuration and issues a warning, that the configuration is invalid. This way the user gets the chance to fix her/his configuration but gets informed at the same time, that a different configuration than the intended is loaded (prevents surprises).

This situation is only relevant, when users start fiddling with the configuration values in `arduino.json`. As long as they just set the board and the configurations from within the *Arduino Board Configuration Window* nothing bad can happen. But now custom configurations are handled in a cleaner way.

The DeviceContext's board configuration was set in board.ts and boardManager.ts in different places - even when it was loaded after a DeviceContext's configuration update event which is prone to infinite loops. This has been resolved and it's not re-written/re-set during loading a configuration on change.

This is valid for board manager's updateStatusBar function which fiddled with the board and the configuration. Now updateStatusBar really just updates the status bar. And it isn't necessary to call it from outside the board manager anymore due to proper event handling which identifies the situations during which the status bar has to be updated. Therefore this member is now private.

In board manager itself operations that affect device context and current board now happen only within doChangeBoardType and the event handlers of DeviceContext callbacks onDeviceContextConfigurationChange and onDeviceContextBoardChange. This prevents the accidental creation of infinite event loops, makes the code more understandable, maintainable and therefore resilient against future bugs.

* Updated log and beers

* Updated to latest cocopa which features X-platform support and better lexer

* IntelliSense config generator

* Now normalizes generated include paths
* Bumped cocopa to 0.0.9

* Updated log

* Updated branch log and beers

* Forceinclude Arduino.h

* Added message to end of each build to inform user how to update the IntelliSense configuration
* The magic now searches all identified include paths for the Arduino core include file (aka Arduino.h) and adds it as forced include - most users expect Arduino core functionality to work without having to include this header. Added typed-promisify to dependencies since I made use of it in the new code for better readability.
* Conclude is now asynchronous
* Updated branch status and added new future task
* Bumped cocopa version to 0.0.10

* Updated log and beers

* Updated cocopa to version 0.0.12

* Implemented and tested support for `.cpp`-sketches.
* Done implementing the most relevant unit tests in cocopa.
* Two independent alpha testers confirmed proper working of the previous alpha releases.
* Updated to the latest revision of cocopa.

* Removed IS-REMOVE code

* Removed code marked with `IS-REMOVE` previously
* Added constant for the `c_cpp_properties.json`-configuration managed by vscode-arduino
* Removed code rendered dead by the previous removal

* Reworked util.spawn to mergable version

* Added/reviewed some notes

* Changed Serial.updatePortListStatus to make use of optional argument to eliminate updatePortListStatus(null) calls

* Refined some documentation comment

* Updated log

* Final pull request dependency style for cocopa

* Updated beers

* Added link to alpha releases to top of document

* Run IntelliSense analysis for every build

* Run IntelliSense analysis for every build
* Added global enum for log level

* Build/analysis logging improvements

* Fixed bug in board.ts: Conceptual flaw when checking if configuration option is valid

* Fixed exception which occurs if one of the include directories doesn't exists and we try to search it for Arduino.h

* Filter out invalid include directories

* Filtering out invalid include directories (discovered when compiling for ESP8266)
* Compacted IntelliSense message and hint to manual build into a single line

* Make upload verbosity be conditional and extend filtering

* Building always verbosely but upload only verbosely when requested
* Filtering of spurious messages now with regex list and for all platforms

* Collapsing multiple consecutive newlines into a single newline for non verbose build log

* IntelliSense auto gen respected global and project specific dis-/enable flags for analyze only. Now these flags have the same effect during regular builds.

* Added post build command support

* Added post build command support
* Added validator for both pre and post build (former was missing)
Yet to be decided: Solution for analysis run: with or without pre/post build?
Addresses #786

* C++ standard is now parsed from compiler arguments

Plus: Moved some methods to cocopa and got rid of the typed-promisify dependency

* Section which outlines additional features this branch addresses

* Logging and post-build commands

* Error logging for exceptions during build cleanup
* Compacted log message filter regexes
* Moved pre-build command after initialization of the output folder in case this command somehow wants to operate on it somehow
* Better error message handling when post-build command fails
* Forwarding post-build command error

* Pre-/post-build command improvements

* Full bash syntax support for pre-/post-build commands on UNIX systems
* Environment variables for pre-/post-build commands which give the user access to several build process parameters like the sketch, the output directory, serial port, build mode (verify, upload, analyze, ...), board type and workspace path
Addresses #786

* Full cmd support for pre-/post-build commands on Windows
Addresses #786

* Documentation for pre-/post-build commands and their environment variables

* Updated log, status and beers

* Fix too early initialization of cocopa

* Fixed bug with build: initializing cocopa too early (was failing if sketch wasn't initialized)
* More info in error message for uncaught exception during build cleanup
* Note on output path preparation which seems to be a bit wonky

* Support for Arduino preferences in `arduino.json`. These preferences are applied during any build and can be used to set custom compiler flags and defines for instance.
Addresses #975

* Add and document buildPreferences setting

* Validator for `buildPreferences`
* Documentation for `buildPreferences`

* Fixed security issue

* Web-server for library-, board-manager etc. was not listening on localhost but on the machine's main interface
* Web-server wasn't launched asynchronously what can cause problems
* Port was stored redundantly in webserver class
Addresses #966

* Updated log, additional stuff and beers

* Move the _build to the end and make private

* Consolidate all boardDescriptor argument pushing

* Remove compile argument and expand BuildMode with CliUpload and CliUploadProgrammer

* Reverse and merge tests

* Replace "upload" with "compile --upload"

* Join args.push statements

* Remove arrow-head anti-pattern

* add support for cli

* fix cli analyze mode

* fix verbose setting and cli programmer upload

* remove redundant prebuild check

* update travis

* fix missing "

* Populate the list of programmers by parsing programmers.txt for each package (#1129)

* Improved handling of programmer selection

- Selected programmer is now saved to and loaded from the arduino.json file
- Arduino.json is monitored for changes, and changing file will update selected programmer & ui
- Programmer selection UI now shows both the friendly name of the programmer, as well as the arduino name
- Minor fix to deviceContexts to fire change events after all states are modified
- Layed groundwork to support querying list of programmers for the current board from arduino toolchain

* Parse the list of programmers from packages

* Tests for parsing programmers

* Show board specific list of programmers when selecting

Populate the selected programmer and it's display name using list of programmers provided by BoardManager.  When selecting programmer, only present the user a list of programmers relevant to the current board.

* Initial set of tests for ProgrammerManager

* add support for cli

* fix hardcoded package name for programmers

* adds programmer.key back to support arduino IDE

* fix handeling of programmer name in ide and cli

Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* Bump ini from 1.3.5 to 1.3.8 (#1159)

Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](npm/ini@v1.3.5...v1.3.8)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* remove IntelliSense Auto branch notes

* remove -MMD from complier args for intellisesne (#1208)

* Squashed commit of the following:

commit 57c8d2d
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Mon Mar 22 13:00:21 2021 -0700

    update changelog

commit 6e65997
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Mon Mar 22 12:49:56 2021 -0700

    bump to v0.4.0

commit 6d63a01
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Tue Mar 9 08:54:05 2021 -0800

    update version

commit ed886ad
Merge: 6ecfc55 9ca2400
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Mon Mar 8 14:01:55 2021 -0800

    Merge branch 'develop' into pre-release-v0.4.0

commit 6ecfc55
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 18 11:27:45 2021 -0800

    update version in package

commit 1126581
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 18 11:07:59 2021 -0800

    update readme

commit 5571e52
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 18 10:52:24 2021 -0800

    update package-lock

commit 0b60f1f
Merge: e044711 e97bad8
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 18 09:59:26 2021 -0800

    Merge branch 'master' into pre-release-v0.4.0

commit e97bad8
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 18 09:56:05 2021 -0800

    bump to v0.3.5 (#1196)

    * update usb native

    * update changelog

    * fix ref tag for publishing

    * fix ref tag for publishing

    * change build to check version env var

    * fix version spelling

    * add {} to if in publish

    * change version check to regex

    * fix formatting

    * change to multiline run

    * add echo for ISPRODUCTION

    * add missing s to outputs

    * remove debugging echo

commit e044711
Merge: 739aa95 5f4c400
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 4 14:32:52 2021 -0800

    Merge branch 'develop' of https://github.com/microsoft/vscode-arduino into pre-release-v0.4.0

commit 739aa95
Author: Adi Azulay <adazulay@microsoft.com>
Date:   Thu Feb 4 14:21:55 2021 -0800

    pre release v0.4.0

* Quick pick selection of sketch files (#1128)

* Quick pick selection of sketch files

- Replace arduino.setSketchFile command with new arduino.selectSketch command which presents the user with a quick select containing all of the sketch files in the workspace.
- Add "Arduino: Select Sketch" to the command palette
- When picking sketches, filter out hardware, library, and build folders that may be under the workspace

* Fix incorrect slash on library exclude pattern

Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* Corrected typo from Ardiuno to Arduino. (#1191)

Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* Fix arduinoPath resolution on MacOS (#1227)

* Fix arduinoPath resolution in MacOS.

The `resolveMacArduinoAppPath` utility was automatically adding "Arduino.app" to the resolved `arduinoPath` regardless of whether `useAndroidCli` was enabled.

This was breaking installations of `arduino-cli` made through Homebrew. The path to the command ends up being either `/usr/local/bin/arduino-cli` or `/opt/homebrew/bin/arduino-cli`. This function would resolve an `arduinoPath` of `/opt/homebrew/bin` to `/opt/homebrew/bin/Arduino.app/arduino-cli`.

Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* Bump y18n from 3.2.1 to 3.2.2 (#1219)

Bumps [y18n](https://github.com/yargs/y18n) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* Fix confusion about IDE breaking changes (#1229)

Closed issue #994 (and presumably others) indicate that the confusing version text referring to 1.8.7 will be corrected, but that never happened.  This PR attempts to improve the text to correct the issue.

Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* Fix typos in CHANGELOG.md (#1226)

Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* Fix typos in README.md (#1225)

Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* Bump y18n from 4.0.0 to 4.0.1 in /src/views (#1220)

Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* Bump elliptic from 6.5.3 to 6.5.4 (#1212)

Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](indutny/elliptic@v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* Bump elliptic from 6.5.3 to 6.5.4 in /src/views (#1210)

Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](indutny/elliptic@v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adi Azulay <adazulay@microsoft.com>

* add usbcon macro to config (#1231)

* add ai key to deploy (#1236)

* Bump to v0.4.1 (#1238)

* pre-release v0.4.1-rc1

* pre-release v0.4.1-rc2

* update version

* bump to v0.4.1

Co-authored-by: Giulio <giulio@glgprograms.it>
Co-authored-by: giuliof <giulio@marchtop.localdomain>
Co-authored-by: Marc Lage-Vianna <MarcLV@users.noreply.github.com>
Co-authored-by: Jason Tranchida <jtranchida@gmail.com>
Co-authored-by: Marc Goodner <robotdad@users.noreply.github.com>
Co-authored-by: Uli Franke <hoi@elektronikworkshop.ch>
Co-authored-by: Håkon Løvdal <kode@denkule.no>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cameron Bielstein <CTBielstein@gmail.com>
Co-authored-by: Adam Michel <adam@amichel.me>
Co-authored-by: mikebaz <github@bazstuff.com>
Co-authored-by: jogo- <jogo@laposte.net>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

4 participants