Adding mwlib

Only python modules for a while.

Does this build locally for you. Travis error seems legit for me:
File "setup.py", line 11, in <module>
execfile('mwlib/_extversion.py')  # adds 'version' to local namespace
NameError: name 'execfile' is not defined

Apparently some libraries require python 2: mwlib-ext, pyparsing1, qserve, sqlite3dbm. You may want to set disabled = isPy3k in their derivations.

$ nix-env  -f ~/nixpkgs -i python2.7-mwlib works fine. Python 3 is not supported.

Thank @vbgl, updated.


Fix the stance phase machinery

This PR should fix the stance phase machinery in the walking module.  In theory, the PR fixes https://github.com/robotology/walking-controllers/issues/66

https://github.com/robotology/walking-controllers/commit/aa03967036475e705f2afa3e4b1d4a32d843ee6d fixes the bug spot by @S-Dafarra in https://github.com/robotology/walking-controllers/issues/66#issuecomment-683747596
https://github.com/robotology/walking-controllers/commit/578f87da62c0a0be2efbcef118366a6b781a428d advances the m_isStancePhase trajectory as described in https://github.com/robotology/walking-controllers/issues/66#issuecomment-694719465

Note: before merging it should be tested on iCub

Merging


added businger unstable params

Purpose

The parameters in the Businger stability functions are hardcoded in the unstable regime. To fix this, I add them as parameters.
Content

Added b_m and b_h parameters to the toml dict of default parameters which represent the parameters of the stability functions for momentum and heat under unstable conditions. Their default values are given by 15 and 9 respectively, which are the same as those in Businger et al 1971.

[ x ] I have read and checked the items on the review checklist.

Thanks @nefrathenrici

bors r+


Update overview-office-cloud-policy-service.md

We'll be including this information in an upcoming update to the article. Closing.


Modernize NoOp CipherExecutor factory API

In particular, hide the concrete NoOpCipherExecutor class behind package-private access level and introduce strongly typed factory methods for it in CipherExecutor interface itself, taking advantage of Java8+ interface static methods.
If the question arises what is the advantage of this? - it's just cleaner API with clear encapsulation following modern API design patterns. That is all ;-)
This pattern of hiding concrete implementation classes and factory methods on interfaces could be applied throughout CAS code base where appropriate.

This is perfectly good with me. Thanks Dima.


Pin mutant gem

Mutant has changed license in v0.9 which makes things a bit more complicated. Pinning mutant to less than v0.9 for now.

Hi,
Mutant author here. Can you contact me back, ideally use the email you can find in mutants gemspec or my GH profile? I was always trying to reach out to your team, as you appear to be one of the larger public mutant users out there. I'd love to be able to learn about your use case.
Also I'm curious if I could convince you to go with the "more complicated" mutant license since 0.9. Mutant is adding more features and stability recently. With your input I may be able to improve the tool to the degree I can win your team as mutant customers.
Cheers,
Markus

@zaparka, @AlexaVSmith I just saw that this repository is MIT licensed, this means you can have a free mutant license to use > 0.9 the only thing I need is a contact email address. Feel free to contact me on interest.


Integrating an RPM spec file - versioning?

As mentioned in https://github.com/google/google-authenticator/issues/517#issuecomment-140988496 a proper spec file would potentially be integrated.
However, one of the problems I have at the moment is that the version is a fix part of the spec file and as long as there are no new proper releases it's kinda hard to integrate any kind of version based on git-sha1 as it would change each time.
So I could add a specfile with the current tested version and then periodically add a new release. Another option would be that if you have some kind of automated release scripts I could hook them into there.
But I'm a bit unsure how to procede here and what would you like.
But in the end, if you are fine by just adding the specfile without any special magic, I could do this as well.

How would this specfile work? By currently tested version, do you mean sha1, or most recent release? What would happen if someone downloads HEAD and makes an RPM, then?
I think unless you want to make a release script it may be easier to not use magic.

At the moment I'm matching the source at a specific snapshot of a commit: https://github.com/duritong/google-authenticator-srpm/blob/master/SPECS/google-authenticator.spec#L2
Either someone would change it or otherwise the build would happen against that hardcoded commit.

Could you have it match against a named version number / git tag?

a git tag that is, say, google-authenticator-libpam-X.Y.

I think this would be fine, as long as I can match it to a URL on github, this is fine.

+1.  I'd like to see this as I was about to undertake it myself.

Also hosting pre-built RPMs on BinTray or PackageCloud would be great.

I'm trying to package this awesome library for alpine linux to incorporate it in a docker image and version numbers (matching github tags) would be great.
Could you please tag and release some of them? In this way it would be easier to upgrade and to follow development.
Thanks.

Pull request has come in. After merging that I'll check for previous release procedures and do one. Due to my travel schedule this may be delayed weeks though.

https://github.com/google/google-authenticator/blob/master/libpam/contrib/README.rpm.md

I was wondering can this be closed now? If not what additional work needs to be done?

There are aspects of versioning and package building that I'm not familiar with. Are all the concerns on that in the top most comment addressed?

sorry for not coming back earlier, but this looks gtm, at least at the moment.


OrientDB isn't doing short-circuit evaluation

I'm getting much worse results with simple query like this:
select from table1
where link.value = 'somevalue'
and 'othervalue' in linkset.deep.expensive.nested.relationship.value

Than with this:
select from (
  select from table1
  where link.value = 'somevalue'
) where 'othervalue' in linkset.deep.expensive.nested.relationship.value

I should get similar performances if, as soon as the first condition fails (is false), the second one does not need to be evaluated (and traversed)
Also, when using a condition with "IN" as in the example, we could stop traversing as soon as the condition is met, but given the performance I'm getting, I think it's evaluating everything (and traversing) and then checking if the condition matches.
BTW, I get the same performance wether I use "'othervalue' in linkset.deep.expensive.nested.relationship.value" or "linkset.deep.expensive.nested.relationship.value contains 'othervalue'"

Are you running these micro-benchmarks form console or studio? if yes, assure you have the same limits. Try these:
select from table1
where link.value = 'somevalue'
and 'othervalue' in linkset.deep.expensive.nested.relationship.value
limit -1

Than with this:
select from (
  select from table1
  where link.value = 'somevalue' limit -1
) where 'othervalue' in linkset.deep.expensive.nested.relationship.value limit -1

Hi @lvca
I just tried that with similar results.
Also if I change the order of conditions in the 'where' clause in the first example, I get the exact same performance.

I see you are using Document API. If you switch to GraphAPI the fastest way to do this is lookup one (or more) vertices and the start traversing. Example:
select in('deep').in('expensive').in('nested').in('relationship')
from table33
where  'othervalue' in value

In this way you lookup the value (end of the cain of your example) and you go back.

Thanks for looking into this.
However the purpose was to be able to get fast responses without having to fine-tune individual queries.
That's the role of a query planner/optimizer in RDMS.
What I suspect is that, rather than not doing short-circuit-evalution as I initially thought, OrientDB lacks an advanced Query Planner.
For our purposes, which is a typical RDBMS scenario with some JSON in the mix, even though doing joins is O(log n) and not O(1) as you imply, we got better performance in every benchmark we made, using PostgreSQL.
So, I'm afraid we will no be using OrientDB at this moment.
I'll keep an aye in the project though.
Best regards

fixed in develop branch, will be released in 2.1 GA


See if we can install knife on client on all platforms / add test

See if we can install the client onto all platforms and add a test to ensure we don't break that by accident again.
fixes: https://github.com/chef/customer-bugs/issues/473

@tas50 i believe we can start with remediating the knife gem install failure on Win2012. additionally, we'll assume tests need to be in place to check knife installs successfully on all supported platforms?

We did this


super-user-spark: <IP_ADDRESS> -> <IP_ADDRESS>

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Waiting for CI to see if this works. if there is CI ... Not sure how to build this locally.

This doesn't seem to build because genvalidity-path is marked as broken.
How can I find out why that's broken?

Also: how would I test building this?

@GrahamcOfBorg build super-user-spark

Thanks for this PR! I think you forgot to update the git revision, shouldn't it be:
  src = fetchgit {
    url = "https://github.com/NorfairKing/super-user-spark";
    sha256 = "1gszgh27vngn5qn8grncc95l8bwrllw5xwawzh6ssrn73wa527ks";
    rev = "17e00e60ee93c2edc71388764922c63f6f941367";
  };

?
Also, after that update, I get an error:
src/SuperUserSpark/OptParse.hs:28:27: error:
    • Couldn't match expected type ‘Options.Applicative.Types.Backtracking’
                  with actual type ‘Bool’
    • In the ‘prefBacktrack’ field of a record
      In the expression:
        ParserPrefs
          {prefMultiSuffix = "", prefDisambiguate = True,
           prefShowHelpOnError = True, prefShowHelpOnEmpty = True,
           prefBacktrack = True, prefColumns = 80}
      In an equation for ‘prefs_’:
          prefs_
            = ParserPrefs
                {prefMultiSuffix = "", prefDisambiguate = True,
                 prefShowHelpOnError = True, prefShowHelpOnEmpty = True,
                 prefBacktrack = True, prefColumns = 80}
   |
28 |         , prefBacktrack = True
   |                           ^^^^

I think is because of optparse-applicative version

@jlesquembre Thanks! I'll fix that. How do you test whether this works?

To test it locally:
nix-build "<nixpkgs>" -A super-user-spark

We can also use GrahamcOfBorg bot after you push your changes. You can see the output here:
https://logs.nix.ci/?key=nixos/nixpkgs.78790&attempt_id=424e298b-4f41-45a9-a985-aa245aaba5cf
To find that link, go to the checks tab, at the bottom, there is a View more details on OfBorg link

No longer maintaining super-user-spark. Use home-manager.


OTP 21 compile jesse failed

===> Compiling _build/default/lib/jesse/src/jesse_tests_util.erl failed
_build/default/lib/jesse/src/jesse_tests_util.erl:96: erlang:get_stacktrace/0: deprecated; use the new try/catch syntax for retrieving the stack backtrace
In rebar.config:
{jesse, {git, "https://github.com/aeternity/jesse.git", {ref, "4640ad1"}}}, %% Tag 1.5.0-rc2 with workaround for unexported http_uri:uri() type.

I understand you share workaround to other users.
We don't officially support OTP 21 yet, so even if it compile and runs, it's not tests for issues.

have the same issue, how to solve?

===> Compiling mnesia_rocksdb
_build/default/lib/mnesia_rocksdb/src/mnesia_rocksdb.erl:437: Warning: erlang:get_stacktrace/0: deprecated; use the new try/catch syntax for retrieving the stack backtrace
===> Compiling goldrush
===> Compiling lager
===> Compiling jsx
===> Compiling jobs
===> Compiling rfc3339
===> Compiling jesse
===> Compiling _build/default/lib/jesse/src/jesse_tests_util.erl failed
_build/default/lib/jesse/src/jesse_tests_util.erl:96: erlang:get_stacktrace/0: deprecated; use the new try/catch syntax for retrieving the stack backtrace
make: *** [internal-build] Error 1
[zwilla@ae-node2 epoch-1.0.0-rc2]$ make
===> Skipping jsx (from {git,"git://github.com/talentdeficit/jsx.git",
{tag,"2.8.0"}}) as an app of the same name has already been fetched
===> Compiling jesse
===> Compiling _build/default/plugins/jesse/src/jesse_tests_util.erl failed
_build/default/plugins/jesse/src/jesse_tests_util.erl:96: erlang:get_stacktrace/0: deprecated; use the new try/catch syntax for retrieving the stack backtrace
===> Plugin {swagger_endpoints,
{git,"https://github.com/aeternity/swagger_endpoints",
{tag,"0.2.1"}}} not available. It will not be used.
===> Skipping jsx (from {git,"git://github.com/talentdeficit/jsx.git",
{tag,"2.8.0"}}) as an app of the same name has already been fetched
===> Compiling jesse
===> Compiling _build/default/plugins/jesse/src/jesse_tests_util.erl failed
_build/default/plugins/jesse/src/jesse_tests_util.erl:96: erlang:get_stacktrace/0: deprecated; use the new try/catch syntax for retrieving the stack backtrace
===> Plugin {swagger_endpoints,
{git,"https://github.com/aeternity/swagger_endpoints",
{tag,"0.2.1"}}} not available. It will not be used.
===> Skipping jsx (from {git,"git://github.com/talentdeficit/jsx.git",
{tag,"2.8.0"}}) as an app of the same name has already been fetched
===> Compiling jesse
===> Compiling _build/default/plugins/jesse/src/jesse_tests_util.erl failed
_build/default/plugins/jesse/src/jesse_tests_util.erl:96: erlang:get_stacktrace/0: deprecated; use the new try/catch syntax for retrieving the stack backtrace
===> Plugin {swagger_endpoints,
{git,"https://github.com/aeternity/swagger_endpoints",
{tag,"0.2.1"}}} not available. It will not be used.
===> Verifying dependencies...
===> Compiling jesse
===> Compiling _build/default/lib/jesse/src/jesse_tests_util.erl failed
_build/default/lib/jesse/src/jesse_tests_util.erl:96: erlang:get_stacktrace/0: deprecated; use the new try/catch syntax for retrieving the stack backtrace
make: *** [internal-build] Error 1


Fix malformed sitemap.xml view

This generated a corrupt sitemap.xml in our setup which in turn caused Google to ignore the whole sitemap :(

thanks!


Overshooting

I don't know why but this is a thing with Osu! apparently. Overshooting is when the end point of a slider is further away than the actual slider end. Gotta fix that I guess

Fixed


feature request: PlatformIO

Hi,
nowerdays PlatformIO is my tool of choice over the Arduino IDE.
Will it be possible to use esp32partitiontool with PlatformIO in the future?
Thanks.

@jankoscharf
Hi there.
There is possibility for it to work externally or be integrated as tool in PlaltformIO environment, the execution and file management would have to be rewritten in that case.
Please suggest how will that work since I'm not familiar with it. How does it work where is the esp32 sdk located and so on.
Making it work externally as jar application would be easiest without integration to any IDE or platform, you would just provide the esp32 sdk tools folder.  As I said  if you have info you could share that could help feel free to do so, but without any information on how PlatformioIO does things with esp32 I'm afraid I can't start working on this idea.

I have never worked with java nor am I familiar with vscode extensions (which PlatformIO also is one). Maybe this helps a little: https://code.visualstudio.com/docs/java/extensions
I think the "ESP-IDF" extension installation process defines the location where the esp32 sdk is located.

What framework are you using in PlatformIO? I'm trying it out right now with Arduino framework to see how it does stuff.

Yes, Arduino framework. I like to use the Arduino third party libs.

Sure I will look into this maybe I can make it work with Arduino framework inside PlatformIO maybe as external jar I don't think I can integrate as tool as I did in Arduino IDE unless you have resources for that.

Sadly no. I would have to start at zero. IMHO a standalone app would be an option I think. As far as I know java is perfectly flexible to run on all the important platforms. I use Linux only...

Yes even this tool runs on any platform haven't tried mac bc I don't have it. But yes I think external jar you can execute would work. All you need to do is provide  esp32 sdk folder so it can use tools for creating partitions.bin file spiffs and merge commands. You would have to have python3 as well. First step would be to get UI to work as external app then add functionally back to the UI.

Platformio will use a *.csv partition file located in a project source tree which is configured in the platformio.ini:
[env:esp32]
platform = espressif32
board = <YOUR ESP32 BOARD>
framework = arduino

board_build.partitions  = MY_PARTITION_FILE.csv

So one can keep the partition file to use in the source tree, no need to install in the espressif path explicitly.

Platformio will use a *.csv partition file located in a project source tree which is configured in the platformio.ini:
[env:esp32]
platform = espressif32
board = <YOUR ESP32 BOARD>
framework = arduino

board_build.partitions  = MY_PARTITION_FILE.csv

So one can keep the partition file to use in the source tree, no need to install in the espressif path explicitly.

I'm talking about esp32 sdk tools directory. We need tools (esptool partition gen tool spiffs tool etc) to create output files. But thanks for the tip about csv location. So far I got UI to be standalone and im trying out python command to see if it can execute without any IDE There will be a console output window so you can see whats going on

So far I got UI to be standalone

nice! I tried to do that without success, how did you manage?

So far I got UI to be standalone

nice! I tried to do that without success, how did you manage?

I'm doing it from ground up. The main issues were loading of csv file & updating the ui with that data and resources images. I added the resources images to src dir as well as making it load default csv content for now. Load and save thing i removed(I removed all code from fileManager I'm adding stuff back as I go)

I was able to get python to work on windows at least next is log output and will try to create partitions.bin for test.

As for python we will use the one provided with platformio most users have global python installed but I won't ask users to have it so we will use already included one in this dir for windows %HOMEPATH%.platformio\python3 linux ~/.platformio/python3

Configuration complexity is increased with platformio.ini, the applet will need to work with a config extractor and get the paths from an argument list.
The best pick in order to have platformio to collaborate with java (e.g. provide additional paths to src, sdk and build folders) is to use the platformio config api from a python script that is referenced in the ini file.
The python script runs after library resolving and before compiling the sketch, and makes it possible to insert a modal call the java applet with argument values collected from python.
platformio.ini
[env:ESP32PartitionTool]
extra_scripts = ESP32PartitionTool.py

ESP32PartitionTool.py
Import('env')
from os.path import join, realpath
import subprocess

board = env.BoardConfig()
build_core       = board.get("build.core", "").lower()
partition        = board.get("build.partitions")
build_variant    = board.get("build.variant")

print( "****************************************************" )
print( "Build Core    = " + build_core )
print( "Partition     = " + partition )
print( "Build Variant = " + build_variant )
print( "****************************************************" )

command = 'java -cp "/path1:/path2" -jar "/path/to/ESP32PartitionTool.jar" "' + partition + '"'
return_code = subprocess.call(command, shell=True)

Configuration complexity is increased with platformio.ini, the applet will need to work with a config extractor and get the paths from an argument list.
The best pick in order to have platformio to collaborate with java (e.g. provide additional paths to src, sdk and build folders) is to use the platformio config api from a python script that is referenced in the ini file.
The python script runs after library resolving and before compiling the sketch, and makes it possible to insert a modal call the java applet with argument values collected from python.
platformio.ini
[env:ESP32PartitionTool]
extra_scripts = ESP32PartitionTool.py

ESP32PartitionTool.py
Import('env')
import subprocess

class_path       = "/path1:/path2"
jar_path         = "/path/to/ESP32PartitionTool.jar"
board            = env.BoardConfig()
build_core       = board.get("build.core", "").lower()
partition        = board.get("build.partitions")
build_variant    = board.get("build.variant")

print( "****************************************************" )
print( "Build Core    = " + build_core )
print( "Partition     = " + partition )
print( "Build Variant = " + build_variant )
print( "****************************************************" )

command_format = 'java -cp "%s" -jar "%s" "%s" "%s" "%s"'
command = command_format % (class_path, jar_path, partition, build_variant, build_core)

print (command)

return_code = subprocess.call(command, shell=True)

I'm going to create a initial commit in the new branch , if you want to contribute to this as well you can do a pr in that branch. I will set some basics to get started but later on board type and bootloader offests for sppifs and merge upload commands would need to be implemented.

I will set some basics to get started but later on board type and bootloader offests for sppifs and merge upload commands would need to be implemented.

SPIFFS/createBin/mergeBin buttons won't be needed since the applet will be called in the middle of a platformio build flow where the next step is to create said binaries.
Those buttons only make sense with Arduino IDE, because the Sketch Data Upload in not a standard Arduino IDE tool and requires another java plugin, but platformio already handles the data upload with the uploafs target flag.

Oh I see well. I will commit what I got now. Some basics done for starters, both linux and windows  scripts produce runnable jar. We will go from there I guess.

both linux and windows scripts produce runnable jar

can you either confirm java -jar /path/to/ESP32PartitionTool.jar is enough to run the app or provide an example of the necessary command line?
I can see the new standalone branch but I don't see any changes for the standalone version there, so there's not much I can do.

both linux and windows scripts produce runnable jar

can you either confirm java -jar /path/to/ESP32PartitionTool.jar is enough to run the app or provide an example of the necessary command line?
I can see the new standalone branch but I don't see any changes for the standalone version there, so there's not much I can do.

I deleted that branch and created new one with better name. The changes I've made are live. Yes after building it with build.sh you can run it in output folder java -jar jar name.jar

thanks, I already got some results by turning the repository into a platformio package
{
  "name": "tool-esp32partitiontool",
  "version": "1.4.0",
  "description": "Partition utility gui (requires java) to create custom partition table",
  "keywords": ["tools","build tools","filesystem"],
  "license": "MIT",
  "system": ["linux_x86_64"],
  "repository": {"type": "git","url": "https://github.com/serifpersia/esp32partitiontool"}
}

However platformio always uses the main branch or the latest release and this will eventually collide with Arduino-IDE context, so I wonder how those build variants will be maintained in the future.
If both versions could coexist in the same codebase it would prevent dissociation and reduce the workload.
Real world example: if the next natural thing to do with a popular app is to translate the GUI (implementing l10n), you don't want to integrate twice every translatable label.

Should the platformio project move to new repo then?

Should the platformio project move to new repo then?

I don't like this idea, it means two projects to maintain, the tech debt is depressing.
I'm researching a way to have both versions to coexist, added two java files InputArduino.java and InputPlatformio.java with a duplicate class name:
package com.serifpersia.esp32partitiontool;

final class AppSettings {
  public AppSettings() {
  }
}

then I can use one of these shell scripts to build for platformio or arduino without getting the duplicate class error:
compile jar for platformio
# Find Java files and exclude InputArduino.java, write to 'class' file
find src/main/java/com/serifpersia/esp32partitiontool -type f \( ! -iname "InputArduino.java" \) > class
# Call the compiler and specify the 'class' file instead of source folder
javac -Xlint -d "$bin_folder" @class

compile jar for arduino
# Find Java files and exclude InputPlatformio.java, write to 'class' file
find src/main/java/com/serifpersia/esp32partitiontool -type f \( ! -iname "InputPlatformio.java" \) > class
# Call the compiler and specify the 'class' file instead of source folder
javac -Xlint -d "$bin_folder" @class

it's probably possible with windows too, found an example on SO but can't test it:
@echo off
for %%i in (src/main/java/com/serifpersia/esp32partitiontool/*.java) do if /i not "%%~i" == "InputArduino.java" javac "%%~i"

finally found a project layout that allows me to create both Tool-implementation and standalone jar files.

I still don't have a clear idea of what was removed from the arduino version, so I'll just try to restore it to what is strictly necessary for both scenarios, which means I'll probably get rid of the redundant SPIFFS/mergeBin/createBin features that platformio/arduino tools already handle.
I observed are a few minor problems with the standalone version rendering though: some text elements (buttons, labels, combos) are using bold font, text in the setup window becomes truncated.

And the help window has a duplicate decoration :rofl:

@jankoscharf before going further I'd be happy to have your feedback on that temporary(*) implementation, it requires to create a new python file in the project folder and add a new environment in platformio.ini; obviously it also requires java.
(*) The url to the platform_packages zip file is pointing to a test release on my fork, and that fork will eventually be deleted after the code is merged.
platformio.ini
[env:build-partition]
platform               = espressif32
board                  = esp32dev
extra_scripts          = partition_manager.py
platform_packages      = tool-esp32partitiontool @ https://github.com/tobozo/esp32partitiontool/releases/download/v1.4.1/esp32partitiontool-platformio.zip

partition_manager.py
Import('env')
import os.path
import sys

# add esp32partitiontool to path
sys.path.append(os.path.abspath( env.PioPlatform().get_package_dir("tool-esp32partitiontool") ))
# import module
from esp32partitiontool import *
# run module
load_pm(env)

I implemented it on my machine and it works! Great to see!
I would like to recommend https://docs.platformio.org/en/latest/scripting/custom_targets.html#command-shortcut
This will give you a "Custom" menu entry in your "Project Tasks" where you can run the script.
The way it is integrated at the moment will be annoying very fast because you have to close the esp32partitiontool window every time you compile/upload.

@jankoscharf awesome tip, thanks!
I've updated the test package as per your suggestion, the custom target name is edit_partition
pio run -e build-partition -t edit_partition

I'm not sure if I'm doing something wrong or the script .py is not working well on windows but whenever I select the build-partition env i get errors and i cant seem to run the edit_partition task

I'm using your hello world example with changes to board and memory size and pointing to default.csv file
Here is my log:
[platformio]
src_dir                 = src
default_envs            = hello-world

[env]
framework               = arduino
platform                = espressif32
board                   = esp32s2dev
board_build.partitions  = partitions/default.csv
board_upload.flash_size = 4MB

[env:hello-world]
upload_speed            = 1500000
monitor_speed           = 115200

[env:build-partition]
extra_scripts          = partition_manager.py
; platform_packages      = tool-esp32partitiontool
platform_packages      = tool-esp32partitiontool @ https://github.com/tobozo/esp32partitiontool/releases/download/v1.4.1/esp32partitiontool-platformio.zip

task edit_partition not being available in vscode is a consequence of the python script error
looks like env.PioPlatform().get_package_dir("tool-esp32partitiontool") returned None, which is strange since the tool appears to be installed twice:
Tool Manager<EMAIL_ADDRESS>has been installed!

I've created a new test release with incremented version number (v1.4.2) and updated example, I hope this one will register better in vscode 🤞
The python script has been updated in the example, and the URL to the plugin has changed accordingly in platformio.ini:
https://github.com/tobozo/esp32partitiontool/releases/download/v1.4.2/esp32partitiontool-platformio.zip

I've tested an even simpler ini file, package and target registration are hoisted to the top environment, so that the edit_partition target can be used against any environment:
[platformio]
src_dir                 = src
default_envs            = hello-world

[env]
framework               = arduino
platform                = espressif32
board                   = esp32dev
; register the "tool-esp32partitiontool" package
platform_packages       = tool-esp32partitiontool @ https://github.com/tobozo/esp32partitiontool/releases/download/v1.4.2/esp32partitiontool-platformio.zip
; register the "edit_partition" target
extra_scripts           = partition_manager.py

[env:hello-world]
board_build.partitions  = partitions/defaultcsv
board_upload.flash_size = 4MB
upload_speed            = 1500000
monitor_speed           = 115200

I managed to get it working only with the manual method I had to modifiy py script for my platform windows instead of linux and i was able to use the esp32partition task
[platformio]
src_dir                 = src
default_envs            = hello-world

[env]
framework = arduino
platform = espressif32
board = esp32dev
; register the "tool-esp32partitiontool" package
;platform_packages       = tool-esp32partitiontool @ https://github.com/tobozo/esp32partitiontool/releases/download/v1.4.2/esp32partitiontool-platformio.zip
; register the "edit_partition" target
platform_packages      = tool-esp32partitiontool
extra_scripts           = partition_manager.py

[env:hello-world]
board_build.partitions  = partitions/default.csv
board_upload.flash_size = 4MB
upload_speed            = 1500000
monitor_speed           = 115200

{
  "name": "tool-esp32partitiontool",
  "version": "1.4.2",
  "description": "Partition utility gui (requires java) to create custom partition table",
  "keywords": ["tools","build tools","filesystem"],
  "license": "MIT",
  "system": ["windows_amd64"],
  "repository": {"type": "git","url": "https://github.com/serifpersia/esp32partitiontool"}
}

@tobozo  I managed to make it work the only change was to version release and removal of system parameter in json I made a test release and directed it to that url and it worked

I have modifyied create_platformio_package.sh to overwrite the version value in package.json according to the tag name before creating the archive, so keep in mind the name of the tag you'll create from the release page before publishing a new release is very important, it must be semver compliant and have a version number superior to the last version (e.g current version is 1.4.4 and next version should be 1.4.5)

@tobozo  Could you look into why does it fail at this task. I'm not able to create auto release. Both package.json version 1.4.5 matches with the tag I give it but it fails. For some reason it deleted the 1.3 release as well...
Run softprops/action-gh-release@v2
with:
files: /home/runner/work/esp32partitiontool/esp32partitiontool/archives/**
token: ***

⚠ Unexpected error fetching GitHub release for tag refs/tags/v1.4.5: HttpError: Resource not accessible by integration
Error: Resource not accessible by integration

1.4 looks in a good shape :+1:
what's for the next iteration?

fix platformio design (help window still strange and bold coming out of nowhere)
automate pio pkb publish to get the package in platformio registry, also it simplifies the platformio.ini (no more URL needed, version selection possible)
restore arduino-specific buttons/panels

I'm closing this as complete, tested both tools in both platforms and no issues. I had issues with versioning it didn't like x.x hs to be x.x.x for it to work as well as arduino zip has  to be specific casings idk why that should matter. With x.x versioning it was using old build from 10/03  and not zip from the release but doing 1.4.0 fixed that.
For Arduino specific things a new button will be next to help/about to open a dialog there the spiffs and merge tooling will reside.
Once again nice job @tobozo  I wouldn't have done it as tool integration like you did instead standalone app you execute out side of your IDE of choice.


Added Type Hints for dilated shapelets #1910

What does this implement/fix? Explain your changes.
I have added type hints for function variables and return values as described in issue #1910

Could you please let me know the reasons for the failure of the tests? @aiwalter

I recommend checking where the pytests failed. For example, I browsed some of the pytests and saw an error in the "compute_shapelete_dist_vector" method. "distanceCPUDispatcher" probably is an error?
def compute_shapelet_dist_vector(
X_subs: np.ndarray, values: np.ndarray, length: int, distanceCPUDispatcher
):

Sorry I should have been tagged for this file, seems i'm not on maintainer list for this one. If you need any further help with the PR instead of closing it don't hesitate


Avoid Grunt waiting for data on stdin (hangs gulp)

Nevermind, the problem persists even by ignoring stdio.


ADD snippets for script includes

Snippets for methods in script includes would be really helpful.

added in #177


Mock Not Returning Expected Results

Taking my first stab at mocking today. I'm writing unit tests for a function in a module, and the mock command doesn't return anything when calling the mocked function within the module scope. The mock command does return the expected value when calling the mocked function within the test script scope.
Issue is similar to #issue204 (https://github.com/pester/Pester/issues/204), which still has an open status.
Anyone aware of a fix or a workaround for this?
To be more specific, I have a module with a private function. The private function calls the Test-Connection command, and this is the command I am trying to mock. I can successfully mock Test-Connection when calling it within the test script scope. But the mock yields a null value when calling Test-Connection within the module scope.
Thanks guys!

#issue204 contained a reference to another issue, https://github.com/pester/Pester/issues/311, which offered a suitable workaround -- and that is to use InModuleScope{}
In my case, I was using InModuleScope.  However, I was defining my mocks within the It block, and that was causing the mock to fail within the module scope. I moved the mock definition up one level underneath the context block, and that fixed.


fullybrowser 1.0.3

RE-CHECK!

Automated adapter checker
ioBroker.fullybrowser

[ ] :heavy_exclamation_mark: [E145] No news found for actual version 1.0.3
[ ] :heavy_exclamation_mark: [E301] Tests on Travis-ci.com are broken. Please fix.

Add comment "RE-CHECK!" to start check anew

@arteck news missing?

RE-CHECK!

Automated adapter checker
ioBroker.fullybrowser

:thumbsup: No errors found
Add comment "RE-CHECK!" to start check anew


Memberships API is non-functional

Based on the documentation here, either a POST http://jellyfish-core-build.dpi.bah.com/api/v1/projects/4/groups/1 OR POST http://jellyfish-core-build.dpi.bah.com/api/v1/projects/4/groups?group_id=1 , where "4" is the project id (that exists) and "1" is a group id (that exists), should add a group to the specified project.
However, both of these methods return 500.
Additionally, there does not appear to be a web-based interface to this, nor are there any groups shown for a project in the web interface.
Finally, the documentation is incorrect as it displays differing methods for accomplishing this task.

The documentation was incorrect and the example appears to also be from an early run.
Make your POST request to api/v1/projects/:project_id/groups with a payload of {group_id: ...} and the membership will be created and the new object returned to you.
Group membership UI is in development.


Fix/disable quivr workers

Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context.
Checklist before requesting a review
Please delete options that are not relevant.

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my code
[ ] I have commented hard-to-understand areas
[ ] I have ideally added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged

Screenshots (if appropriate):

Disable deployment of quivr workers from github workflows.


feat: use stdin instead of sgx temp file

Does gramine have some limitations on handling the stdin? For file we need to config the manifest, here it seems free to use stdin/out??


SMTP/IMAP password is stripped when testing the configuration

Checklist

[X] I have used the search function to see if someone else has already submitted the same bug report.
[X] I will describe the problem with as much detail as possible.

App
K-9 Mail
App version
6.804
Where did you get the app from?
F-Droid
Android version
11 (Official OxygenOS 11.0.16)
Device model
one plus nord N10 5G
Steps to reproduce

Go in Settings
tap the user account
Sending mail
Outgoing server
FIll account info, with a password ending with a space character
Tap Next

Expected behavior
The password is sent as written in the field, without stripping the ending space character.
Actual behavior
The password is stripped before sending it to the server. Thus provoking auth failure and preventing to finish the setup.
Since I'm the email server admin, I set the server to debug mode and observed that the password is really lacking the last space character when sent by the test done at "checking outgoing server settings" time.
I could reproduce this behavior with the incoming server settings.
If the password was already configured in the past (years ago in this case), it's working fine, it is not stripped while being sent to the server.
Logs
k9mail-redacted.log
I set up a test account to reproduce the issue.
In the SMTP trace, we can see that the AUTH PLAIN AHVzZXIAcGFzc3dvcmQ= decodes to userpassword and not userpassword  (with ending space) as it should.

Duplicate of #7774

Please allow to skip that check/assistant as it was before.
The UX choice is very sensible, no problem with that, and it's great!
At the very time the assistant check is running, it can fail from numerous reasons, even if it's bug-free, bad user [keyboards] inputs can happen, but a lot of others things(network, other smartphone stuff, ...) can, so many that are not on [y]our hands.
Very please, re-add a way to the bypass the forced assistant, as it was in k9 before, and also with thunderbird on desktop.
Even if it's an obscure check box in an advanced settings menu or whatever, any other path, that do not interfere with the clean UX assistant pattern, no problem!
Just any way where the assistant is not the only, strict, and final decision :pray:


Generated client: embed generated methods into VMIM interface

What this PR does
Before this PR:
We have our custom virtualMachineInstanceMigrationInterface interface with the common Get, Delete, etc...
From https://github.com/kubevirt/kubevirt/pull/11297 the common methods implementation works as a wrapper with different signatures for the generated ones, redirecting the requests to them.
After this PR:
Convert using the generated client signatures instead of the custom one. The generated virtualMachineInstanceMigrationInterface  is embedded into our custom one, also providing new DeleteCollection and Watch methods.
The changes inherited are:

Patch and PatchStatus now use metav1.PatchOptions{} instead of *metav1.PatchOptions{}.
List now uses metav1.ListOptions{} instead of *metav1.ListOptions{}.
Get now uses metav1.GetOptions{} instead of *metav1.GetOptions{}.
Delete now uses metav1.DeleteOptions{} instead of *metav1.DeleteOptions{}.
Create now receives metav1.CreateOptions{} too.
Update and UpdateStatus now receive metav1.UpdateOptions{} too.
Added DeleteCollection, Watch methods.
All the methods above take a  Context as first paramether.

Fixes #
Why we need it and why it was done in this way
The following tradeoffs were made:
The following alternatives were considered:
Links to places where the discussion took place:
Special notes for your reviewer
For an easier review process the commits was splitted in the following manner:

Align our custom common methods' signature to the generated one in the following order:

Create - introduced CreateOptions and introduced a Context
Get - used GetOptions instead of the pointer and introduced a Context
List - used ListOptions instead of the pointer and introduced a Context
Update - introduced UpdateOptions and introduced a Context
Delete - used DeleteOptions instead of the pointer and introduced a Context
Patch and PatchStatus - used PatchOptions instead of the pointer and introduced a Context
UpdateStatus - introduced UpdateOptions and introduced a Context

Embed the generated VirtualMachineInstanceMigrationInterface into the custom one.

Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] ~Design: A design document was considered and is present (link) or not required~
[x] PR: The PR description is expressive enough and will help future contributors
[x] Code: Write code that humans can understand and Keep it simple
[x] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[x] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[ ] ~Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test~
[ ] ~Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.~
[ ] ~Community: Announcement to kubevirt-dev was considered~

Release note

NONE

/hold
let's wait for https://github.com/kubevirt/kubevirt/pull/11523 to reduce conflicts.
/test all

/unhold
https://github.com/kubevirt/kubevirt/pull/11523 was merged

/cc @xpivarc @orelmisan @Barakmor1

@orelmisan Thank you! Addressed your comments. PTAL

@orelmisan Rebased because there were some conflicts in pkg/virt-controller/watch/drain/evacuation/evacuation_test.go PTAL

/retest-required

/retest-required


Use NPM Token When Publishing Docs

@vigoo
We no longer use individual GitHub pages for each project, so I removed publishing docs to GitHub pages.
A mistake I made in my previous PR was omitting the NPM token, which I have now fixed.


face mesh scenario_app not working

Hi,
We used the Seeed Grove Vision AI Module V2 and followed your instructions to set up the face mesh scenario_app project, but it seems there is a problem with camera streaming.

Hi @103061634
Please make sure your camera is plugged at the right direction. You can reference following video.
https://wiki.seeedstudio.com/grove_vision_ai_v2/#connecting-to-a-csi-interface-camera

@103061634
Or make sure the camera connection in the picture below is firmly pressed.

Hi Kris,
Thank you for your response. After checking, we found that the issue was with the camera, which is now functioning normally.
On the other hand, I would like to ask how to convert ticks into milliseconds. After tracing the code, the conversion may be "tick / (SystemCoreClock / 1000)" by "himax-we2/ei_classifier_porting.cpp". Is this correct?

@103061634 ,
You can reference here.
https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2/blob/main/EPII_CM55M_APP_S/app/scenario_app/tflm_yolov8_od/cvapp_yolov8n_ob.cpp#L603
the result of following code should be convert to second
uint32_t  result_tick = (loop_cnt_2-loop_cnt_1)*CPU_CLK+(systick_1-systick_2)

then let
The unit of this value (result_tick / 400000000) is second.

Hi Kris,
thanks a lot!


Get all media library assets that are actually used in content

Hello,
We've had our Twill instance running in production for several months, and our Media Library is getting clogged up with images that aren't actually referenced from any of our content. What is the best way to get a list of all media library assets that are actually used? Either via SQL, tinker, or the Admin UI?
Thanks!
nikhil

Hey @nikhiltri, indeed! But we actually have a lot of very nice updates in the mix that I'm sure you're going to like a lot :)
I do have a quick insight. Soft deleted and deleted records are the issue here. The mediables table keeps referencing them which means you'd have to write a pretty complex manual SQL query to get this in one go considering the amount of tables you have. Eloquent should help though.
But in the end this should be on Twill to take care of at least when force deleted, as I assume some developers most likely setup a scheduled artisan command to clean them up.
A force delete action on the trashed records and an empty trash action would definitely be nice features for the CMS UI which I'm going to tackle as soon as possible unless someone else want to jump in :)

Hey @ifox,
Circling back to this question, here's what we came up with. It looks at all models that we've configured to have media, and all blocks on all content, and pulls out the images associated with each. Of the 5,000 images we have in our media library, this command pulls out about 3,500. That still seems high, but perhaps that's accurate.
        $medias = [];
        collect([
            \App\Models\Article::class,
            \App\Models\Page::class,
            ...
            \A17\Twill\Models\Block::class,
        ])->map(function($model) {
            $table = with(new $model)->getTable();
            $query = $model::whereHas('medias');
            if (\Schema::hasColumn($table, 'published')) {
                $query->published();
            }
            if (\Schema::hasColumn($table, 'deleted_at')) {
                $query->whereNull('deleted_at');
            }
            return $query->with('medias');
        })->map(function($query) use (&$medias) {
            return $query->chunk(100, function($items) use (&$medias) {
                foreach ($items as $item) {
                    $medias[] = $item->medias->map(function($media) {
                        return [
                            (string) $media->id => $media->alt_text
                        ];
                    })->all();
                }
            });
        });

        // Combine all the medias together
        $medias = array_merge(...$medias);

        // Collapse the array while preserving numeric keys
        $medias = array_reduce($medias, function ($carry, $item) { return $carry + $item; }, []);

        // At this point, everything should be deduped, since it's keyed by id
        $out = [];

        // Prep for str_putcsv()
        foreach ($medias as $id => $alt_text) {
            $out[] = [
                'id' => $id,
                'alt_text' => $alt_text,
                // TODO: Add Imgix link!
            ];
        }

Thanks!
nikhil


is_countable conflict with PHP 7.3

https://wiki.php.net/rfc/is-countable
PHP 7.3 includes a function called is_countable that conflicts with the function in the CI inflection_helper.php it serves a different purpose as the former checks for whether the input can be assessed by count() and the latter whether the string input is grammatically countable for countable.
Happy to help resolve this but I'm pretty new to contributing.

How would you propose to resolve it?

I think the only option would be to rename it in CI.   Something like is_countable_noun()

Indeed, renaming is the only option. I was qurious why you cited inexperience, as you can't do this on your own anyway - there's decisions to be taken, docs to be written and updated, etc.
I'd go with word_is_countable() though. Sound better?

Sounds fine.  More inexperience with contributing.  Thought it quite likely that a fix was already progressing but I'd not found it.

@jim-parry You ok with my suggestion here? It's always going to be a BC break, there's no easy way around it.

@narfbg I am fine with that


BREAKING: Update to Gatsby 5

Updates the starters to use Gatsby 5 and newer features.

[x] Switch to the latest version on the day of the release
[x] Use Slices
[x] Use Head APIs for SEO components

We don't want to enable partial hydration in the starters so you can scratch that from the TODOs

Wouldn't https://github.com/gatsbyjs/homepage-starters/tree/main/themes also need an update to latest versions?

Wouldn't https://github.com/gatsbyjs/homepage-starters/tree/main/themes also need an update to latest versions?

I'd consider deprecating these – no one is actively maintaining these themes and there's virtually no usage. Would require a little bit of cleanup in the docs, but it's probably worth the effort


Linear Search C++(STL)

#192
Searches for an element in an array with O(N) Time complexity

pull request merged, now close the issue :)
follow for more
note- only 2 pr are accepted per day on a same repo


feat(world): deployment salt by msg.sender

Fixes #1850

do we need to regenerate test data after this change?

do we need to regenerate test data after this change?

It might not be strictly necessary (if nothing relies on addresses) but I'll do it anyway


Update eslint/babel-eslint

Since the previous issue with 2.3.x was fixed,
"eslint": "2.2.x",
"babel-eslint": "^4.1.8", // can be update to v6

└─┬<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>

PR in https://github.com/kittens/kcheck/issues/3


Room member not displayed immediately when a user joins the room, requires refreshing the room member page

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to the “New room” section
Enter room name and select userA workspace
Select visibility to “Public” and click on “Create room”
Go to the room Details
Share code > Copy URL to clipboard
Leave the room settings page open (can be any part of it, like share code, or room members, etc.)
Open other browser and login with userB account
Join the room by pasting URL
Now go back to the userA and navigate to room member page (if not already there).

Expected Result:
When a user joins a room, all room members should be shown without the need to manually refresh the room member page
Actual Result:
All room members are not shown immediately when a user joins the room. The room member page needs to be manually refreshed to all room members (if the room settings page was open at the time the new user joined the room).
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.34-1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/1f37b6c3-deb3-45b3-b5cd-1468161b177c
https://github.com/Expensify/App/assets/43996225/f16b65a9-2da9-415f-ba66-32f6502a5cff
Expensify/Expensify Issue URL:
Issue reported by: @ayazhussain79
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1687811735971269
View all open jobs on GitHub

I can't reproduce this on my end.
https://github.com/Expensify/App/assets/54866469/ca5d0192-324f-4931-924d-427fcb901ae2

Discussing here.

@joekaufmanexpensify Now member displayed without refreshing page but userA who created room removed from the member page
steps:

Create a new workspace
Then go to the “New room” section
Enter room name and select userA workspace
Select visibility to “Public” and click on “Create room”
Go to the room Details
Share code > Copy URL to clipboard
Go to the Details > Members
Open other browser and login with userB account
Join the room by pasting URL
Now go back to the userA room member page

https://github.com/Expensify/App/assets/56740856/b69419ca-eac6-41a4-a5d7-a66a21fa32c3

Not overdue.

Okay, I can reproduce now, and updated OP. This bug is reproducible when the room settings (any part of like, like share code, room members, etc.) is left open in userA, when userB joins. If the room settings is not open in userA's account when userB joins, the bug does not occur. This is fairly niche, but we should still fix it.
https://github.com/Expensify/App/assets/54866469/4f30a41f-1779-44c9-8cfd-1272ad9e0b92

Ah cool. I agree this does look like a dupe, and am thinking we should close. Does that sound good @mananjadhav ?

Cool cool. Closing as a dupe of the above issue!

@joekaufmanexpensify @mananjadhav  this https://github.com/Expensify/App/issues/21931#issuecomment-1615210962 bug still reproducible even this bug is closed https://github.com/Expensify/App/issues/20761

Thanks for raising! I commented about this in the slack thread, but I think the correct course of action is still to leave this as closed, as we recently decided not to treat these "dynamically updated" issues as bugs.


[Bug?]:Error: Hydration Mismatch in SSR mode

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯
The appstate is persisted in localStorage. I wrap it in createRoot, and check its value when mount. If the initial value of appstate differs from the value stored in localStorage, it causes an error.
Test ok in SPA mode.
function NavItemWithChildren(props: NavItemType) {
  const [appstate] = useAppState()

  return (
    <Show when={appstate.isNavOpen} fallback={<FloatingMode />}>
      <CollapseMode />
    </Show>
  )
}

Expected behavior 🤔
No response
Steps to reproduce 🕹
Steps:

Context 🔦
No response
Your environment 🌎
No response

the error is expected when using storage, using onMount or initialize it in entry-client.tsx after mount.


change: allow to build in galactic

Hey Josh,
Thanks for all your tutorials, they've been really good. I am currently trying to use CommanderAPI and had to upgrade to Galactic. I ran into a few compatibility issues and have attempted to fix it. It's now building on my end but I won't be able to test it properly until I've fixed the remaining issues in the rest of my code.
First time ever using C++ so probably needs a bit of tidying up/fixing. Hopefully it's able to help anyone else hitting the same problem to at least get started.
I mostly followed what was in these links:

https://github.com/ros-controls/ros2_control_demos/blob/master/ros2_control_demo_hardware/src/diffbot_system.cpp
https://github.com/ros-controls/ros2_control_demos/blob/master/ros2_control_demo_hardware/include/ros2_control_demo_hardware/diffbot_system.hpp
https://control.ros.org/master/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.html

Update: Just wanted to add that I've now got everything else working and this seems to be working for me. Feel free to ping me if you have any issues (or if I've missed checking in any files).

I tried the following "minimal build" on a Ubuntu 22.04 machine with only ROS2 Humble installed:
sudo apt install ros-humble-ros2-control

mkdir -p ~/plucky_wsB/src
cd ~/plucky_wsB/src
git clone https://github.com/Buzzology/diffdrive_arduino.git
git clone https://github.com/joshnewans/serial.git
colcon build

It produced a lot of strange errors. Adding "rclcpp_lifecycle" to dependencies in CMakefile didn't help. Any ideas? Thanks!
======================

Starting >>> serial
Finished <<< serial [0.19s]
Starting >>> diffdrive_arduino
--- stderr: diffdrive_arduino
In file included from /home/sergei/plucky_wsB/src/diffdrive_arduino/src/fake_robot.cpp:1:
/home/sergei/plucky_wsB/src/diffdrive_arduino/include/diffdrive_arduino/fake_robot.h:35:15: error: ‘hardware_interface::return_type FakeRobot::read()’ marked ‘override’, but does not override
   35 |   return_type read() override;
      |               ^~~~
/home/sergei/plucky_wsB/src/diffdrive_arduino/include/diffdrive_arduino/fake_robot.h:37:15: error: ‘hardware_interface::return_type FakeRobot::write()’ marked ‘override’, but does not override
   37 |   return_type write() override;
      |               ^~~~~
/home/sergei/plucky_wsB/src/diffdrive_arduino/src/fake_robot.cpp:13:1: error: ‘CallbackReturn’ does not name a type
   13 | CallbackReturn FakeRobot::on_init(const hardware_interface::HardwareInfo & info)
      | ^~~~~~~~~~~~~~
/home/sergei/plucky_wsB/src/diffdrive_arduino/src/fake_robot.cpp:67:1: error: ‘CallbackReturn’ does not name a type
   67 | CallbackReturn FakeRobot::on_activate(const rclcpp_lifecycle::State & /*previous_state*/)
      | ^~~~~~~~~~~~~~
/home/sergei/plucky_wsB/src/diffdrive_arduino/src/fake_robot.cpp:74:1: error: ‘CallbackReturn’ does not name a type
   74 | CallbackReturn FakeRobot::on_deactivate(const rclcpp_lifecycle::State & /*previous_state*/)
      | ^~~~~~~~~~~~~~
In file included from /home/sergei/plucky_wsB/src/diffdrive_arduino/src/diffdrive_arduino.cpp:1:
/home/sergei/plucky_wsB/src/diffdrive_arduino/include/diffdrive_arduino/diffdrive_arduino.h:36:15: error: ‘hardware_interface::return_type DiffDriveArduino::read()’ marked ‘override’, but does not override
   36 |   return_type read() override;
      |               ^~~~
/home/sergei/plucky_wsB/src/diffdrive_arduino/include/diffdrive_arduino/diffdrive_arduino.h:38:15: error: ‘hardware_interface::return_type DiffDriveArduino::write()’ marked ‘override’, but does not override
   38 |   return_type write() override;
      |               ^~~~~
/home/sergei/plucky_wsB/src/diffdrive_arduino/src/diffdrive_arduino.cpp:13:1: error: ‘CallbackReturn’ does not name a type
   13 | CallbackReturn DiffDriveArduino::on_init(const hardware_interface::HardwareInfo & info)
      | ^~~~~~~~~~~~~~
/home/sergei/plucky_wsB/src/diffdrive_arduino/src/diffdrive_arduino.cpp:71:1: error: ‘CallbackReturn’ does not name a type
   71 | CallbackReturn DiffDriveArduino::on_activate(const rclcpp_lifecycle::State & /*previous_state*/)
      | ^~~~~~~~~~~~~~
/home/sergei/plucky_wsB/src/diffdrive_arduino/src/diffdrive_arduino.cpp:83:1: error: ‘CallbackReturn’ does not name a type
   83 | CallbackReturn DiffDriveArduino::on_deactivate(const rclcpp_lifecycle::State & /*previous_state*/)
      | ^~~~~~~~~~~~~~
In file included from /opt/ros/humble/include/class_loader/class_loader/class_loader_core.hpp:57,
                 from /opt/ros/humble/include/class_loader/class_loader/class_loader.hpp:55,
                 from /opt/ros/humble/include/pluginlib/pluginlib/class_list_macros.hpp:40,
                 from /home/sergei/plucky_wsB/src/diffdrive_arduino/src/fake_robot.cpp:116:
/opt/ros/humble/include/class_loader/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = FakeRobot; B = hardware_interface::SystemInterface]’:
/opt/ros/humble/include/class_loader/class_loader/meta_object.hpp:216:7:   required from here
/opt/ros/humble/include/class_loader/class_loader/meta_object.hpp:218:12: error: invalid new-expression of abstract class type ‘FakeRobot’
  218 |     return new C;
      |            ^~~~~
In file included from /home/sergei/plucky_wsB/src/diffdrive_arduino/src/fake_robot.cpp:1:
/home/sergei/plucky_wsB/src/diffdrive_arduino/include/diffdrive_arduino/fake_robot.h:18:7: note:   because the following virtual functions are pure within ‘FakeRobot’:
   18 | class FakeRobot : public hardware_interface::SystemInterface
      |       ^~~~~~~~~
In file included from /home/sergei/plucky_wsB/src/diffdrive_arduino/include/diffdrive_arduino/fake_robot.h:7,
                 from /home/sergei/plucky_wsB/src/diffdrive_arduino/src/fake_robot.cpp:1:
/opt/ros/humble/include/hardware_interface/system_interface.hpp:173:23: note:     ‘virtual hardware_interface::return_type hardware_interface::SystemInterface::read(const rclcpp::Time&, const rclcpp::Duration&)’
  173 |   virtual return_type read(const rclcpp::Time & time, const rclcpp::Duration & period) = 0;
      |                       ^~~~
/opt/ros/humble/include/hardware_interface/system_interface.hpp:184:23: note:     ‘virtual hardware_interface::return_type hardware_interface::SystemInterface::write(const rclcpp::Time&, const rclcpp::Duration&)’
  184 |   virtual return_type write(const rclcpp::Time & time, const rclcpp::Duration & period) = 0;
      |                       ^~~~~
In file included from /opt/ros/humble/include/class_loader/class_loader/class_loader_core.hpp:57,
                 from /opt/ros/humble/include/class_loader/class_loader/class_loader.hpp:55,
                 from /opt/ros/humble/include/pluginlib/pluginlib/class_list_macros.hpp:40,
                 from /home/sergei/plucky_wsB/src/diffdrive_arduino/src/diffdrive_arduino.cpp:145:
/opt/ros/humble/include/class_loader/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = DiffDriveArduino; B = hardware_interface::SystemInterface]’:
/opt/ros/humble/include/class_loader/class_loader/meta_object.hpp:216:7:   required from here
/opt/ros/humble/include/class_loader/class_loader/meta_object.hpp:218:12: error: invalid new-expression of abstract class type ‘DiffDriveArduino’
  218 |     return new C;
      |            ^~~~~
In file included from /home/sergei/plucky_wsB/src/diffdrive_arduino/src/diffdrive_arduino.cpp:1:
/home/sergei/plucky_wsB/src/diffdrive_arduino/include/diffdrive_arduino/diffdrive_arduino.h:19:7: note:   because the following virtual functions are pure within ‘DiffDriveArduino’:
   19 | class DiffDriveArduino : public hardware_interface::SystemInterface
      |       ^~~~~~~~~~~~~~~~
In file included from /home/sergei/plucky_wsB/src/diffdrive_arduino/include/diffdrive_arduino/diffdrive_arduino.h:7,
                 from /home/sergei/plucky_wsB/src/diffdrive_arduino/src/diffdrive_arduino.cpp:1:
/opt/ros/humble/include/hardware_interface/system_interface.hpp:173:23: note:     ‘virtual hardware_interface::return_type hardware_interface::SystemInterface::read(const rclcpp::Time&, const rclcpp::Duration&)’
  173 |   virtual return_type read(const rclcpp::Time & time, const rclcpp::Duration & period) = 0;
      |                       ^~~~
/opt/ros/humble/include/hardware_interface/system_interface.hpp:184:23: note:     ‘virtual hardware_interface::return_type hardware_interface::SystemInterface::write(const rclcpp::Time&, const rclcpp::Duration&)’
  184 |   virtual return_type write(const rclcpp::Time & time, const rclcpp::Duration & period) = 0;
      |                       ^~~~~
gmake[2]: *** [CMakeFiles/fake_robot.dir/build.make:76: CMakeFiles/fake_robot.dir/src/fake_robot.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:165: CMakeFiles/fake_robot.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
gmake[2]: *** [CMakeFiles/diffdrive_arduino.dir/build.make:76: CMakeFiles/diffdrive_arduino.dir/src/diffdrive_arduino.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[1]: *** [CMakeFiles/Makefile2:139: CMakeFiles/diffdrive_arduino.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< diffdrive_arduino [6.10s, exited with code 2]

Summary: 1 package finished [6.50s]
  1 package failed: diffdrive_arduino
  1 package had stderr output: diffdrive_arduino

=======================================

I merged all necessary code from https://github.com/Buzzology/diffdrive_arduino and copied some snippets from code generated for Humble using this method:
https://rtw.stoglrobotics.de/master/tutorials/quick-start.html#clone-and-source-the-rosteamworkspace
Compiles fine on Humble, not tested yet.
My final version is here:  https://github.com/slgrobotics/diffdrive_arduino
sudo apt install ros-humble-ros2-control

mkdir -p ~/plucky_ws/src
cd ~/plucky_ws/src
git clone https://github.com/slgrobotics/diffdrive_arduino.git
git clone https://github.com/joshnewans/articubot_one.git
git clone https://github.com/joshnewans/serial.git
cd ~/plucky_ws
colcon build

Nice, was there anything missing in the galactic MR of mine or just more changes between Galactic and Humble? Took me a while to do the Foxy -> Galactic so have been a bit hesitant to try going to Humble.

@Buzzology -  Chris, sorry, I don't have previous ROS releases installed anywhere, only Humble. But if you have a Galactic machine, "compilability" of my changes is easy to check in five minutes - just do the following:
mkdir -p ~/plucky_ws/src
cd ~/plucky_ws/src
git clone https://github.com/slgrobotics/diffdrive_arduino.git
git clone https://github.com/joshnewans/serial.git
cd ~/plucky_ws
colcon build

I am pretty sure though that read() and write() signatures did change between your and my code. And I haven't done any testing yet, that might be another can of worms.

Thanks for the info Sergei!

@slgrobotics I was trying to develop the same on humble and ubuntu 22.04 and I ran into these issues
if you have any idea please let me know
In file included from /usr/include/boost/bind.hpp:30,
from /home/sampath/robot1_ws/src/serial/tests/unix_serial_tests.cc:23:
/usr/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’
36 | BOOST_PRAGMA_MESSAGE(
| ^~~~~~~~~~~~~~~~~~~~
Finished <<< serial [5.76s]
Starting >>> diffdrive_arduino
--- stderr: diffdrive_arduino
In file included from /home/sampath/robot1_ws/src/diffdrive_arduino/src/fake_robot.cpp:1:
/home/sampath/robot1_ws/src/diffdrive_arduino/include/diffdrive_arduino/fake_robot.h:7:10: fatal error: hardware_interface/base_interface.hpp: No such file or directory
7 | #include "hardware_interface/base_interface.hpp"
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/sampath/robot1_ws/src/diffdrive_arduino/src/diffdrive_arduino.cpp:1:
/home/sampath/robot1_ws/src/diffdrive_arduino/include/diffdrive_arduino/diffdrive_arduino.h:7:10: fatal error: hardware_interface/base_interface.hpp: No such file or directory
7 | #include "hardware_interface/base_interface.hpp"
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
compilation terminated.
gmake[2]: *** [CMakeFiles/fake_robot.dir/build.make:76: CMakeFiles/fake_robot.dir/src/fake_robot.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/diffdrive_arduino.dir/build.make:76: CMakeFiles/diffdrive_arduino.dir/src/diffdrive_arduino.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[1]: *** [CMakeFiles/Makefile2:165: CMakeFiles/fake_robot.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
gmake[1]: *** [CMakeFiles/Makefile2:139: CMakeFiles/diffdrive_arduino.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
Failed   <<< diffdrive_arduino [6.09s, exited with code 2]
Summary: 5 packages finished [12.3s]
1 package failed: diffdrive_arduino

Hey @SAMPATHONROS , I'm not sure which repo you copied but I ended up upgrading to Humble and 22.04 last week. I ended up using a mixture of Sergei's code and my original Galactic upgrade and it seems to be working okay so far. I added the changes to a humble branch on this repo: https://github.com/Buzzology/diffdrive_arduino/tree/humble

Please make sure you have these prerequisites installed:
sudo apt install ros-humble-ros2-control
sudo apt install ros-humble-ros2-controllers
(?? ros-humble-gazebo-ros2-control - *** can't find package - probably isn't needed in humble ***)
sudo apt install ros-humble-twist-mux


Use of header to power the T4-S3 2.4 inch board with 5V

The schematic shows pins 1/2 are connected to VBUS. VBUS is also connected to the USB-C power pins.
With USB-C not connected, can you please confirm whether or not it is safe to power the board with 5V connected to pin 1 of the header?

Of course, when USBC is not connected, you can directly connect 5V to the 5v pin


Composite release

Description

Integrates changes for a composite electrode into the submodel structure.
Adds "Chen2020_composite" parameter set for a composite graphite/silicon electrode. Silicon parameters are added as a standard negative electrode parameter set, specified as the "negative electrode secondary" set, which automatically adds "Secondary:" to the start of each parameter name. Primary (graphite) parameter names are unchanged.
Adds example for a Si/Gr negative electrode
Composite positive electrode is also possible
Tertiary, quaternary, ... particles are not implemented but would not require a big change
Many parameters have been renamed from param.n.c_max to param.n.prim.c_max (to allow for the equivalent param.n.sec.c_max)
Combining with other submodels (polynomial profiles, degradation, etc) is not done here but should be quite easy now.

Fixes #2052
Fixes #1433
Fixes #2026
Type of change
Please add a line in the relevant section of CHANGELOG.md to document the change (include PR #) - note reverse order of PR #s. If necessary, also add to the list of breaking changes.

[x] New feature (non-breaking change which adds functionality)
[ ] Optimization (back-end change that speeds up the code)
[ ] Bug fix (non-breaking change which fixes an issue)

Key checklist:

[x] No style issues: $ flake8
[ ] All tests pass: $ python run-tests.py --unit
[ ] The documentation builds: $ cd docs and then $ make clean; make html

You can run all three at once, using $ python run-tests.py --quick.
Further checks:

[ ] Code is commented, particularly in hard-to-understand areas
[ ] Tests added that prove fix is effective or that feature works

Hi, I'm trying to use the composite model by defining a pybamm.Experiment. Is there any plans to make the composite model working with the Experiment class?
Can someone give me a hint how to make the Experiment class sensitive for the 2 phases?
Bests,
Tim


Make PeerConnectorDiscovery.MaximumNodeConnections a configurable option

Right now MaximumNodeConnections is set to 8 on initialization.
Maybe it will be a good idea to make it configurable?

@noescape00 I'm also for removing hard coded values in the solution. Currently we pass a lot of values via command line args... but maybe we can have settings.json file?

@fassadlr Yeah, having a single settings.json with all the constant's stat we're currently passing via args is a way to go. Could also make it very well structured and auto generated from the default values on the first node run.
This is though pretty much out of scope of this issue so I'll create a new one.


Unrecognized font family 'Ionicons'

after click the button，show this error，how to fixed ?
Unrecognized font family 'Ionicons'

Please give more details about error.

oh, i solved ！follow this step
http://stackoverflow.com/questions/29310828/use-custom-font-in-react-native

Good.

thank you ！ @prabakarviji
RN is so difficult to use

Tive este problema também e a solução foi bem simples para mim.

Million thanks.


No reliable way to retrieve the IL of a function without using try/catch

While working on the binja backend for capa, I noticed a few outstanding crashes: https://github.com/mandiant/capa/issues/2406#issuecomment-2490171179, and https://github.com/mandiant/capa/issues/2249. After troubleshooting this, I realized that to reliably get the IL of a function, we have to use try/catch for now.
Here is what could happen when I try to retrieve the IL of a function:

It is immediately available
It is not yet available, but can be retrieved briefly
It cannot be retrieved

Now think of the case of func.mlil, it will work for case 1 & 2, but it will throw an exception in case 3. If I use func.mlil_if_available, then it will work for case 1 & 3, but not for case 2 according to my test. I had to use this code pattern to handle all cases:
        try:
            mlil = f.mlil
        except ILException:
            return

        if mlil is None:
            return

        for mlil_bb in mlil.basic_blocks:
            pass

Which is quite ugly and inconvenient. It would be great if we can devise a way to retrieve the IL without needing to write code in the above pattern. Potentially we could just create a new API that wraps the above code logic

Related to https://github.com/Vector35/binaryninja-api/issues/6020


Split GitHub Actions and TuxSuite by toolchain version

This series changes how our GitHub Actions and TuxSuite files are structured to make it easier to triage build failures and see the overall health of the trees we test and to avoid hitting GitHub Actions' job limit in our matrices.
The first two patches move the reading of generator.yml and writing of the GitHub Actions workflow and TuxSuite files into the Python scripts, rather than using stdin and stdout so that we can easily write to multiple files.
The third patch does the actual split by checking what LLVM versions the tree is being tested with and generating a file based on just those builds. generate.sh and check-patches.sh are adjusted to account for this.
Finally, the fourth and fifth patch does the regeneration and updates the README.

Need to run yapf and fix the --patch-series handling.

Thank you for the review! I have gone ahead and addressed all your comments via git commit --fixup, which I'll rebase and autosquash once you confirm you are happy with the changes.


refactor database.go to use repository pattern

currently all database logic resides inside a single file called database.go - we would want to have a better maintained structure by using repository pattern. for each object category we would have a repository that abstracts away the database layer. for example
current structure has pkg folder
we could have a structure like the following
internal/
  job/
    handlers.go
    repo.go
    errors.go
    models.go
    sql.go
  developerprofile/
    handlers.go
    repo.go
    errors.go
  ...

this will make the project much easier to maintain

Hey! This one looks fun, I'd love to help with it. Any recommendation for running the project in my local?

thanks @ferueda please bear with me a day or two and I will try to put this together. it should be pretty straightforward I just have to create some database fixtures and migration scripts

@ferueda I have just added a setup guide with a minimal set of database fixtures so it's easy to run the app locally https://github.com/golang-cafe/golang.cafe/commit/0cce17821213d39e80ab9929da0f814bf3977a84
If you have any issues please let me know. You might need Docker installed and a recent Go installation.

Looks like this isssue can be closed.


disable anchors in stringify

hi, is there a way to disable anchors such as &a1 when using stringify.
I'm using YAML version 1.10.0
tnx

I'm pretty sure that using just YAML.stringify() that isn't possible, but this will probably do what you want:
const doc = new YAML.Document()
doc.setSchema()
doc.contents = doc.schema.createNode(yourValueHere)
String(doc)

The reason why that works is that in v1 the automatic reference detection was a part of the stringify method in particular, while createNode didn't include it. This changes (along with some of the clumsiness of the above API) in v2, but that's an entirely different issue.

tnx that was very helpful

I'm pretty sure that using just YAML.stringify() that isn't possible, but this will probably do what you want:

Can this be made into an option of stringify()?


Metadata in different formats

util.add_metadata_to_netcdf only takes metadata from a csv file (even though it then reads this csv file into a dict). Open this up to allow other methods of adding metadata (yaml file and python dictionary are two that immediately spring to mind).

util.add_metadata_to_netcdf also only adds values to global attributes that already exist (i.e. are part of the NCAS standard) - if someone wanted to add more global attributes it would need to be done separately - this could be changed


Service used by layout module

In case you have to create a service that is used from the controller of the layout module (e.g. Shell) where would you add it? In the core service or in a dedicated one inside the layout module?
Thanks

Good question. I'm struggling with the same concept.

I'm waiting for the answer too.

While I am thinking it again and again, I conclude to the following:
Since the layout is a module, everything that applies to the other modules should be valid for the layout also. Thus, the service should go to the layout module in that case. What do you think?


[RPA-1044] Cloud File new action - move file

Description

Motivation and Context

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

I agree to the terms of the RunBotics Contributor License Agreement.

remember to bump version


Option --Wicon is unrecognized

When I try to use it, I get love-release: unrecognized option '--Wicon=assets/icons/polaricon.ico'

I have fixed this specific bugs, but I think you still can't set Windows icons or use the Windows installer. There are problems with the way I used Wine, and I might take me some more time to fix this.


Fix RangeIndex tests

Pandas 1.0 supports int32 types in RangeIndex but SDC not:

Remove int32 from invalid types
Change Exception type and message

@PokhodenkoSA It's ok after restarting


v3.0.0

This looks great. Do we need upgrade instructions?

Yay! LGTM.
Why 3.0.0 instead of 2.5.0?

Why 3.0.0 instead of 2.5.0?

Is https://github.com/thoughtbot/high_voltage/pull/221 backwards incompatible?

Is #221 backwards incompatible?
Correct!

This looks great. Do we need upgrade instructions?

I don't think we do. The README was previously updated on the removal of caching with instructions on how to move forward if needed. I think that will suffice.
Thanks @tute / @mike-burns


Command line errors output don't reflect the editor

Similar to this issue #174. Despite trying all the suggested configurations, I couldn't get it to work. I spent a few good hours trying to figure it out with no success. I think you should've only deprecated "python.linting.mypyEnabled": true when the Mypy Type Checker extension worked properly. It seems there's no straightforward way to configure the extension to read mypy config from a pyproject.toml file.

I'm using the pre-release version of the mypy extension. My workspace settings are the following:
{
	// Python
  "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
  "mypy-type-checker.path": ["${workspaceFolder}/.venv/bin/mypy"],
  "mypy-type-checker.args": [
    "--config-file",
    "${workspaceFolder}/pyproject.toml"
  ],
  "mypy-type-checker.preferDaemon": false,
}

And here is my pyproject.toml:
[tool.poetry]
name = "app"
version = "0.1.0"
description = ""
authors = ["Admin<EMAIL_ADDRESS>
[tool.poetry.dependencies]
python = "^3.12"
requests = "^2.31.0"

[tool.poetry.group.dev.dependencies]
ruff = "^0.1.3"
mypy = "^1.6.1"
pre-commit = "^3.5.0"
types-requests = "^<IP_ADDRESS>"

[tool.mypy]
disallow_untyped_defs = true
disallow_any_unimported = true
no_implicit_optional = true
no_implicit_reexport = true
check_untyped_defs = true
strict_equality = true
warn_unused_ignores = true
warn_redundant_casts = true
warn_return_any = true
show_error_codes = true

[tool.ruff]
line-length = 88
exclude = [
    '.git',
    '__pycache__',
    '__init__.py',
    '.mypy_cache',
    '.pytest_cache',
]
select = [
    "E",  # pycodestyle errors
    "W",  # pycodestyle warnings
    "F",  # pyflakes
    "I",  # isort
    "C",  # flake8-comprehensions
    "B",  # flake8-bugbear
    "UP",  # pyupgrade
]
ignore = [
    "E501",  # line too long
    "C901",  # Comprehension is too complex (11 > 10)
    "W191", # indentation contains tabs
]
unfixable = ["F841"]

[tool.ruff.pyupgrade]
# Preserve types, even if a file imports `from __future__ import annotations`.
keep-runtime-typing = true

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

@xshapira This is a mypy bug. There is no column information in the output, hence we don't parse it. This should be filed on mypy.
On the extension side we have https://github.com/microsoft/vscode-mypy/issues/156 which should address this. It is an easy enough fix, and we are open to take PRs for it.


TitleBar doesn't support TitleBarHeightOption.Standard

The AppWindow TitleBarHeightOption is set to Standard by default driven by system metrics, but the TitleBar control doesn't seem to be customizable to match. (I expect the glyphs, text, etc. to align with the system controls.) Am I missing something? Feels like the new TitleBar control should have matching Standard/Tall/Collapsed modes for easy use out of the box?

The Figma design guidance states the new type of Title Bar with the buttons, and subtitles etc should support Standard and Tall modes.

Thanks for the response @mdtauk. WinUI TitleBar will come with the height options as outlined in the Figma file above. Please reference the WIP Specs: https://github.com/microsoft/microsoft-ui-xaml/blob/main/specs/TitleBar/titlebar-functional-spec.md?plain=1#L486
Marking as resolved.


[Bug]: Issues with light mode

Steps to reproduce the issue?
If your browser defaults to Dark Mode, use the "Toggle Theme" button in the footer.
What happened?
In light mode, certain text (Like most of the text, and some stuff in the footer) stays white, making it unreadable. Obviously, I didn't expect this to happen.

I will check it out and see if I can fix it. Thank you for pointing that out

I will check it out and see if I can fix it. Thank you for pointing that out

Alright, so I do see the problem with it. I will see what I can do

Resolved by #63


Breaking changes introduced by assertions from the specification

The assertions from the specification in this commit https://github.com/bakkerthehacker/bramqp/commit/dbf94bdd25fe64c292036b9e7bb3719bf8f1d40c introduced breaking changes. In our case we were using whitespaces in the queue names as our Rabbitmq server doesn't validate it and this assertion is failing:
https://github.com/bakkerthehacker/bramqp/blob/master/specification/rabbitmq/full/amqp0-9-1.stripped.extended.xml#L87
I understand that strictly following the specification is the right way but any workaround without change the queue names would be very helpful.

Hi! Thanks for bringing up your usage and problems with bramqp.  I'm guessing you have been using bramqp before and updated to find things broken.  I would love to help find a fix for this.

introduced breaking changes

First I just wanted to point out that bramqp and most other packages follow semver.  bramqp is still using major version 0.  This means that every change can be a breaking change.  To work around this and provide some consistency, usually the minor version number is bumped when breaking changes are made and the patch version is bumped every other time.
In version 0.5.0 of bramqp, I intentionally added breaking changes.  I have done this in the past with verion 0.2.0 which changed the setup api.  A big result of the 0.5.0 release that was breaking was the close methods requiring a non-zero number (such as 200) as the code.  Just wanted to make sure you were aware.

Rabbitmq server doesn't validate it

This is a bug, in my opinion.  The RabbitMQ Reference and the xml spec both agree that space is not a valid character in the queue name.
The RabbitMQ Compatibility and Conformance lists this issue in the relevant section:

The queue name can be empty, or a sequence of these characters: letters, digits, hyphen, underscore, period, or colon.
Notes: The lexicon is not enforced by the server.

Just wanted to make sure we are both on the same page, you probably understand all of this already.
Now as to what to do to resolve this issue.  I see you have a fork with the regexs modified in the spec.  Personally, I don't like this solution.  It also glosses over the other invalid characters which RabbitMQ might blindly accept.
A better solution might be to disable optionally certain specific assertions, or to optionally disable assertions altogether.
An interim solution would be to just pin version 0.4.0.  Not much has changed since then aside from the assertions and qpid types.

Hi, thanks so much for the quick response.
Yes, I'm aware that it's RabbitMQ's fault and also ours of course, for not complying with the specifications. Probably due to this The lexicon is not enforced by the server..
As we have been using RabbitMQ for 4 years we have more that 20 queues and exchanges using whitespaces so renaming them in production is not that easy. That's why as a first step, to be up to date with your package we have forked and patched it while we are able to rename all the queues.
Using v0.4.0 seems a good option too, now that I know that we won't take advantage of any of its changes, but anyway we will need to rename the queues at some point.
Fortunately, this is the only assertion affecting us but it could be worse so having an option to disable the assertions is not a bad idea for future affected people that need to upgrade.


docs(README, ci): add docs shield with link to version docs

This PR:

adds a shield linking to the docs
updates the release steps in the ci/README

Screenshot

Yes! That should be part of automating the release (planning to open up an issue for that).


docs: Add darkmode logo

can add className dark:invert onto the logo to achieve this

If that is what you meant.

You're on the ball, thanks!

Fix: https://github.com/IHIutch/draft-ui/commit/9642a050fdc0735635cb44996f3d4ac656c2ca26


Cocoa capable swt launcher

Add a new launcher based on the felix default to allow start a swt based GUI when using cocoa. The launcher should also decide if we include the webservice bundle or not.
GUI scripts need to be added in the assembly as well.

It was done sometime ago


Discord server link is broken

https://discord.com/ynput

This is not exactly related to ayon-launcher. Correct link should be https://discord.com/invite/ynput Is there any specific place where this link is broken?

Was fixed earlier by another person


Adding line/background styles with markText

I would really like to be able to add a background style when I use markText, just like how addLineClass(i, "background", "classname") works. It doesn't seem to be possible right now, but is there any reason it wouldn't be a good idea?
I was thinking it could behave just like a mode style, so that a prefix of line- or line-background- on the class name would end up applying the style to the whole line.
I might try adding this if it seems like a reasonable feature, what do you think? Thanks!
(Note: my goal is to color the background of all lines between certain delimiters. I would use a multiplex mode for this, but I need the ability to easily mark a specific range that ends at a certain point--the problem with modes is that if a closing delimiter can't be found, it will continue parsing/styling all the way to the end of the document.)

The way this works for modes already feels like a scary kludge, and I'm somewhat unhappy about adding more of that, but I guess it'd at least be consistent. If you can get this to work in a not-too-terrible way, I'd be open to merging it (I think you should be able to wire this into the way lines are rendered relatively nicely, by treating mark classes a little more like token classes).


[Feature Request] Cache results of parsing and validation

To speed up responses of repeated queries it'd be great to cache results of request parsing and validation as it adds some overhead and it's not necessary to run every time (parse cache can be indefinite, validation cache should be flushed when loading a new schema).
The router already caches the execution plan for queries. Btw, is there a particular reason to cache it for only 1 hour?
https://github.com/wundergraph/cosmo/blob/cc586ccbe2486ae8e8a6f45bbf1d8cabf55080fa/router/core/graphql_handler.go#L119-L120

We have updated the behavior and now cache as much as we can.


Can't find Xunit.Harness dependency

Hello,
I have done all the above steps (from docs), but VS does not find the dependency Xunit.Harness and related dependencies.
using Xunit.Harness;
[assembly: RequireExtension("Extension.File.Name.vsix")]
...

[IdeFact]

Could you please help? Maybe I miss some NuGet package or something? I added Xunit and Microsoft.VisualStudio.Extensibility.Testing.Xunit packages.
Thanks!
Best regards,
Alex

Unfortunately it didn't help

Thanks for help! Solved ✅


fix: update version in package.json on release

@w3b6x9 any reason for doing this? The version in package.json is updated automatically before being pushed to npm.

@soedirgo yea, i'm trying to get the correct version in src/lib/version.ts so that it can be passed as headers: https://github.com/supabase/supabase-js/blob/93550120f0e89e9dd3c79e966402a3f412c8b120/src/lib/constants.ts#L3

That gets generated correctly upon release - it's only not going to be set if you're working within a local copy


Does not handle nested quotes

Input:
'Foo "bar${}" baz'

Actual result:
'Foo `bar${}` baz'

Expected result:
`Foo "bar${}" baz`

Thanks for the issue. I've made this setting template-string-converter.convertOutermostQuotes, which is false by default. going to do a bit more testing then will push the changes.

Just curious, why false by default? To me it seems kinda odd to have to enable a flag in order to fix a bug.

I don't want to surprise people with new behavior. I can see the argument for setting it to true by default though.


Fixed realloc common mistake

If realloc fails, then the original memory allocation exists, but is leaked as it is no longer referred.

Actually this is not a mistake.  Realloc actually never returns NULL unless the value of the allocation is invalid. from the man page:
If there is not enough room to enlarge the memory allocation pointed to by ptr, realloc() creates a
     new allocation, copies as much of the old data pointed to by ptr as will fit to the new allocation, frees
     the old allocation, and returns a pointer to the allocated memory.

From what i read from the man:

The realloc() function returns a pointer to the newly allocated memory, which is suitably aligned for any kind of variable and may be different from ptr, or NULL if the request fails.

Even cppcheck highlight this as an error.


Accept both old and new cert error strings on MacOS in test assertions

Some unit tests started to fail on MacOS when we started using Go 1.19.5. The Go toolchain on MacOS had a different error message for invalid certs starting in Go 1.18.1, and until it was fixed in Go 1.19.5.
Accept both old and new cert error strings on MacOS in test assertions. Adjust the tests so that they don't care which error message is returned when they are making assertions about error messages.
Also used this as an opportunity to refactor how some tests were making assertions about error strings. New test helpers make it easy for an error string to be expected as an exact string, as a string built using sprintf, as a regexp, or as a string built to include the platform-specific x509 error string. All of these test helpers can be used in a single wantErr field of a test table. They can be used for both unit tests and integration tests.
Release note:
NONE

Merging, check concourse-ci/integration-test-1.17 is actually green with concourse job https://hush-house.pivotal.io/teams/tanzu-user-auth/pipelines/pinniped-pull-requests/jobs/integration-test-1.17/builds/1285