Split into multiple compilation units

When FLAMEGPU was first setup the 'relocatable device code' option wasn't available, so device functions had to be in the same object as their calling function. This meant that functions.c was made to be included from simulation.cu/fgpu_kernals.cu
This is a bad idea because it means that any pre-processor macro's defined within functions.c, leak into the remainder of simulations.cu to be compiled. It also makes partial compilation slower as the entire of simulation/fgpu_kernals/functions.c must be recompiled if you change 1 line in functions.c. Also being an include, marked as do not compile can confuse IDE's making them not detect when a recompilation is required.
@mozhgan-kch had this issue this afternoon, and short of noticing the highlighting is off (only going to work in an IDE), or working it out yourself it's a pain to diagnose. In this case the cuda constant symbol was being replaced with a literal at compile time, compiling fine and then throwing runtime err with invalid device symbol.
It might be feasible to rename functions.c to functions.cu and enable the relocatable device code option, however I expect there will be other minor changes.

header.h should be publicly callable functions, so the required changes to enable this would have to go in say simulation.h or similar.

This would also need a script to automate the upgrade for vcxproj files.

Just tested building with RDC enabled.
To make that compile, it's necessary to extern the existing environmental variable declarations found in header.h, and then declare them properly elsewhere (e.g. simulation.cu).
At this point RDC flame will build, albeit doesn't address the issue here of splitting into multiple compilation units.

I now removed FLAMEGPU_kernals.cu from being included by simulation.cu, allowing it to compile separately.
In order to allow this to compile, I had to create a header containing externs of the __constant__ and texture vars declared within FLAMEGPU_kernals.cu, and similarly prototype all the methods within.
These should be easy to produce from the existing FLAMEGPU_kernals.xslt, additionally we will need to prototype all of the functions.c methods within this same header (init/step/exit/agent).
This file is an example of what I used to build PedNav, I haven't yet added in the agent functions, allowing functions.c to compile separately.
https://gist.github.com/Robadob/4fd4978f9349c6209d011bfdd4859028

Note the first commit above 	119de92 is orphaned due to a force-push after files were missed.

758194d
Just made an additional commit (linked above, I forgot to tag the issue in msg). This separates off functions.c from the simulation.cu, FLAMEGPU_kernals.cu amalgamation.
I tested this building across all debug versions, there were 5 failures. 4 due to trivial things that are now fixed.
The remaining failure is specific to agent function conditions. SugarScape example utilises a macro define made within functions.c, for obvious reasons this can't be relocated to templates.
I suggest that this macro is made into an environmental variable, this will retain its runtime flexibility, and should work naturally, given the condition is tested within a CUDA kernel.
Requesting @mondus approval before making that change.

Just made an additional commit. This separates off functions.c from the simulation.cu, FLAMEGPU_kernals.cu amalgamation.
I tested this building across all debug versions, there were 5 failures. 4 due to trivial things that are now fixed.
The remaining failure is specific to agent function conditions. SugarScape example utilises a macro define made within functions.c, for obvious reasons this can't be relocated to templates.
I suggest that this macro is made into an environmental variable, this will retain its runtime flexibility, and should work naturally, given the condition is tested within a CUDA kernel.
Requesting @mondus approval before making that change.

Additionally it becomes necessary to remove functionfiles from the xsl specification and to update Linux makefiles to additionally build functions.cu.

Next step would be to relocate any device functions called in functions.cu to a separate header (random, array reduce, message accessors), this allow them to be inlined at compile time. The performance benefits of this may be negligible, but it's the primary concern of separating CUDA into multiple compilation units.

Just made an additional commit (two shown because I force pushed after a minor mistake, leaving the first one orphaned). This separates off functions.c from the simulation.cu, FLAMEGPU_kernals.cu amalgamation.
I tested this building across all debug versions, there were 5 failures. 4 due to trivial things that are now fixed.
The remaining failure is specific to agent function conditions. SugarScape example utilises a macro define made within functions.c, for obvious reasons this can't be relocated to templates.
I suggest that this macro is made into an environmental variable, this will retain its runtime flexibility, and should work naturally, given the condition is tested within a CUDA kernel.
Requesting @mondus approval before making that change.

Additionally it becomes necessary to remove functionfiles from the xsl specification and to update Linux makefiles to additionally build functions.cu.

Next step would be to relocate any device functions called in functions.cu to a separate header (random, array reduce, message accessors), this allow them to be inlined at compile time. The performance benefits of this may be negligible, but it's the primary concern of separating CUDA into multiple compilation units.

Spoke with @mondus , need to adjust agent array functions to replace currently templated system.

d9832f7
I've now updated agent array functions to provide transparent access to arrays via operator overloading. This is a breaking change, but produces much cleaner code. This also fixes the mistake that I made in a prior commit for handling array accessors with RDC.

Still think I need to address struct (with array) allocation as I did in polynav work.

As @Robadob  with his work rdc can have significant performance implications, and we are progressing with FLAME GPU 2, this can be closed for now as wontfix.

For clarity if this gets dug up in future. Testing showed that certain kernels when compiled with rdc=true and no other changes, would inflate register usage by as much as 75%. An easy example of this is changing the flag and rebuilding the CUDA particles sample code.
Inflating register usage by this much has obvious knock on effects for occupancy with large kernels, and hence can harm performance quite significantly.
The assumption is that it's tied to use of device kernels, as if kernels are in separate compile time objects it can't perform whole run-time optimisation/register re-use. However even when they are in the same compile time object we still get the rogue register inflation if rdc is enabled.
This testing was carried out using CUDA 8.0, haven't had time to test this with CUDA 9.1 to ensure it's still the case and query/report it as a bug. Notably the documentation's explanation of rdc does not suggest about register usage inflation.


[TASK] Update tern to version 0.16.0

[DESC.] This commit contains 3 tasks.

Extract tern.js as a bower package.
Note that the package is pulled from the 'fork' branch of https://github.com/webida/tern.
There is a small patch to communicate with webida's file-server.
Update acorn to version 2.0.4.
The most recent version is 2.6.4,
which I could not make work with webida
due to a delicate problem with browerify and requirejs.
Though v2.0.4 also has a similar problem,
I was able to make a fix.
See https://github.com/happibum/acorn/tree/b787028a6cba95ca57f613185f3d372d827f1d07
Since acorn needs a build step to create files in dist/,
it is not adeaquate to extract acorn as a bower package.
So, I added the compiled files to webida-client's git as before.
Minor changes in webida's tern plugin for updated tern.

Those files that fail style check are taken from acorn. :(

Great! :smile:


Issues with source control example extension

Clone and run the extension
Run "Open JS Fiddle"
Pick "demo"
Pick some folder
That folder is added to the workspace with some .jsfiddle file but nothing else happens, there is no source control provider in the source control viewlet
Run "Refresh JS Fiddle status"
Get command 'extension.source-control.refresh' not found

When I run "Open JS Fiddle" I see writeFile in saveConfiguration calling its error callback with null even though it seemed to write the file successfully. Then the debug session terminates and it seems that the EH is hung or crashed.

cc @jan-dolejsi

Thanks. I will have a look. What is your operating system?

I reviewed and re-tested the workspace folder management and found several issues that could cause the behavior you are describing. I believe there was a race condition happening between the async file writing and VS Code reloading the extension upon workspace folder addition.
I have cleaned up the async file system operations and made the sample more robust.
Could you please test this PR?
https://github.com/microsoft/vscode-extension-samples/pull/202

Works for me! I did not review the code changes in depth though.


gdk-pixbuf 2.31.7 does not build on Darwin

@vcunat d77588d127d4916eba76a2d692184133263f7add upgraded gdk-pixbuf, but this version does not build on Darwin.  It fails with:
make  all-am
make[3]: Entering directory '/private/var/folders/4j/br7bdhjx4b384_snb2087gt00000gn/T/nix-build-gdk-pixbuf-2.31.7.drv-0/gdk-pixbuf-2.31.7/tests'
  CC       pixbuf-read.o
  CCLD     pixbuf-read
  CC       pixbuf-lowmem.o
  CCLD     pixbuf-lowmem
Undefined symbols for architecture x86_64:
  "___libc_free", referenced from:
      _record_bytes in pixbuf-lowmem.o
      _free in pixbuf-lowmem.o
  "___libc_malloc", referenced from:
      _malloc in pixbuf-lowmem.o
      _calloc in pixbuf-lowmem.o
      _realloc in pixbuf-lowmem.o
  "___libc_realloc", referenced from:
      _realloc in pixbuf-lowmem.o
ld: symbol(s) not found for architecture x86_64
clang-3.6: error: linker command failed with exit code 1 (use -v to see invocation)

Does the next bump 23f75e9bb05 fix it (news mentions fixing some build issues)? Or there's one more released upstream.

@vcunat Nope.

Are you sure that 2.31.6 works and 2.31.7 doesn't?  Could it be due to some source of non-determinism instead?
Hmm, I see that the error is in the tests directory, so ATM I think it will be best to just avoid tests on Darwin. I'm not sure if plainly doCheck = false; will be enough not to compile the tests.

I'm all for disabling the gdk-pixbuf tests.  That has been one of the most fragile expressions I've ever used on Darwin, as the tests sometimes fail without reason.  However, 2.31.6 does build reliably so far.

I can't even test without a darwin-capable machine, so it's up to you/others to test that and push it (or create a PR, but I think you do have push access).

I tried setting doCheck = false, but it's unfortunately not enough - the tests are built during the main build, and not on-demand. I tried the following in my ~/.nixpkgs/config.nix to prevent tests from build built, which works but is very lame:
	gdk_pixbuf = lib.overrideDerivation gdk_pixbuf (o: {
		doCheck = false;
		postConfigure = "echo -e 'all install:\n\ttrue' > tests/Makefile";
	});

I was getting the exact same problem with 2.31.7, but bumping to 2.32.0 (a la https://github.com/NixOS/nixpkgs/commit/23f75e9bb05454d0af44fc823a19c57eafd967e3) works for me!  I just updated the default.nix file in my local nixpkgs repo to fetch 2.32.0 with an updated sha256 hash and ran:
nix-env -f $NIXPKGS -i gdk-pixbuf
@jwiegley @gfxmonk it seems strange to me that 2.32.0 didn't work for either of you.  Did you do something different?

Can we close this?  It seems to be building fine on master with latest Nix and build-use-chroot enabled.


misplaced error message

When you give a wrong path, you will get an error message to complaint about wast instead of wast like the following:
Reading WASM from /Users/user/docs_task/onboarding/contract/hello/hello.wasm...
Error 3160009: No wast file found

This issue should go to the eos repo as this is a deficiency with cleos.


feature request: something like sway's smart_borders

smart_borders on|no_gaps|off

    If smart_borders are on, borders will only be enabled if the workspace has more than one visible child. If smart_borders is set to no_gaps, borders will only be enabled if the workspace has more than one visible child and gaps equal to zero.

just something i miss from sway

here's how i'm currently faking this feature
yabai -m signal --add event=window_created action=/Users/zach/.local/bin/yabai-smart-borders.sh
yabai -m signal --add event=window_destroyed action=/Users/zach/.local/bin/yabai-smart-borders.sh
yabai -m signal --add event=window_moved action=/Users/zach/.local/bin/yabai-smart-borders.sh
yabai -m signal --add event=window_minimized action=/Users/zach/.local/bin/yabai-smart-borders.sh
yabai -m signal --add event=window_deminimized action=/Users/zach/.local/bin/yabai-smart-borders.sh
yabai -m signal --add event=space_changed action=/Users/zach/.local/bin/yabai-smart-borders.sh

#! /usr/bin/env zsh
NUM_WINDOWS=$(yabai -m query --windows --space mouse | jq -c '[.[] | select (."is-floating" == false)] | length')

if [ "$NUM_WINDOWS" = "1" ] || [ "$NUM_WINDOWS" = "0" ]; then
    yabai -m config --space mouse window_border off
else
    yabai -m config --space mouse window_border on
fi

I don't think the --space selector applies to the window_border config.

oh, maybe not. it works for me regardless, maybe because i have a single monitor setup and can't see more than one space at a time

Borders have been removed in the latest release (v6.0.0) (#1889) because of multiple issues present in both Ventura and Sonoma.


Tile (wrongly) showing markdown as language

In 2021 I tried using dart to solve the puzzles for the first three days (gave up afterwards). I included a README.md for each day to write down my ideas.
The tiles created now show .md  as language used, ignoring (?) the .dart files in bin.

Oh my, this is a wild find.
Nice idea!

Solutions are now searched recursively (any depth) so the second part should be fixed as well.


Updated text and it's style

Update the text size and position of *In Beta from carl's comment on this issue: https://app.asana.com/0/1200559321875810/1201841234561069/f

Checking on this @alexandriaroberts  @benface is this still valid?


Add optional parameter to note creation routes for graceful handling of existing notes

Currently, when note creation is attempted, and a note already exists (ex: create daily note, daily note already in place), an error is returned. One could use the optional overwrite flag to overwrite the existing note, but this is not always desirable. It would be nice to have an optional parameter that would allow the user to skip creation, i.e. to handle an existing target note not as a fail state but as a success state.
Idea
New optional if-exists parameter for note creation routes, only used in case the target note already exists. If its value is skip, the route will return a success response, but will not create a new note. If its value is overwrite, the current note will effectively be deleted, then created from scratch. (This would supersede and effectively deprecate the overwrite parameter.)
If if-exists isn't set, and  the target note already exists, an error will be returned as it was before.

[x] implement for /daily-note/create ✅ 2023-04-14
[x] implement for /note/create ✅ 2023-04-14
[x] document for /daily-note/create (incl. overwrite parameter deprecation notice) ✅ 2023-04-14
[x] document for /note/create (incl. overwrite parameter deprecation notice) ✅ 2023-04-14

Will be released in v0.18.


Check if it's better to make chrome packaged app a container for iframe/webview.

Maybe if Involt as Chrome App become the container for website within sandbox which transfers the data. It would work as fine as before plus it will reduce many limitations of Chrome App.
The data will be transferred with post message function: https://developer.chrome.com/apps/app_external
This could be useful when web support will be included so if user decides to open the app with the viewer, the app will work with serial/bluetooth instead of online communications.

The viewer could be available through Chrome app store so it will be like browser for local websites with involt interactions.

In this case working without loader will not only force autoconnection to default port but also could bind index.html file to the viewer.

It would be cool to have the Involt divided into 3 elements (in future)

Involt - html framework based on online communication (not Chrome App or with the same api functions but not prepared as Chrome app - see next).
Involt preview - standalone app for using serial and bluetooth communication with html prototype in Chrome App.
Involt build (or any other name, maybe not Involt but something different) - app for adding interactions without coding

... and bonus: Involt paper for simple mockups

The involt object in javascript must be split to make the preview app handle the connection and the framework should be inside iframe.
However, maybe all involt functions should be included if user decided to work directly in preview window not using the iframe...

This issue is outdated but still I have to manage pagination within iframe, post message has some security issues because locally it has to use '*' permission - it's possible to use window parent to access variables of same source.


Stop GUI Windows Popping up During Test Collection

When pytest collects the test, it runs some code on import that causes GUI windows to pop up. This is annoying as they can drag the focus of the desktop around and interfere with the user's workflow.
Possible Solution
@tacaswell suggests adding pytest-xvfb as a dev dependency, which will swallow the GUI windows. Unclear if this will also speed up collection, which is desirable, but can be a separate ticket.

Reviewers: @tacaswell @callumforrester


Support Custom Error Messages in Rancher API/UI

This is a request to support user customizable error messages in the API (and therefore UI).

What messages, customizable by who, for what?

I believe I overheard something about rancher 2.0 being able to satisfy the requirement.

Not that I know of...


add ability to use external sharedSecret function

Context
When creating auth JWE or decrypting JWE, the current assumption is that there is access to secretKey material so that sharedKey() can be called directly.
Examples here, here and here
Problem
This prevents external crypto implementations from being used along with this library.
Solution
In a similar fashion to the Signer pattern, I'm proposing that a similar interface be used to allow the use of external crypto.
Example:
type ECDH = (theirPublicKey: Uint8Array) => Promise<Uint8Array>

with a possible implementation along the lines of:
export function createX25519ECDH(mySecretKey: Uint8Array): ECDH {
  return async (theirPublicKey: Uint8Array): Promise<Uint8Array> => {
    return sharedKey(mySecretKey, theirPublicKey)
  }
}

That sounds good to me, also the naming makes sense.


Docs don't match current software

After creating an app, there is a screen that appears with 3 icons -- Build, Connect and Test -- and this is not mentioned in these docs.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 1b2ff35d-6d61-172e-92be-c50650642a8f
Version Independent ID: d95a1e88-b823-2445-bed0-cd7bf3ee5bfa
Content: Hello, iOS – Quickstart - Xamarin
Content Source: docs/ios/get-started/hello-ios/hello-ios-quickstart.md
Product: xamarin
Technology: xamarin-ios
GitHub Login: @davidortinau
Microsoft Alias: daortin

Thanks for submitting an issue and we apologize for the delayed response. The requested updates haven't been made since the creation of the issue, and the timeline for resolution may vary based on resourcing, so the issue is being moved to an internal repo to better track it.


Accepted and implemented categorization

It would be nice to be able to tell at a glance which designs still have work to do.
Folders is a decent approach to this, but we could also just use a file prefix.

I think the pull request tracker is a better place to do that, with labels.
That way you get an nice UI with filtering, and keep everything the same

Do you think we should label accepted RFCs then, and only merge them once they're implemented?

Rust is using a tracking issue on the rust repo for each rfc (or feature that didn't require a full rfc). This tracking issue tracks the implementation and any blockers to stabilization. Once the feature is stabilized, the tracking issue is closed. It may be a good idea to do something similar for bevy though maybe with closing on full implementation without any issues popping up soon after implementation. Having a tracking issue clearly separates discussion about what and why to implement a feature from discussion about how to implement it internally.

tracking issue in bevy repo

I like this a lot. That also allows us to continue treating "merged" RFCs as "accepted", which is the workflow I prefer.

And yeah I think issues that track a given "category" make sense to me. I'm thinking these should actually live in the main bevy repo, as thats where people are proposing + implementing features (and where we track progress in our roadmap).


Add JXL support

This PR adds basic support for the JPEG XL format: loading and saving JXL images from and to all supported dlib pixel formats with appropriate conversions.
The utility of this PR is limited, since it can already be done (at least the loading part) with dlib::ffmpeg::load_frame.
However, I intend to use JXL for all my datasets from now on, since I will save about 20-40% of disk space with reversible pixel perfect conversion from JPEG and PNG. All that while decoding images faster than libjpeg-turbo.
So, I might add more features specific to JPEG XL in the future (animations, grayscale + alpha, lossless JPEG transcoding).

I think it's done. However, maybe it comes at a wrong time, with all the CMake stuff being refreshed…

OK, now it's done for real: added Python bindings and updated imglab, too.

Done. If I (or someone) have the need for more JPEG XL features at some point, I will add them:

grayscale_alpha_pixel: it would require a new pixel type
storing the image in floating point: it would require rgb_float, rgb_alpha_float
saving and loading animations: overload the load and save functions with std::vector
transcoding from and to JPEG: this might be useful to convert imglab datasets.

Nice, this is sweet.


Index message replies in slack reader

Slack's conversation history just retrieves just the top threads in a channel.

Ooh amazing! The slack reader was initially pretty basic, this is a great addition. Thanks @pavanyellow I'll look at this soon.

@pavanyellow if you want i can help you pass the linter
(if you want to try yourself just do pip install -r requirements.txt and then make format; make lint in the root directory of the proj)


Support exporting Hibernate Validators info

Most Java POJOs these days use Hibernate Validators to annotate fields: NotNull, NotEmpty, Size, Min, Max, regex pattern, etc.
That is badly missing information in the exported JSON schema, which makes contract definition via JSON incomplete.
Since Validators are pretty much a part of the standard Java stack by now, would be great if this module could read all the validators and export info about them for every field.

I'm looking forward to this. At least @NotNull and @NotEmpty are important.

This module is deprecated so it is unlikely anything like this will be implemented at this point.


fix: constify header's lengths

I've changed commit message. Should I change branch name as well?

I've changed commit message. Should I change branch name as well?

Nah, no need; we only care about commit history.
Left one final nit that I missed before, then it's good to go :+1:.


Migrate to an official Slack client

In the API, we're currently using https://github.com/xoxco/node-slack to post Slack webhooks events. This library is not maintained (hasn't been updated for 7 years) and not as popular as the official Slack client(s): https://slack.dev/node-slack-sdk/.

at https://slack.dev/node-slack-sdk/ we got

Node Slack SDK
Deprecation Notice
@slack/events-api and @slack/interactive-messages officially reached EOL on May 31st, 2021. Development has fully stopped for these packages and all remaining open issues and pull requests have been closed.
should explore https://github.com/slackapi/bolt-js ?


(chore): make smoke tests skippable for breaking releases

Why did you manage to merge this without approval ?

It was merged in another PR


Hi i am wondering how to run this code for semantic segmentation domain adaptation

Sorry for late reply.
The current code does not support running semantic segmentation experiments. We do not plan to release code of segmentation experiments.


Update initial Error Correction and Detection content

Proposed changes
This pull request adds the following major changes:

Update Error Correction and Detection unit plan (fixes #392).
Update Error Correction and Detection lesson 1 (fixes #393).
Update Error Correction and Detection lesson 2 (fixes #394).

Issue to be raised: Lesson is missing learning outcomes.

Adds Parity Cards resource (fixes #401).
Add logo for error correction and detection (fixes #402).

This pull request also adds the following minor changes:

Fixes bug in video for binary numbers lesson 1 (fixes #403).
Add various learning outcomes.
Add restart command to csu script.

@hayleyavw Issue has already been made #415 😄


Create Documentation for Integrated Magepack Support

A quality PR from @vbuck added support integrated Magepack support via an additional WARDEN_MAGEPACK setting in the .env file for magento2 projects. This integration and how to use it is covered fairly well on the PR, but needs a documentation page. For information on Magepack and to learn more about the advanced JS bundling it does go here: https://github.com/magesuite/magepack and for information on how to use the integrated Magepack support, take a look at the details provided on PR #138

I've started on a branch for this task, but likely won't be able to complete until towards the end of the week - just a heads up.

@Lunaetic do you have any updates on testing magepack?
Could you create a PR, so we'll be able to check your suggested changes?

@Lunaetic any updates on creating PR for the covering magepack integration with some docs?

Has anyone figured out how to set it up? Super curious to see it in action. I would gladly add PR for appropriate documentation, if someone could give pointers on how to activate. Thank you.

@virtuman all details described in the PR and comments https://github.com/davidalger/warden/pull/138


Incorrect param1 value of m_libspdm_negotiate_algorithm_request13

Param1 value of m_libspdm_negotiate_algorithm_request13 is incorrect.
It should be modified from 11 to 3 according to purpose of unittest17 and length field value.
https://github.com/DMTF/libspdm/blob/798ef4739ad5c1648f6d90a62774da2e7330795c/unit_test/test_spdm_responder/algorithms.c#L2525-L2526
https://github.com/DMTF/libspdm/blob/51c1cf4ecde9a9b2c7996217c86bebc97a212917/unit_test/test_spdm_responder/algorithms.c#L449-L485

I will check this


Blow up big Sync test to multiple smaller ones

Continued https://github.com/gradle/gradle/pull/9663/files#r292794638

Merged, thanks!


Delete feature confirmation modal is not the new one on the dataset view

Fixed in 585680e, piggy-backing on #4381

Fixed in 585680e, piggy-backing on #4381


x/telemetry: download the upload config lazily

This is a follow up to #68946. To fix that issue for go 1.23.1, we did the absolutely narrowest fix to suppress the telemetry config download if the telemetry mode is not "on".
However, we should also make the download lazy, so that we download the config once a week when there is actual work to upload, rather than once a day when the upload process runs.
We could also consider back-porting this fix to 1.23.2, as I think it will be a safe change.

Related Issues and Documentation

x/telemetry: allow to use custom config download logic #67726

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)


Rows do not appear as directories when the table is created with WITHOUT ROWID

It looks like the driver uses ROWID but does not handle the missing ROWID case.

Referenced a wrong issue... force pushed.

This might be slightly hard to resolve: currently the driver relies on ROWID for directory names mapping to rows. #9 should resolve this issue by changing this situation.

As I will present the FYP on Oct. 30, I am now freezing the functionality of this project. This issue is moved out of the "FYPI Year 4 Semester 1" milestone.


Update PR template

Update PR template to reflect the new json-schema

Note to self: need to describe how to check validation results

@maxibor I added the check validation errors instructions to the PR template, now I have a challenge for you: do you think it's possible to automate posting a given validation error  as a PR if validation fails (e.g. via a bot?), and if so, literally the JSON validation fail and not the other python traceback?
if you think that's possible/you want to try it out I'll make a new issue ;).

Should be possible, there is even a github action for that: https://github.com/marketplace/actions/comment-pull-request
But I'm on holidays until the 21st ;)


usage with i2c multiplexers

Would you please consider adding a minimal python example implementation for multiple sensors using an i2c mux (e.g., TCA9548A), such as the Arduino example. We haven't been able to reach the sensors in the TCA9548A beyond the one in channel 0, and even there, the behaviour is not consistent. This request might be more applicable to other sensors, if addressed for the sensirion_i2c_driver, too. In any case, the docs here and for the i2c_driver are lacking clear guidance for applications needing i2c multiplexing. Thank you

Hi @jchavesc
Thank you for your request. So far we have not worked with multiplexers for the python drivers. With the current sensirion i2c driver package multiplexing will not work without some custom code.
We will have a look into how we can provide support for multiplexing for the Python driver using the TCA9548A.
Best regards,
Pascal

Hi @jchavesc
Sorry for the late response. Due to my holidays and lack of hardware it took me way longer then expected to test a solution.
To get the multiplexer working you need to small additional classes to switch the channel on the multiplexer. channel can be between 0 and 7 on a TCA9548A.
The first class is the command we send to the multiplexer, the second one is an additional I2C connection to send the command to the multiplexer.
from sensirion_i2c_driver import LinuxI2cTransceiver, I2cConnection, I2cCommand

class SelectChannelCommand(I2cCommand):
    def __init__(self, channel:int):
        super().__init__(tx_data=[1<<channel], rx_length=None, read_delay=0.0,
                         timeout=0.5)

class Tca9548aI2cConnection(I2cConnection):
    def select_channel(self, channel: int) -> None:
        self.execute(slave_address=0x70,
                     command=SelectChannelCommand(channel))

The multiplexer has a very simple interface. You send the channel you want to activate as a bit mask and it will expose this channel to the I2C.
To use the driver with multiple sensors you have to do something like this. I assume channels 1 and 3 are used on the multiplexer.
with LinuxI2cTransceiver('/dev/i2c-1') as i2c_transceiver:
    multiplexer = Tca9548aI2cConnection(i2c_transceiver)
    channel = I2cChannel(I2cConnection(i2c_transceiver),
                         slave_address=0x08,
                         crc=CrcCalculator(8, 0x31, 0xff, 0x0))
    sensor = Sf06LfDevice(channel)

    # Start measurement on Channel 1
    multiplexer.select_channel(1)
    sensor.start_h2o_continuous_measurement()

    # Start measurement on Channel 3
    multiplexer.select_channel(3)
    sensor.start_h2o_continuous_measurement

Please find attached a full example on how a multiplexer could be used
sf06_lf_multiplexer_example.zip
()

@psachs thank you so very much for this! Was also away from email this past few days

Thanks again @psachs for putting this together. We've been testing it and It works intermittently in our prototype set up: TCA9548A with 6 SLF3s-1330F. We don't think it is a wiring issue, since it works for each sensor independently when only their channel is called. If we add more channels to the run, say [0:3], that's when it starts to work erratically. Most of the time only 2 channels work. Interestingly, if we add a redundant loop above, it works for all channels:
C = [0, 1, 2, 3, 4, 5]

for c in C:
    multiplexer_channels = [c]

    for multiplexer_channel in multiplexer_channels:
    ...

In its original form, the first loop calling stop_continuous_measurement for all sensors never fails. The second loop calling read_product_identifier and start_h2o_continuous_measurement starts returning exceptions for some sensors: I2C transceive failed: [Errno 121] Remote I/O error, which can change in different runs (i.e., different sensors return the error).
In the read_measurement_data loop, the sensors that failed above return a checksum error as per below example (no fluid is used on tests):
[Channel 1] a_flow: 0.00; a_temperature: 25.13; a_signaling_flags: 1;
[Channel 2]: I2C error: Received wrong checksum 0xFF (expected 0xAC).
[Channel 3] a_flow: 0.00; a_temperature: 24.37; a_signaling_flags: 1;
[Channel 4]: I2C error: Received wrong checksum 0xFF (expected 0xAC).
[Channel 5]: I2C error: Received wrong checksum 0xFF (expected 0xAC).

If any of the info above offers any hints as to what is causing the issues, we would appreciate any guidance. Thank you!

If I understand this correctly the errors above are not uncommon and we should implement some of this: https://sensirion.github.io/python-i2c-driver/error_handling.html?

Looks like if we add a while loop until the channel works, measurement proceed without error...at least momentarily on a small example. Unless that is not a wise course of action, please let us know if there is a better approach to error handling. Thanks again
    for multiplexer_channel in multiplexer_channels:

        try:
            multiplexer.select_channel(multiplexer_channel)
            (product_identifier, serial_number) = sensor.read_product_identifier()
            print(f"[Channel {multiplexer_channel}] product_identifier: {product_identifier}; " f"serial_number: {serial_number}; ")
            sensor.start_h2o_continuous_measurement()
        except BaseException as e:
            print(f'Channel [{multiplexer_channel}:]' + f'{e}')
            print('Trying again...')
            error_switch = True
            counter = 0
            while error_switch:
                try:
                    counter += 1
                    multiplexer.select_channel(multiplexer_channel)
                    (product_identifier, serial_number) = sensor.read_product_identifier()
                    print(f"[Channel {multiplexer_channel}] product_identifier: {product_identifier}; " f"serial_number: {serial_number}; ")
                    sensor.start_h2o_continuous_measurement()
                    print(f'It worked on try {counter}!\n')
                    error_switch = False
                except BaseException as e:
                    counter += 1
                    print(f'Channel [{multiplexer_channel}] failed on try {counter}:' + f'{e}')
            ...

Thank you, @psachs. The cables could certainly be an issue. I have multiple cables daisy-chained to each sensor on this prototype setup--couldn't make long enough ones. So far the while loop is handling the errors, but we'll certainly look into the potential issues you suggest above. We have a good power supply (RQ-125D, 125W) for the whole system (Raspberry Pi, sensors, and one stepper motor), so I will put that issue as a lower priority to look into. Thanks again for the prompt response.


Torchscript support

Added torchscript model support
Added support of xyxy and xywh bounding box format for object detection

Ping


Update clustering.md

Documentation: fix "Missing infra1="

Thanks! Can you please update the commit message to: "Documentation: fix ..."

ping @mikael84

I think I did change it, didn't I?

https://github.com/mikael84/etcd/commit/381c03c6ca14a9b1d949b7b2d068a783d8d4cb68
The commit name is still Update clustering.md. could you change it to "Documentation: fix ..."?

Oh, I edited the wrong box. Sorry.

@mikael84 and the commit name. you can use git commit --amend to edit the title of the commit, and git push -f to patch-1.


bug: prettier-plugin-tailwindcss doesn't work with default t3 template

Provide environment information
System:
OS: Windows 10 10.0.19045
CPU: (16) x64 AMD Ryzen 7 5800H with Radeon Graphics
Memory: 6.56 GB / 15.86 GB
Binaries:
Node: 18.12.1 - C:\Program Files\nodejs\node.EXE
npm: 8.19.2 - C:\Program Files\nodejs\npm.CMD
Describe the bug
I watched Theo's video today about Prettier auto formatting class names. However I never noticed anything changing whenever I used the T3 stack, and even after I tried to make it work it didn't.
That made me find this article Prettier autoformat for TS not working
In short I made it work by adding a .code-workspace file to override the VSCode settings with this:
{
  ...
  "settings": {
     ...
    "[typescript]": {
      "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[typescriptreact]": {
      "editor.defaultFormatter": "esbenp.prettier-vscode"
    }
  },
}

Note the [typescript] and [typescriptreact] settings.
Reproduction repo

To reproduce
Run npx create-t3-app and try to see if Prettier formats class names for Tailwind. Doesn't work for me.
Additional information
I don't know if other people encounter this or if my settings were not good, however I didn't notice until now, If this is common I think the worskpace file should be included in the template as well. FYI Prettier is set as my default formatter in my settings.

If prettier is enabled as your default formatter, it should work out of the box, see video below
(the "editor.defaultFormatter": "esbenp.prettier-vscode" line in settings.json corresponds to selecting prettier as the default formatter in the settings ui)
maybe there's something else in your specific settings file that's overriding it?
https://user-images.githubusercontent.com/8353666/215894590-d57d1999-f541-49e9-9b52-bfb7ed8e4e76.mov

Very interesting...
https://user-images.githubusercontent.com/44570474/215898872-6d70e176-1439-4692-a517-9cc944d0543f.mp4

Very interesting... Will try to find the reason but so far no luck...
2023-01-31-23-32-15.mp4

You might have conflicting settings somehow? What happens if you put the formatter setting in a .vscode/settings.json file in the project?

I found it. I had some obscure settings set in my OG VSCode settings which I wrote years ago... That would override any other settings I had later on, and they were Synced across all my devices....


JWT Auth and authenticated resources

Hey. I do not see any Authenticated resources. My settings:
SWAGGER_SETTINGS = {
    'USE_SESSION_AUTH': False,
    'SECURITY_DEFINITIONS': {
        'apiKey': {
            'type': 'apiKey',
            'description': 'Personal API Key authorization',
            'name': 'Authorization',
            'in': 'header',
        }
    },
}

When I click on Authorize and provide value JWT <my-token> I still can only see resources that don't require auth.
When I commented out permission_classes = (IsAuthenticated,) I could see the resource with commented permission_classes. What I'm doing wrong?

Assuming problem solved - could you provide solution, please.

Same here.


Gofile REST API Endpoints changed

REST API endpoints changed.  Running the "test_free_functions.py" file throws an immediate error from GofileClient initialization.   Gofile REST API endpoints are still being updated by the developers so wrapper may continue to break in the near future.  Will try to fix issues as they come in.  Current error below.  More will come as gofilepy is getting revamped.
Traceback (most recent call last):
  File "/home/m0bb1n/Programs/gofilepy_dev/venv_gofilepy_test/lib/python3.10/site-packages/requests/models.py", line 971, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python3.10/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/m0bb1n/Programs/gofilepy_dev/gofilepy/tests/test_free_functions.py", line 9, in <module>
    guest_client = GofileClient()
  File "/home/m0bb1n/Programs/gofilepy_dev/venv_gofilepy_test/lib/python3.10/site-packages/gofilepy/gofile.py", line 34, in __init__
    self.server = GofileClient.get_best_server()
  File "/home/m0bb1n/Programs/gofilepy_dev/venv_gofilepy_test/lib/python3.10/site-packages/gofilepy/gofile.py", line 63, in get_best_server
    return GofileClient.handle_response(resp)['server']
  File "/home/m0bb1n/Programs/gofilepy_dev/venv_gofilepy_test/lib/python3.10/site-packages/gofilepy/gofile.py", line 43, in handle_response
    data = resp.json()
  File "/home/m0bb1n/Programs/gofilepy_dev/venv_gofilepy_test/lib/python3.10/site-packages/requests/models.py", line 975, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)

v0.2.8 is broken.  New version 0.2.9 will be uploaded tomorrow fixing bug.


Generalized support for overwriting/extending initContainers, volumes, volumeMounts

@gislab-augsburg, @klml, @eidottermihi, @MandanaMoshref:
Sorry this took me so long, but finally here is a first draft. It basically pics up  what I suggest here. It should allow using OpenShift just by adapting the configuration when depolying the chart. Check out the examples below to see how it works.
This shall replace the work proposed in #31 with a more general and flexible mechanism to allow user of this chart to:

Overwrite, or extend the default initContainer, volume, volumeMount of this chart
Overwrite includes to disable the default initContainer, volume, volumeMount specified in this chart

What is different compared to the work in #31?

The mechanism implemented here allows to freely configure initContainer, volume, volumeMount. This is at deploy time with helm -f values.yml or using helm --set. Thus, if any specific requirements arise in the future (e.g. have an additional file writable for OpenShift using a volume), this mean just a configuration change and not a new release of the chart.
In #31, e.g. only specific files are replaced by volumes. The solution is specific for the issue of supporting OpenShift.
The given defaults can be overwritten, disabled or extended.
It is possible to use templates in the definitions. They need to be quoted!!

ToDos

[x] Implementation for initContainers
[x] Implementation for volumes
[x] Implementation for volumeMounts
[x] Add the above implementations in ckan-deployment too. Currently, it only in the Statefulset.
[x] Add documentation: Currently block due to: norwoodj/helm-docs/issues/217

Requirements

This might require Helm >= v3.14.0 what I used for testing.

Examples
Here are some example to illustrate usage of this. In all examples we create a custom values.yml files with our configuration for the deployment. The we run: helm install sddi sddi-ckan/sddi-ckan -f values.yml
Disable default initContainers
This will disable the default init containers.
values.yml:
ckan:
  initContainers: []

Replace default initContainers
This will overwrite the default init containers with the one specified below.
values.yml:
ckan:
  initContainers:
    - name: custom-init-data
      image: my/customimage:v1.2.3
      command: ["sh", "-c", "chown -Rv 999:999 /custom/path"]

Extend the default initContainers
This will extend the default init containers of the chart. Note: The template specified below will be rendered!
values.yml:
ckan:
  extraInitContainers:
    - name: additional-init-data
      image: my/customimage:v1.2.3
      command: ["sh", "-c", "chown -Rv 0:0 {{ .Values.persistence.storagePath }}"]

@gislab-augsburg, @klml, @eidottermihi, @MandanaMoshref:
I would appreciate if you could test if this works on OpenShift. If your struggling to get the configuration right, let me know, I can help. We can setup a meeting too, if you need some further explanantion or assistance.

@BWibo:
I tested your solution in LHM Openshift and it works like a charm :)
You are absolutely right, it is better than the changes proposed in #31, more flexible and general. With the ability to freely configure initContainers, volumes and volumeMounts, this feature solves all our issues and we are free to include further configMaps etc. if we will need some in the future. Thank you so much 🙏
I only had a minor issue on the first try with volume sizeLimit:
configuration in our values-lhm-tum.yaml:
  # Extra Volumes
  extraVolumes:
    # Volumes for paths that need to be writable
    - name: srv-app-i18n
      emptyDir:
      sizeLimit: 500Mi
    - name: srv-app-data
      emptyDir:
      sizeLimit: 500Mi

results in :
mb@nbo00370518:~/ckan-helm$ helm upgrade --install -f values-lhm-tum.yaml -f values-dev-secret-tum.yaml ckan ../tum-sddi/sddi-ckan-k8s/charts/sddi-ckan/
W0226 12:15:54.671209    1389 warnings.go:70] unknown field "spec.template.spec.volumes[1].sizeLimit"
W0226 12:15:54.671585    1389 warnings.go:70] unknown field "spec.template.spec.volumes[2].sizeLimit"
Release "ckan" has been upgraded. Happy Helming!
NAME: ckan
LAST DEPLOYED: Mon Feb 26 12:15:51 2024
NAMESPACE: udpkatalog-dev
STATUS: deployed
REVISION: 132
TEST SUITE: None

But I'm not sure if iszeLimit is really necessary, @klml what do you think, do we need it?

@gislab-augsburg Thx for testing and really cool this works for you guys. I think there is a syntax error regarding the size level. There is one level of indention missing. This should do the trick:
  # Extra Volumes
  extraVolumes:
    # Volumes for paths that need to be writable
    - name: srv-app-i18n
      emptyDir:
        sizeLimit: 500Mi
    - name: srv-app-data
      emptyDir:
        sizeLimit: 500Mi

@gislab-augsburg Can you please confirm if this works?
As soon as this is done and we have a solution for https://github.com/tum-gis/sddi-ckan-k8s/pull/33, I'lll prepare a release.

Yes, it works :) It was just an indentation mistake. From our side, you can merge and prepare the release.
#33 is solved, did I get it right? From our side, there are no problems with solr when:

using the branch feature/customVol-Mnt-Init
overwriting initContainers and so removing init-data in the values.yaml
still having podSecurityContext: {} in sddi-ckan-k8s/charts/sddi-ckan/charts/solr/values.yaml
not creating an initContainer for solr

OK, cool. I'll create a beta release first for testing.
Yes #33 is resolved, but it should be tested. Let's do this in the beta release (#34) where all new features are included.


Adding Image like stickers

Hi there, your package is awesome and I am using it in my new developed android app.
Maybe I am missing something , but can we add image like stickers to background?
It would be great if we can add some stickers like text functionality.

Added in version 1.0.0.


from MIDI note events to list of active notes, and vice versa?

I was looking for objects to go from RAW notein events to the list of active notes (e.g. note-1 vel-1 note-2 vel-2 note-3 vel-3 ....
I found objects [mono], [noteinfo], [voices] (and [keyboard]) which seem to handle similar functionality, but using different formats.
Also, I found no way to go the other way round, i.e. from such list to raw noteout-like events.
Maybe I overlook some obvious object in ELSE?
The reason I look for active notes in a list, is that I need to split the active voices by their midi note, e.g route the lowest active note to a synth, the highest note to another synth, and the remaining notes to a third synth, like it can be seen here:

So yes, I came up with my pd-vanilla implementation of such objects, and if you are interested I will contribute those to the ELSE project, I like the idea of having a library for "everything else"...

send me those objects, I wanna see what you mean... I plan to make a new update release in 7 days, with luck this might get in ;)

https://github.com/fferri/pd-active-notes

no help files? :(

I also don't really know what you need. What if you had a list output for the 2nd outlet of [noteinfo] that showed the list of active voices, would that work for you?

yeah, these abstractions make no sense to me :)

The help patch is 0-midi-router.pd: in there you can see very easily how incoming notes are split into three groups: low note, middle note, and high note.
[active-notes] receives MIDI notes (packed as two-elements lists e.g. <note> <velocity>), and internally track their status (on-velocity/off), and at the same time outputs a list <note1> <vel1> <note2> <vel2> ... of the currently active notes with their velocity.
E.g. sending 60 127 then 62 120 then 61 110 then 60 0 outputs (as last message) 61 110 62 120.
[active-notes-to-midi] does the opposite: receives a list of notes and velocities <note1> <vel1> <note2> <vel2> ..., and internally tracks the status of notes, and at the same time outputs any state change in the form of MIDI note messages note velocity (i.e. 2-element lists).
E.g. sending 61 110 62 120 would produce the two messages at its outlet: 61 110 and then 62 120.
If then a message 61 110 63 100 is sent, only 63 100 will be output, because note 61 is still open at velocity 110.

I get now how [active-notes] works, do you need that as a 2nd output of [noteinfo], would that do it?

And the other object goes the other way round (from list of active voices to note messages).
Keep in mind that these objects have an internal state (i.e. the note-on velocity of all 128 notes), so their output depends not only on the last message, but also on all the previous messages; in other words (see last example in my previous message) a message can leave the channel with notes open... a subsequent message can close those.
In fact, sending the empty list (bang) closes all currently playing notes.

I get now how [active-notes] works, do you need that as a 2nd output of [noteinfo], would that do it?

I don't "need" anything :D these abstractions already have done the job of solving my MIDI problem.
But yes, probably it would make sense to do as you say.
If you understand the problem and the solution (and those do makes sense to you), then feel free to include the abstractions in your library (also feel free to come up with a better name too, I suspect "active-notes" and "active-notes-to-midi" is not very clear ;)).
My point here is that I had one music/MIDI problem, and I looked into the ELSE library, which claims to be "a big library of externals that extends the performance Pure Data (Pd) - Miller S. Puckette's realtime computer music environment", to see if there is any object that would help me; I found similar/related objects, but in the end I had to write my own solution, so perhaps the library can be improved.

of course the library can be improved and I'm always happy to include more functionalities, but you have to be more specific in what functionality you wand and need ;)

sometimes you have a problem that is way too specific and you may end up needing to build things one way or another.
Now, for the sake of clarity and objectiveness, I'll ask again. Would you be happy if [noteinfo] gave you the list of active pitches? Would that work for you and make life easier? would you like to request that specific functionality?

I don't think I could be any more specific than this.
And the problem being solved is general enough: extract the lowest playing note (or the highest, or the lowest N notes, and so on....).
I renamed the objects to more meaningful names, and added proper help patches: https://github.com/fferri/pd-active-notes
See if this way is any more clear. ;)

I don't think I could be any more specific than this :D

I am reaching this conclusion, but could objectively say that you don't need a list output for [noteinfo]? It's a yes or no question, you can do it ;)
If you want me to add your abstractions to ELSE and that's it, let me see if I get what they do and what I can make of it. For now I really think that whatever this is, it looks like a job for the existing [noteinfo] object.

No. How [noteinfo] (or any another object) alone could implement that functionality? You need 2 objects.
Did you see the [pd pitch-based-splitting] example in the help of [notein.to.list]?

No. How [noteinfo] (or any another object) alone could implement that functionality?

No idea :) cause I didn't really get this yet ;)

Did you see the [pd pitch-based-splitting] example in the help of [notein.to.list]?

I just came here to say that I've seen it and that I really like it. I wonder if I can wrap this example as a single one called [note.route] or something. This is quite a low level thing for ELSE and it seems to only be useful for this kind of task.

this won't likely make into my next update, but I will think about what to do here and will eventually surely include this functionality in ELSE one way or another.
Thanks for the suggestion!

[note.split] sounds nice

I think that [note.split] suggests the classic split based on fixed pitch, e.g. when you dedicate the lower part of your MIDI keyboard to one instrument, and the upper part to a different instrument.
Maybe [note.splitvoices], as the point is to split the active voices into smaller groups.

[voice.split] - hmm, by the way, maybe [else/voices] could also do this :)


Add Option to Force Include Provided Items

Add -f (--force) option to force include the provided items (by either removing them from the exclude list or allowing them if advanced reborns). Example:
python3 optimize.py Havium Mine -f "The Grand Prism" "Precursor Mine"

It may also be good to remove all slipstreams from the exclude file by default and have them as an excluded category like advanced reborns. They do, however, provide a helpful example of how to use the exclude.txt file. Perhaps proper comments could work just as well, but they might prove more confusing to users new to these kinds of systems.


R updates

We're overdue for bumping the R package tree.
Hydra: https://hydra.nixos.org/jobset/nixpkgs/r-updates

The tree is looking really healthy thanks to @Kupac and @b-rodrigues, I think we're ready to merge.


Rework PSF fitting and reporting.

Resolves

#32
#31
#30
#29
#26
#13
#12

Codecov Report

Merging #33 (d4f658e) into main (ef51f0b) will decrease coverage by 27.00%.
The diff coverage is 33.12%.

@@             Coverage Diff             @@
##             main      #33       +/-   ##
===========================================
- Coverage   47.38%   20.38%   -27.00%
===========================================
  Files           7       12        +5
  Lines         937      775      -162
===========================================
- Hits          444      158      -286
- Misses        493      617      +124

Files Changed
Coverage Δ

src/napari_psf_analysis/_dock_widget.py
0.00% <0.00%> (ø)

...ri_psf_analysis/_tests/psf_analysis/test_fit_1d.py
0.00% <0.00%> (ø)

...ri_psf_analysis/_tests/psf_analysis/test_fit_2d.py
0.00% <0.00%> (ø)

...ri_psf_analysis/_tests/psf_analysis/test_fit_3d.py
0.00% <0.00%> (ø)

..._analysis/_tests/psf_analysis/test_psf_analysis.py
0.00% <0.00%> (-100.00%)
:arrow_down:

...ari_psf_analysis/_tests/psf_analysis/test_utils.py
0.00% <0.00%> (ø)

...c/napari_psf_analysis/psf_analysis/psf_analysis.py
42.23% <42.23%> (ø)

src/napari_psf_analysis/psf_analysis/fit_1d.py
100.00% <100.00%> (ø)

src/napari_psf_analysis/psf_analysis/fit_2d.py
100.00% <100.00%> (ø)

src/napari_psf_analysis/psf_analysis/fit_3d.py
100.00% <100.00%> (ø)

... and 1 more


Use the real path

When using a full qualified path to run the fs-cli then everything works
as expected, but if the fs-cli is used via $PATH then the path detection
return rubbish.
This can be fixed by using the real path via realpath.

We can't integrate this solution like that because it doesn't work on all machines. We instead added another implementation on the master branch that (hopefully) fulfills all needs in a conservative way. Please take a look at it and let us know if it's not sufficient for you.
And thanks for your contribution and your patience :)

Your solution looks much better, thanks! :+1:


Python error still Present?

I updated to the 1.0.3 version, but even with this I still get the same error message, it is with using Home assistant 1st, and openai 2nd.
Logger: homeassistant.components.assist_pipeline.pipeline
Source: components/assist_pipeline/pipeline.py:994
integration: Assist pipeline (documentation, issues)
First occurred: 8:19:04 PM (1 occurrences)
Last logged: 8:19:04 PM
Unexpected error during intent recognition
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/pipeline.py", line 994, in recognize_intent
conversation_result = await conversation.async_converse(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/conversation/agent_manager.py", line 108, in async_converse
result = await method(conversation_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/fallback_conversation/init.py", line 90, in async_process
agent_names[agent_id],
~~~~~~~~~~~^^^^^^^^^^
KeyError: 'ec096d1807e1cc6a84562ffa2c44f4db'

Hi @styphonthal, can you recreate this consistently? What are you asking? What is the exact steps you are taking to recreate it? Could you enable debug logging for fallback agent and provide the full logs?
I am unable to recreate this issue (I was prior to 1.0.3 though), so if I can have a way to recreate it I can look into it.

I am using the latest version of Home assistant OS, and esphome. I am using a ESP32-Box-s3.  Using fallback with HA as primary, Openai as secondary, I can recreate this error every time by saying a command I know will fail HA, but that Openai can do. I know this is Fallbacks problem as I can ask the exact same question (checking whisper logs to confirm) and if I replace Fallback with Openai it works. I can do commands that will go to HA without problem. This seems to be a problem caused by the latest updates, as previously it worked without problem. Turning on debugging gives me the same stuff:
Logger: homeassistant.components.assist_pipeline.pipeline
Source: components/assist_pipeline/pipeline.py:994
integration: Assist pipeline (documentation, issues)
First occurred: 10:24:01 AM (2 occurrences)
Last logged: 10:25:09 AM
Unexpected error during intent recognition
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/pipeline.py", line 994, in recognize_intent
conversation_result = await conversation.async_converse(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/conversation/agent_manager.py", line 108, in async_converse
result = await method(conversation_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/fallback_conversation/init.py", line 90, in async_process
agent_names[agent_id],
~~~~~~~~~~~^^^^^^^^^^
KeyError: 'ec096d1807e1cc6a84562ffa2c44f4db'

You didn't provide any of the debug logging. Could you please enable debug logging and provide me the full logs leading up to it?
When you reinstalled, did you delete and set back up the fallback conversation agent? I wonder if maybe something is saved that has it misconfigured?

it still says "1.0.0" in the Integrations area,

Good to know, I'll look into fixing that in 1.0.4

I just released v1.0.4, which may have a fix for it, but no guarantees. The main thing I was fixing was #12, but I threw something in there that may "fix" (more like, workaround) this. Though since I cannot recreate it myself, no guarantees.

With debug logging on, the error is the same:
2024-06-30 19:25:45.576 ERROR (MainThread) [homeassistant.components.assist_pipeline.pipeline] Unexpected error during intent recognition
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/pipeline.py", line 994, in recognize_intent
conversation_result = await conversation.async_converse(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/conversation/agent_manager.py", line 108, in async_converse
result = await method(conversation_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/fallback_conversation/init.py", line 91, in async_process
agent_names[agent_id] or "[unknown]",
~~~~~~~~~~~^^^^^^^^^^
KeyError: 'ec096d1807e1cc6a84562ffa2c44f4db'
2024-06-30 19:27:20.775 ERROR (MainThread) [homeassistant.components.assist_pipeline.pipeline] Unexpected error during intent recognition
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/pipeline.py", line 994, in recognize_intent
conversation_result = await conversation.async_converse(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/conversation/agent_manager.py", line 108, in async_converse
result = await method(conversation_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/fallback_conversation/init.py", line 91, in async_process
agent_names[agent_id] or "[unknown]",
~~~~~~~~~~~^^^^^^^^^^
KeyError: 'ec096d1807e1cc6a84562ffa2c44f4db'

So i removed it from integrations and from HACS. I manually went and deleted the directory and files also. Same error.
So i tried using the "assist" button to type in my response to see if anything changes, same error. Yet it works if I change it to openai. If I ask a question that "primary" can answer (my case home assistant), it will not give this error and will work, from this debug log:
2024-06-30 19:51:56.192 ERROR (MainThread) [homeassistant.components.assist_pipeline.pipeline] Unexpected error during intent recognition
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/pipeline.py", line 994, in recognize_intent
conversation_result = await conversation.async_converse(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/conversation/agent_manager.py", line 108, in async_converse
result = await method(conversation_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/fallback_conversation/init.py", line 91, in async_process
agent_names[agent_id] or "[unknown]",
~~~~~~~~~~~^^^^^^^^^^
KeyError: 'ec096d1807e1cc6a84562ffa2c44f4db'
2024-06-30 19:54:47.786 DEBUG (MainThread) [custom_components.fallback_conversation] Processing in en using conversation.home_assistant with debug level low: check if any doors are open
2024-06-30 19:54:48.056 ERROR (MainThread) [homeassistant.components.assist_pipeline.pipeline] Unexpected error during intent recognition
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/pipeline.py", line 994, in recognize_intent
conversation_result = await conversation.async_converse(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/conversation/agent_manager.py", line 108, in async_converse
result = await method(conversation_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/fallback_conversation/init.py", line 91, in async_process
agent_names[agent_id] or "[unknown]",
~~~~~~~~~~~^^^^^^^^^^
KeyError: 'ec096d1807e1cc6a84562ffa2c44f4db'

So, I was using openAi extended conversation, and decided to try to see if I can get the same error with the integrated OpenAi/Chatgpt, which I do not.
What is interesting is that the openAi extended conversation worked with Fallback conversation until the recent HA updates

First, thanks for a great integration!  After upgrading from version 1.02 to 1.04 I get the same error as styphonthal except with a different KeyError value that I believe is the ID of the fallback conversation agent I am using.   I am using HA version 2024.6.4.  I am running the custom "Ollama Conversation" integration that points to a local server running Ollama version 1.48 with a llama3 model as the Fallback Conversation Agent.  I reverted back to version 1.02 and it is working properly.

First, thanks for a great integration! After upgrading from version 1.02 to 1.04 I get the same error as styphonthal except with a different KeyError value that I believe is the ID of the fallback conversation agent I am using. I am using HA version 2024.6.1. I am running the custom "Ollama Conversation" integration that points to a local server running Ollama version 1.48 with a llama3 model as the Fallback Conversation Agent. I reverted back to version 1.02 and it is working properly.

Thank you, rolling back to 1.02 allows me to use "openai extended" which is much better than HAs openai integration

First, thank you so much @m50 for developing such a useful component.
I have the same error here with Fallback v1.0.4 and HA up to date.
Do you have all the information you need to look into this? If not, please let me know what you need and I will provide it.

So, I was using openAi extended conversation, and decided to try to see if I can get the same error with the integrated OpenAi/Chatgpt, which I do not.
What is interesting is that the openAi extended conversation worked with Fallback conversation until the recent HA updates

Thank you, rolling back to 1.02 allows me to use "openai extended" which is much better than HAs openai integration

So wait, sorry, it's not clear here, but is the Extended conversation agent (from HACS) not working now, but does work in 1.0.2? That's odd...
This would be way easier to test if I could recreate it.
I am curious @styphonthal or @Rafaille, if you delete and recreate your OpenAI integration, does it then work? I am curious what is different between my setup and yours. The one big difference is I setup my OpenAI integration in the latest version of HomeAssistant.
If I create a debug build that provides me additional information, could one of you provide me with a debug log from the debug build?

First, thanks for a great integration! After upgrading from version 1.0.2 to 1.0.4 I get the same error as styphonthal except with a different KeyError value that I believe is the ID of the fallback conversation agent I am using. I am using HA version 2024.6.1. I am running the custom "Ollama Conversation" integration that points to a local server running Ollama version 1.48 with a llama3 model as the Fallback Conversation Agent. I reverted back to version 1.0.2 and it is working properly.

Reverting back fixed it? Interesting, considering 1.0.3 had actual fixes for this issue for some people. Super weird that it worked for some and broke things for others. I'll have to take a closer look at what @ov1d1u did, maybe I can figure out what the issue is.

I am curious @styphonthal or @Rafaille, if you delete and recreate your OpenAI integration, does it then work? I am curious what is different between my setup and yours. The one big difference is I setup my OpenAI integration in the latest version of HomeAssistant.

I have just completely uninstalled the Extended OpenAI integration and component, then redownloaded and reinstalled it and I still see exactly the same error.

If I create a debug build that provides me additional information, could one of you provide me with a debug log from the debug build?

I am happy to do that yes. I will be away until Monday but I can definitely give it a go when I come back.
Thanks for the support!

Ok, good news (I guess?), I am now having the same problem with Extended OpenAI Integration, so I am able to dig into it myself. I will let you know if I need any assistance, but for now, I will dig into it. Hopefully I will have a fix out by Monday at the latest.

Hi, I created a beta release for the fix, if you could test it.
Just go into HACS, select Redownload, and enable Beta releases, and select v1.0.5-beta. This should fix the issues for everyone. Please let me know if everyone's issues are fixed, and I can merge and release a v1.0.5 proper. I don't want to release a v1.0.5 without knowing the issues are properly and finally fixes for everyone, as releasing code that I didn't personally have a hand in is how we got here.
I apologize for the length of time this took to fix. Now that I was able to debug the issue properly, it makes crystal clear sense what the issue was.

Works great now!
Thank you so much for the amazing support.

Thanks for the quick support.  Unfortunately I will not be home until
Monday to test it.
On Wed, Jul 3, 2024, 6:56 PM Rafaille @.***> wrote:

Works great now!
Thank you so much for the amazing support.
—
Reply to this email directly, view it on GitHub
https://github.com/m50/ha-fallback-conversation/issues/17#issuecomment-2207563832,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQOT3XJSBK4DL4AWFRIH6DZKSFTZAVCNFSM6AAAAABKCWASH6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMBXGU3DGOBTGI
.
You are receiving this because you commented.Message ID:
@.***>

The 1.0.5 fixed my problem.

1.0,5 Fixed #19 for me! Functional now with LocalAI

I have merged the fix and released v1.0.5 officially now. Thanks for validating y'all, glad we could get this fixed :)


Add optional file_type for scene.load()

This adds an optional file_type for the scene.load() method (and sceneFileType for the Tangram Leaflet layer constructor). This allows for zip files to be loaded without .zip extension (previously, the filename had to end in '.zip' to trigger zip-loading).
This is useful for cases like loading a blob URL that contains a zipped scene file (see #565). For example:
scene.load(zip_blob_url, { file_type: 'zip' });
or
layer = Tangram.leafletLayer({
   scene: zip_blob_url,
   sceneFileType: 'zip',
   ...
});

This also updates internal naming of scene.config_path to more intuitive scene.base_path. The existing scene.config_path accessor will be maintained for now, but eventually deprecated. Options to scene.load() should also be passed as an object, e.g.:
`scene.load(scene_url, { base_path: 'https://site.com/scene/resources/' });
(The previous public documented API only had a single second argument, which was used for base path - this is still backwards compatible but should be discouraged.)

We also check filetype based on the extension of the file url. Maybe make sense for ES to also have an optional fileType with our sceneLoad API.

Released in v0.13.0


Update the external content subset

Updating a number of externally managed content pieces in Mondo, including the rare subset and otar managed content and more.
The large number of removed "inferred_rare" cases are due to the updated gard subset.

Without the input data used for the changes, I don't see how this can be checked in any detail.
@sabrinatoro do you have insight into these content changes and can review?


Request: Filtering file by extension in FileChooserDialog

Material Dialogs version: <IP_ADDRESS>
Hi there, I'd like you to add this feature, i.e. filtering file according to its extension with FileChooserDialog. In <IP_ADDRESS> version, the only feature I found is filtering file by its mime-type.
new FileChooserDialog.Builder(this)
            .extensions("002", "bin", "exe") // we can use varargs here
            .show();

I hope you introduce this feature in the next release. Thanks in advance.

You should just use the MIME type of the extension that you're filtering. You can use MIME wildcards too, like video/*.

Using mime with wildcards is not enough. For some cases, I just want to view files with numbered-extension, like 001, 002, 003 and so on. Where you can find this mime-type? I have searched theirs in this site, but I can't find one. Or, can we create our custom mime-type and list them in that site?


fix aks version variable reference

Summary
This should fix the k8s version variable reference in terraform.
Test Plan
I have ensured that the variable reference is matching across files.
Checklist

[ ] My change requires a change to the documentation and I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.

Thanks for the contribution!


[explore-v2] issues with wrapping existing viz's in V2

[x] table type has a dependency on slice.d3format:

[x] big number with trendline doesn't show big number

[x] big number doesn't render big number:

[x] directed force layout looks a little different....

[x] region filter is broken on /explore/

[x] /exploerV2/ has dependency on slice.getFilters

[x] heat map has some layout issues:

[ ] pivot table type throws an error in V2:

[x] sankey as layout/visual issues in V2:

[x] sunburst has layout/visual issues in V2:

[ ] world_map type throws an error in V2:

https://github.com/airbnb/caravel/pull/1361
https://github.com/airbnb/caravel/pull/1360
https://github.com/airbnb/caravel/pull/1359
https://github.com/airbnb/caravel/pull/1353

https://github.com/airbnb/caravel/pull/1432

https://github.com/airbnb/caravel/pull/1443


Update index.md

docker-compose scale command correction

What does this PR do?

Motivation

More

[ ] Added/updated tests
[x] Added/updated documentation

Additional Notes

Hi @trotro,
My bad, when I tried to rebase your Pr on branch v1.7. I do an error and It closed your PR. Could you please open a new one on branch v1.7 please

Hi @mmatur,
The new PR is done. Sorry for its name "Patch 2". I was on my phone and didn't pay enough attention.


Support Null Safety

Please can you support null safety

Working on it, feel free to put in a pull request :)


Anahr - NOT matches Jobs number on the peviitor.ro with https://anahr.ro/

ENVIRONMENT: production
URL: https://scrapers.peviitor.ro/
Browser: Chrome
Device: Laptop
OS: Windows 10
STEPS TO REPRODUCE:
1.Open the URL in the browser
2. Search for the "Anahr" Company.
3. Click on the "Careers" button.
4. Open https://anahr.ro/en/areas/jobs-by-domains/
5. Click on the " See Jobs" button.
6. Open peviitor.ro
EXPECTED RESULTS:
The Jobs number on the peviitor.ro match with https://anahr.ro/
ACTUAL RESULTS:
NOT matches Jobs number on the peviitor.ro with https://anahr.ro/
ATTACHMENTS:

Those are job categories, a job can be in multiple categories for instance Administrative / Logistics, output, accountancy, can you retest and check if there is really a bug regarding the number of jobs?

Re-tested, The Jobs number on the peviitor.ro match with https://anahr.ro/


itertools.zip_longest issue

Got this error:
File "igc_lib_demo.py", line 13, in print_flight_details
zipped = itertools.zip_longest(flight.thermals, flight.glides)
and fixed editing it with:
File "igc_lib_demo.py", line 13, in print_flight_details
zipped = itertools.izip_longest(flight.thermals, flight.glides)
not sure is the correct way?!
I'm testing your code on a Cloud9 VM with Ubuntu 14 and Python 2.7.6.
thanks,
Martino.

Hey, yeah, this is a Python 2 vs Python 3 problem. It's izip_longest in Python 2 and zip_longest in Python 3.
I've changed to regular for i=0..len-1 loops: 060abd5f806e75d36b0c0b0b88ff215ab801341c


docs: update badges

Thank you for contributing to errors!
Please add a summary of your change
Does your change fix a particular issue?
Fixes #(issue)
Check list:

[ ] Mark if documentation changes are required.
[ ] Mark if tests were added or updated to cover the changes.

Codecov Report

Merging #8 (75d4f62) into main (a3d9fb1) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main       #8   +/-   ##
=======================================
  Coverage   97.37%   97.37%
=======================================
  Files           6        6
  Lines         534      534
=======================================
  Hits          520      520
  Misses         12       12
  Partials        2        2

Flag
Coverage Δ

unittests
97.37% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Fixed #35119 -- Updated EmailField & EmailValidator max_length to 254.

Working on the issue 35119.
I have changed the maximum allowed length of the django EmailValidator to 254 characters, making it equal to the default max length of the email field.
Updated the Django Email Validator to limit the max length of the email field to 254 characters as per code(RFC 5321 SMPT and RFC 5322 Internet Message Format).

Hello @skushagra, thank you for your work on this!
Have you given any though to my comment in the ticket about backward compatibility and whether a deprecation warning is needed?

Yes, I am currently working on a this. I believe showing a deprecation warning is essential. I however wanted to know that how exactly this should be done. If possible you can tell me something about that.

Yes, I am currently working on a this. I believe showing a deprecation warning is essential. I however wanted to know that how exactly this should be done. If possible you can tell me something about that.

Check out docs.


Cannot push the local repo to github

Hi Kelvin
I've been trying to push my 1st commit to remote origint, but failed with below error.
voclabs:~/environment/seneca-acs730-ansible-k8s (main) $ git push -u origin main
Enter passphrase for key '/home/ec2-user/.ssh/id_rsa':
ERROR: Permission to kktse/seneca-acs730-ansible-k8s.git denied to kasuna-sam.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

You are pushing to this public repository for which you do not have permissions for. See GitHub Classroom for your designated repository.


Gene with no id inside the file "drkg.tsv"

Thanks for all your effort. Great content!
Inside the file drkg.tsv lines 4123208-4123214 contain genes without id info. You might want to delete them or fix them. You can find with regex search for Gene::\t

Also, I see 22 more genes with no id. You can find them with regex search for Gene::\n. For example, you can see them on lines 4122083, 4138986, 4145818, etc...

In case you are interested, I created a kind of extended version of your data https://github.com/canbax/derman Basically it also contains some data properties.


ActiveAdmin 1.0 and 1.1.0 are out

Please update the gemspec
See the https://github.com/activeadmin/activeadmin/blob/master/CHANGELOG.md

@fabn , wanted to check if you can create a gem for this.


Rename layout.md to boxconstraints.md

...including in the links to that page in the framework. And setup a redirect.

I don't find either of these names in flutter/flutter, flutter/engine or flutter/website.  Speculatively closing.


[iOS] Device doesn't receive notification

Expected Behaviour
A notification should be appear and an ionic alert in the app
Actual Behaviour
The app doesn't receive the notification
Reproduce Scenario (including but not limited to)
The device is registered in the backend when we send an example notification. In Android it works perfectly but not in iOS.
Steps to Reproduce
Platform and Version (eg. Android 5.0 or iOS 9.2.1)
iOS 9.3.2
(Android) What device vendor (e.g. Samsung, HTC, Sony...)
Cordova CLI version and cordova platform version
cordova --version                                    # e.g. 6.0.0
cordova platform version ios                     # e.g. 4.0.0

post your payload and more information, because this problem can be many things.

@dipedro can you tell me where I can find it? I read it in a few issues but I don't know where config it

@Davids89 yeah, we really need more info in order to debug this one.

@Davids89 in your payload backend you have it: "content-available": 1 ?
You can also try this : https://github.com/phonegap/phonegap-plugin-push/issues/899

I think that the problem is in APN because the implementation follow the tutorial

I solved creating a new provisioning file, I didn't know it. Thanks a lot.


Showing as corrupt package in <IP_ADDRESS>

Hi there, I've been struggling to style a table for a client site and this was about to save my bacon! However, when uploaded to the packages folder it will not install, saying that the Add-On is corrupt.
I would really like to use this if there is any chance it might be updated to work on this version or above??

Have you renamed the "/packages/msv_table_master" folder to just "/packages/msv_table"?

Have you renamed the "/packages/msv_table_master" folder to just "/packages/msv_table"?

Yes, that was the problem @mhawke


disable github actions

github actions runs the comment validation for every comment which in
turn downloads and runs a new container on every execution.
This is wasting many resources and also there is a big delay when
starting a test so need to think for a different design and for now will
disable GH actions.
An addition to this people are receiving an email for each posted
comment that fails the validation
Signed-off-by: Krasi Georgiev<EMAIL_ADDRESS>

cc @geekodour


throwError() result is cached

Sometimes I like to validate the arguments for the function where the httpClient is used. If the arguments are invalid I use the throwError() function. Currently the logic of your library (which I find to be a great solution that inventively uses the power of typescript) will cache the result of throwError(). I wonder if it could not cache the result.
I did find a way around, which is to instantiate an HttpErrorResponse and pass that to the throwError() function, but I wonder if that should be required.
Thanks for your hard work!

Hey @fimius23, I will try to find some time tomorrow or over the weekend, but in the meantime - a stackblitz repro is always welcome :)))

I'm not able to reproduce this problem. I did have a witness who swears he saw it too, and we are both confused. Hopefully I didn't waste any of your time!

Not reproducible.


JWT Serializer body can be decoded without any secret key needed

Hi there.
As it seems from my tests, the TimedJSONWebSignatureSerializer provides token of headers and body which is just can be decoded using base64_decode function. No checking of secret key in the serializer. Therefore, the token is just exposed by anyone that knows how to split the token with . seperator, and with base64 decoder.
For example:
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
from itsdangerous import base64_decode

s = Serializer(secret_key='MyNameIsSecret')
token = s.dumps({"token_id": {"my": "name"}})
print(token)

header, body, something_else = token.split(b'.')

print(base64_decode(body))

Result:
eyJhbGciOiJIUzI1NiIsImV4cCI6MTU2MTI0MTczOCwiaWF0IjoxNTYxMjM4MTM4fQ.eyJ0b2tlbl9pZCI6eyJteSI6Im5hbWUifX0.hYY7ILk727DWUKU8TnYuRv2PCy3-1dxvHLS0LLTTmWg
{"token_id":{"my":"name"}}

In that case - what is the use of the secret key in this JWTSerializer, if there is no real encryption of the data?
Thanks

The whole point of itsdangerous is signing, not encryption. Like this you can transmit (non-secret) data through untrusted channels, e.g. session cookies stored in the browser.


External sourcemap fix

This PR contains two fixes:

a fix for external sourcemaps which weren't being loaded properly
added a missing callback

I think a similar fix is needed for picking up the correct files when creating a report. I am on holiday now, bit will investigate upon my return and add another PR then.

@bcoe I can see #697 has gone some way to fixing this issue. There are still a few minor fixes in this PR which I'll pull out into a fresh one.

@thegecko awesome 👍 I'm glad we're starting to get things sorted out better for folks who pre-instrument their files.


fix: nolint directives syntax

fix nolint directives syntax [a-z]+:[a-z].+
remove unused nolint directives
add a simple golangci-lint configuration

@ldez  thanks! released as v0.3.1


Allow specify paper build  and don't use legacy gamemode and difficulty

Hello,
This PR add environnent variable PAPERBUILD (default to latest) to specify wich paper build want download.
This PR also remove legacy usage of numeric gamemode and difficulty. From 1.14 this is legacy (source: https://minecraft.gamepedia.com/Java_Edition_18w48a)
Thanks

The updated image is now available on Docker Hub.


Feature/atcf class

Improving the atcf class to handle a-deck (forecast advisories) as well as b-deck (best track).

Typically used to extract "OFCL" record_type (official NHC advisory) in a-deck, but can request others such as "HWRF" and "HMON" if desired (requested_record_type optional input)
a-deck should be accompanied by start_date to determine which advisory to get (which initialization time)
test for Florence getting both a- and b- "file_deck" types, and various record types for the a-deck.
changing from BestTrackForcing and BestTrack usage to VortexForcing. Open to suggestions for better wording here.

@WPringle would you mind adding me as a collaborator to your repo?


Turning off word-based suggestions isn't enough for comments

I set editor.wordBasedSuggestions: false in my user-level settings, and even restarted vscode, but if I open a *.js JavaScript file and type the following:
    // If

Still, vscode pops up some kind of suggestions about the JavaScript keyword if, even though I'm trying to write simple English in my comment.  Is there any way to really, fully disable all suggestions for comments?
(Originally posted in an unrelated issue, #17426)

The problem is coming from code snippet suggestions being used inside comments.  For example, type the following and press ENTER:
// Fred's

When ENTER is pressed, VSCode inserts the following text:
// Fred'setTimeout(function() {

}, timeout);

Yes - we will have to revisit this. We have now an action that controls word-base suggestions but that's not so useful... The new idea is to control is quick suggestion should kick off when inside comments or strings. So, when explicitly requested suggestion (including words, snippets) will still come but not as you type (24x7-IntelliSense)

We have fixed that in the original issue. Quick suggestion aka 24x7 suggestions are not disabled by default when typing in comments or strings and must be enabled explicitly


http-prompt immediately exits upon receiving an interrupt without prompting for confirmation

I find myself exiting the program accidentally very often.
When using a shell like bash, I will often use Ctrl-C interrupts to abort my current prompt and start again. It would be super cool if http-prompt worked the same way.
Currently, an interrupt will exit the program without confirmation. That is problematic because my natural inclination when making a typo in a prompt is to Ctrl-C and retype it.
Using interrupts to exit is still fine, as long as it has some form of confirmation first. Other shells do things like:

Press Ctrl-C twice in a row to exit
Ask for a confirmation (Yn)

Also common is for an interrupt to just start a fresh prompt, which is what I would personally prefer.

Fixed in PR #53.


Feature Request: Curl Page Title

Perhaps doing a simple curl to get the page title of a page would help people sort and clean their lists. This could be include in results.txt or even separate output files??? So pages that return a name other than 404 or not found go into one result file and ones that return a page name other than 404, missing or not found go into a separate file. This way, especially with lists that have subdomains of a root domain like blogspot.com etc it would be easy to pick up blogs that no longer exist.
The reason for this is that lists that are full of sub-domains of a main domain, like this https://github.com/funilrys/dead-hosts/blob/master/add.2o7Net/tested-list/add.2o7Net.list first of all always show ACTIVE in results because the root domain is active. Getting a page title for each tested domain / sub-domain would quickly reveal which of those dub-domains are no longer actually there. Same applies to some lists that have hundreds of .blogspot.com domains in them.
Something like this?
Domain                                                                                Status      Expiration Date   Source     Analyse Date                      Page Title
---------------------------------------------------------------------------------------------------- ----------- ----------------- ---------- -------------------------------   ------------------------------------------------------------------
7wind.ru                                                                                ACTIVE      12-may-2018       WHOIS      Sat Jul 22 14:52:26 UTC 2017      404 Not Found
accentstudio.co.uk                                                                                ACTIVE      28-dec-2017       WHOIS      Sat Jul 22 14:52:27 UTC 2017      Hello this web site has a Page Title
acenar.com                                                                                ACTIVE      19-jan-2018       WHOIS      Sat Jul 22 14:52:27 UTC 2017      Hello this web page also has a page title
subdomain.acenar.com                                                                                ACTIVE      19-jan-2018       WHOIS      Sat Jul 22 14:52:27 UTC 2017      404 Not Found

Okay this gonna need some time but it's possible :+1:
But wouldn't it be better to catch the http code instead of the page title @mitchellkrogza ?

Yes possibly easier to decifer between 200 OK and 404 Not Found and 403 Forbidden messages than page titles.

Clear !!
I'm going to release 1.4.0 and it'll be implemented for the release after 1.4.0 :+1:

👍 Awesome looking forward to giving that a test run.

@funilrys Check this cheap and nasty .csv file output showing domain, status code, content type and redirect url (if any).
With this .csv file, one can take anything with a 000 or 404 or 408 or 403 or 500 or other strange error code and immediately knock them off the list.
Then one can run a separate test on the redirect url's column to see what those produce 😁  and then merge them together and run a test using a list of domains that did not redirect + the ones that did.
See:
https://github.com/mitchellkrogza/Stop.Google.Analytics.Ghost.Spam.HOWTO/blob/master/.dev-tools/_output_source/results.csv
The script .... as I said .... cheap and nasty but .... fast and effective. Took Travis CI 26 minutes to produce the .csv on a list of 5451 domains 👍

@funilrys sent you something on WeTransfer 👍  😀

Let me check I was out with friends ....

Okay for this issue the hardest thing is to develop some procedure/features and have to think about how data will be shown in a HTML file which I started to design :laughing:
about WeTransfer: Answered you:+1: :open_mouth:

Looking forward to seeing what you busy developing. Just came up with that
basic bash script this morning. No doubt you will improve upon it greatly
:)

The following may be me merged to the wiki after implementation of this issue and if we share the same thought about those codes
Consider the following as not fixed and open to modifications
For your code list, you should consider the following codes @mitchellkrogza :
As active

000
100
101
200
201
202
203
204
205
206

As potentially active:

300
301
302
303
304
305
307
500
501
502
503
504
505

As inactive or potentially inactive

400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417

Cool thanks Nissar, still lots of playing to do with this one. Trying to
add page title into the equation then it will also help diagnosing lists.
Kind Regards
Mitchell Krog

Visit me at https://mitchellkrog.com

License My Images From Getty Images Here
http://www.gettyimages.com/search/photographer?family=creative&page=1&photographer=mitchell krog&sort=best&excludenudity=true#license
or From Gallo Images Here
http://galloimages.co.za/Search?q=mitchell krog&p=1&a=1&l=2,1&st=2&dr=on&is=1&token=48034&pp=13&rc=6

@mitchellkrogza Updated my last comments about the codes
For the "checking redirection" part imagine that the redirection have a redirection which also have a redirection :stuck_out_tongue_winking_eye: :rofl: :rofl:

@funilrys yes indeed those with multiple redirects are the one's I am most interested in. I test all stuff added to my lists manually in a browser before they get added. I always run screen recorder to capture what's happening in the url bar of the browser as I often test a site and it does 1-7 redirects in a split second. So then I play back the screen recording and capture all those redirect links and then add them to my lists. ....... very time consuming as you can imagine 😬

Are you suggesting that I should add a follow redirection for funceble once we have the curl column ? :rofl:  :rofl:  :rofl:  :rofl:  :rofl:

It would probably kill funceble and Travis too 🤣  ..... this should be a separate project, a redirect-redirect checker.

Indeed yeah :rofl: imagine a dead-hosts with follow redirection :rofl: :rofl: :rofl: :rofl:

That could go awfully wrong very fast 🤣 🤣 🤣

A bit of teasing :stuck_out_tongue_winking_eye: what do you think of the following ? :smile_cat:

YEAH .... now we are heading in the right direction

Another teasing :wink:
Can you find the new directories? :smile_cat:
.
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── funceble
├── iana-domains-db
├── index.html
├── LICENSE
├── output
│   ├── hosts
│   │   ├── ACTIVE
│   │   ├── INACTIVE
│   │   └── INVALID
│   ├── HTTP_Analytic
│   │   ├── ACTIVE
│   │   ├── POTENTIALLY_ACTIVE
│   │   └── POTENTIALLY_INACTIVE
│   ├── logs
│   │   ├── dateFormat
│   │   ├── noReferer
│   │   ├── percentage
│   │   └── whois
│   └── splited
├── README.md
└── tool

Nice 👍  question, will running funceble on my repo like https://github.com/mitchellkrogza/Stop.Google.Analytics.Ghost.Spam.HOWTO automatically create the new folders if needed? and populate them with a .keep file so they get added and committed?
Looking forward to what's coming 😁

Thank you for the question @mitchellkrogza !!
Please report to #89 :wink: :+1:

So @mitchellkrogza If you have time can you tell me what you think of the new graph :smile_cat:


fix [wordpress] 'Can't generate version color for false'

closes #6068

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @chris48s!

  Generated by :no_entry_sign: dangerJS against f6753412271bbfbb74a52fdf9aaae264c52a9855

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @chris48s!

  Generated by :no_entry_sign: dangerJS against f6753412271bbfbb74a52fdf9aaae264c52a9855


MSID: 97643 Version: 1 DOI: 10.1101/2<IP_ADDRESS>8308

MSID: 97643
Version: 1
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>8308
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=97643
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>8308

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/97643v1
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>8308
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/97643/v1/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!


Change inputFile as string so it can be optional and not fail if not set or file does not exists

The inputFile property will be a string as a path to the report file. This way if the value is not set or the file does not exist the task does not fail and fail the build.
Gradle @InputFile  property does not work as @Optional (see this gradle issue https://github.com/gradle/gradle/issues/2016), so unfortunaly it will bring a breaking change in the configuration of the plugin.
A new option is added failOnInputNotFound as boolean. If set to true the task will fail if the inputFile does not exist.
Fixes #20, #26

After some thinking I'll keep the inputFile as @InputFile format and better use a workaround to not fail if the file does not exist.
The workaround is added in the readme and uses onlyIf to run the task only if the file exists.
tasks.jacocoToCobertura {
	dependsOn(tasks.koverXmlReport)
	val jacocoReport = project.layout.buildDirectory.file("reports/kover/report_that_does_not_exist.xml")
	onlyIf {
		jacocoReport.get().asFile.exists()
	}
	inputFile.set(jacocoReport)
	outputFile.set(project.layout.buildDirectory.file("reports/kover/cobertura.xml"))
}