Add feature to isolate individual Q&A sessions with the same AI Actor

Is your feature request related to a problem? Please describe.
The current AI Q&A website based on the ChatGPT API does not differentiate between different Q&A sessions when using the same AI Actor. This results in content from one session influencing another, which can lead to confusion and lack of context specificity.
Describe the solution you'd like
I propose a feature that will allow the website to distinguish and manage separate Q&A sessions, even when using the same AI Actor. This will ensure that content from one session does not affect another, providing a cleaner and more individualized experience for the user.
Describe alternatives you've considered
The official ChatGPT website and Poe have resolved this issue by using a history-based approach. However, given the implementation logic of this project, we should seek other solutions.
Additional context
This feature will greatly enhance the user experience and the functional integrity of the Q&A system. By isolating individual sessions, we can provide users with more relevant and context-specific interactions with the AI Actor. It will require a thoughtful design approach to efficiently implement this while keeping the existing logic of the project intact.

Thank you for raising this issue and suggesting a feature to improve the AI Q&A website based on the ChatGPT API. I understand that the lack of differentiation between different Q&A sessions can cause confusion and a lack of context specificity.
To address this, I recommend considering the following approaches and I would appreciate your input on which solution you prefer:

Session Management: Implement a session management system that assigns a unique identifier to each Q&A session. This identifier can be stored in a cookie or passed as a parameter in API requests.

Isolation of Sessions: Modify the backend logic to ensure that responses from the AI Actor are associated with the correct session identifier. This can be achieved by maintaining separate conversation history and context for each session.

Contextual Switching: Provide a mechanism for users to switch between different sessions or create new ones. This can be done by adding a session selection dropdown or a create new session button in the user interface.

Clear Session Termination: Clearly define the end of a session and handle session termination appropriately. This could involve providing a session end button or automatically terminating sessions after a specified period of inactivity.

Considering the existing logic of the project, it will be necessary to carefully design and implement these changes to ensure functional integrity. It may also be helpful to consult the ChatGPT API documentation for any specific guidelines or best practices related to session management.
Please let me know which solution you prefer, or if you have any other ideas or questions regarding the implementation. Your input will help us provide a more tailored and effective solution for the user experience.

Undoubtedly, session management is the key to solving this problem, but the UI part of the website that interacts with the user is equally important, which also represents the importance of context switching, and session isolation complements the aforementioned two.
But for now, I think the first thing to be solved is the problem of context switching, because this will quickly improve the user's experience. Now I will describe the potential bugs that currently exist on the site in the context of this issue and you can try to reproduce by following the steps below to have a full understanding and judgment of the problem:

First, open the website AI Assistant 007 and select Use default AI Actor and we can call it PageA.

Next, open a new AI Assistant 007 in a new tab, again choosing to use the default AI Actor, which we'll call PageB. At this time, PageA and PageB should have the same session interception point, that is, there is no AI dialogue behavior after PageA and PageB are opened.

Then, you can ask a question in PageA and wait for its answer. At this time, there should be a question and answer in PageA's conversation.

Similarly, ask another question in PageB and wait for the answer. This is the only question and answer in the conversation of PageB.

At this point, refresh PageB, and you will find that the content in PageA does not appear in the record, which means that this behavior has caused some contextual content to be overwritten or lost.

If you choose to refresh PageA, you will find that the content in PageA will be overwritten by the content in PageB. The results in steps 4 and 5 will cause a bad experience for the user's context use.

If the session expiration time points in PageA and PageB are different, then no matter refreshing PageA and PageB, the context of later expiration will be used. That is to say, once I use the same AI Actor to conduct two dialogues at the same time in a certain process, the cut-off time points of the two dialogues are inconsistent, and I accidentally refresh one of the pages, then I will have context confusion and the possibility of failure. At this time, if you want to restore the previous context, you can only do it through tedious and lengthy deletion and confirmation of deletion.

The above-mentioned bugs will bring extremely bad user experience to users. At the same time, it almost determines the fact that users cannot view a previous complete conversation, which will not only reduce the efficiency of users in solving some repetitive problems, but also reduce the user The use of patience.
Look forward to your attention and resolution to this issue!

Thank you for bringing up this issue and providing detailed steps to reproduce the problem. I can understand how the context switching and session management can impact the user experience on the website.
To further investigate and address this issue, could you please provide some additional information? Specifically, I would like to know the reasons and scenarios behind performing the described actions. Understanding the intended use case will help me better analyze and suggest possible solutions.
Looking forward to your response.
Xiaoming Jia

发件人: moonlight @.>
发送时间: Tuesday, September 5, 2023 10:06:45 PM
收件人: hddevteam/Azure-chatGPT-demo @.>
抄送: ming @.>; Comment @.>
主题: Re: [hddevteam/Azure-chatGPT-demo] Add feature to isolate individual Q&A sessions with the same AI Actor (Issue #1)
Undoubtedly, session management is the key to solving this problem, but the UI part of the website that interacts with the user is equally important, which also represents the importance of context switching, and session isolation complements the aforementioned two.
But for now, I think the first thing to be solved is the problem of context switching, because this will quickly improve the user's experience. Now I will describe the potential bugs that currently exist on the site in the context of this issue and you can try to reproduce by following the steps below to have a full understanding and judgment of the problem:

First, open the website AI Assistant 007 and select Use default AI Actor and we can call it PageA.

Next, open a new AI Assistant 007 in a new tab, again choosing to use the default AI Actor, which we'll call PageB. At this time, PageA and PageB should have the same session interception point, that is, there is no AI dialogue behavior after PageA and PageB are opened.

Then, you can ask a question in PageA and wait for its answer. At this time, there should be a question and answer in PageA's conversation.

Similarly, ask another question in PageB and wait for the answer. This is the only question and answer in the conversation of PageB.

At this point, refresh PageB, and you will find that the content in PageA does not appear in the record, which means that this behavior has caused some contextual content to be overwritten or lost.

If you choose to refresh PageA, you will find that the content in PageA will be overwritten by the content in PageB. The results in steps 4 and 5 will cause a bad experience for the user's context use.

If the session expiration time points in PageA and PageB are different, then no matter refreshing PageA and PageB, the context of later expiration will be used. That is to say, once I use the same AI Actor to conduct two dialogues at the same time in a certain process, the cut-off time points of the two dialogues are inconsistent, and I accidentally refresh one of the pages, then I will have context confusion and the possibility of failure. At this time, if you want to restore the previous context, you can only do it through tedious and lengthy deletion and confirmation of deletion.

The above-mentioned bugs will bring extremely bad user experience to users. At the same time, it almost determines the fact that users cannot view a previous complete conversation, which will not only reduce the efficiency of users in solving some repetitive problems, but also reduce the user The use of patience.
Look forward to your attention and resolution to this issue!
―
Reply to this email directly, view it on GitHubhttps://github.com/hddevteam/Azure-chatGPT-demo/issues/1#issuecomment-1706694037, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADMSNV7VRPUPEJZ7AZ4XSMLXY4WXLANCNFSM6AAAAAA4KR3BLQ.
You are receiving this because you commented.Message ID: @.***>


Optional automatic JIT of called functions

(Based on discussion in #2630)
A good use case for Numba is transparent compilation of user-defined functions as part of a larger API.  This works if the user supplies a monolithic UDF that only calls functions Numba is already aware of, then you just wrap the UDF with @jit.  If the user has created helper functions that are called from the UDF, the only possible compilation mode for the main UDF would be object mode or do a lot of hackery to rewrite the UDF to call JIT compiled versions of the helper functions that are created on behalf of the user.
This would be vastly simplified if one could have Numba transform the function body to replace all calls to functions (not already known to the compiler) with JIT-wrapped versions of those functions.  For lack of a better name, this option to @jit could be indicated with callees=True.
Some design thoughts for discussion:

I think callees should default to False: Compiling undecorated functions is unexpected behavior we only want to attempt if the user opts in.  Existing code would be unaffected by this change.
The compilation of the callees should inherit the JIT options of the caller (nopython, error_mode, parallel, fastmath, etc).  This would include callees=True itself, which automatically makes the compilation recursive.
To avoid accidentally trying to compile all of matplotlib (for example), we need to ensure that this can fail fast:

Make sure to do the recursive compilation depth first, so we can abort before consuming a ton of memory?
Should we only allow callees=True in conjunction with nopython mode?  This is going to be the primary use case (object mode is not going to do much at the moment), and being more restrictive, nopython mode is more likely to cut off a futile compilation attempt early.
Should we have a max recursion depth for compilation?

Bikeshedding on the argument name, recurse=True seems more obvious to me.
...or recurse_depth=0 as a default and then the user could override that to allow recursive compilation of nested functions to any arbitrary depth.

Yeah, I initially avoided that name because I was afraid it would be confused somehow with support recursively callable functions, but in retrospect, that was silly on my part.
+1 for using recurse.   recurse_depth (if we do it at all) should be a separate option that hopefully most people don't ever need to modify.

This is marked as completed in #4331, but that PR does something completely different from this (it compiles all the functions in a module). In my case I want to compile a function that calls another which calls another and I want all of these compiled BUT I also want to keep the non-compiled versions to compare them in benchmarks. Currently I do that using a wrapper per function, that chooses between compiled and non-compiled version to call, but that is ugly and difficult to maintain.


belinda-nextjs-01-135-add-all-remaining-field

Resolves #135

I want to add all remaining fields to the add product page:

productType
productGender
productSizeShoe
productSizes
productSizePantsWaist
productSizePantsInseam
productDescription
productImage

I also rename the file from product-page to add-product-page

DEMO:

@Robel-003 @taylorpapke thank you for the feedback, I updated with the correct path to add-product-page.


zbus: const qualifiers and intellisense previews

Remove const qualifiers on fields in structures that are only created or instantiated as const. This if primarily for consistency, in the same way that struct device fields and device->config struct fields are not additionally marked as const.
Add a line of whitespace between /* clang-format off */ comments and the first line of doxygen comment blocks. Some intellisense parsers will combine all sequential comment blocks when providing code context. This results in the control comment appearing in the help text for ZBUS_CHAN_DEFINE, for example.

The changes are reasonable. They will improve the code. Thanks for that. The only thing necessary to keep consistency is to add a const to the line zbus_observer definition macro.

The zbus observer cannot be declared const due to the mutable elements
https://github.com/zephyrproject-rtos/zephyr/blob/65f63622e273c19883b866d71a13e8f18b7d5c6c/include/zephyr/zbus/zbus.h#L148-L161

The zbus observer cannot be declared const due to the mutable elements

I have checked here, and it is possible. I will try to add that to your PR, ok?

The zbus observer cannot be declared const due to the mutable elements

I have checked here, and it is possible. I will try to add that to your PR, ok?

Done, I got mixed up with the compiler error messages when first trying it.

Rebased on v3.7.0

Rebased again for the unrelated CI failures


Kubescape project supply chain security self assesment

Overview
See https://github.com/cncf/tag-security/issues/1025
We are in the process of implementing supply chain security best practices in the Kubescape project.
The first phase of this process is to create a self-assessment based on https://www.cncf.io/announcements/2021/05/14/cncf-paper-defines-best-practices-for-supply-chain-security/.
The maintainers will create a list of expected changes and assess the complexity of implementing them.
We will use this issue to track this task.
cc: @dwertent @alegrey91 @mlieberman85

Hi all,
Here's the first part of the list with the expected changes/implementations.
[Securing the Source Code]
Verification

require signed commit: we should implement a pipeline to check for signed commits. Users that wants to contribute, needs to configure git with the following command: git config commit.gpgsign true. Difficulty: easy.
enforce full attestation and verification for protected branches: we should implement a pipeline to verify signatures before merge the PRs. The pipeline needs to perform the following command: git merge -S --veriy-signatures. Difficulty: easy.

Automation

prevent committing secrets to the source code repository: we should implement a pipeline with the trufflehog utility. Difficulty: easy.
define individuals/teams responsible for code and coding conventions: we should provide codeowners, .gitignore, .gitattributes and denylist files into the repositories. Additionally we could configure pre-commit hooks that runs linting pipelines to check code conventions. Difficulty: medium.
automate software security scanning and testing: run unit, functional and e2e tests (already implemented) + SAST & DAST scans. For SAST scans we can use gosec & golangci-lint (already implemented). Additionally, metadata from SAST scans, should be recorded and linked as hash to create chain of custody. Finally, code coverage and tests results should be published as badges. Difficulty: medium.

Controlled Environments

establish and adhere contribution policies: we should automate branch deletion from github platform. Difficulty: easy.
define roles aligned to functional responsibilities: we should create different roles in our organization such as Developers, Owners, Reviewers, Approvers, and Guests. Difficulty: easy/medium.
enforce an indipendent four-eyes principles: we should define the following policies: Avoid that the author of a PR can also be the approver of that. At least 2 people (one of them with write access to the branch) needs to approve a PR before merging it. Difficulty: easy/medium.
use branch protection rules: define a rule to avoid git push -fing on the branches. Difficulty: easy/medium.

Secure Authentication

enforce MFA: we should enable MFA and make it mandatory in order to access the repositories on github. Difficulty: easy.
use SSH keys to provide developers access to repositories: correct me if I'm wrong, but this functionality is already the default on github, so we should not implement anything here. Difficulty: not-applicable.
have key rotation policy: I don't know if github allow this, but in case, we should create a key rotation policy on it. Difficulty: not-applicable.
use short lived/ephimeral credentials: same as above. Difficulty: not-applicable.

We can start reviewing this and understand how to proceed. WDYT?

Yes, looks like the triage we needed here. Good job @alegrey91 . We should meet @mlieberman85 later this week and discuss with him

Hi @slashben @alegrey91!
Is help still needed on this?

Hi @slashben @alegrey91! Is help still needed on this?

Yes, it is @XDRAGON2002.
Do you have something already in mind?
Otherwise we can suggest you an issue to take care of.

Nothing as of yet, feel free to let me know what I can potentially help out with.

@alegrey91 @slashben also just as a probable addition to the list, maybe https://github.com/kubescape/kubescape/issues/1249 would be something we are also interested in?

Nothing as of yet, feel free to let me know what I can potentially help out with.

A good starting point could be this one:

automate software security scanning and testing: run unit, functional and e2e tests (already implemented) + SAST & DAST scans. For SAST scans we can use gosec & golangci-lint (already implemented). Additionally, metadata from SAST scans, should be recorded and linked as hash to create chain of custody. Finally, code coverage and tests results should be published as badges.

As first task, you could search for more SAST scan tools and then we can decide which one of them integrate in the pipeline.
gosec is already a good candidate, but we could add more tools to the list.
Then for each of them we could think to provide a badge on the README.md to show the result if provided.

Sure, I'll take a look! Thanks!

@alegrey91 I believe a combination of tooling might be better off for us since they could cover each other's weak points in cases providing a better reach for securing the code.
Taking a look at this list allows us a lot of good tools to use including:

go vet (out of box)
golangci-lint (already implemented)
gosec (great tool)
govulncheck (based off of go vulnerability database, extremely helpful)
gokart (extra security)

There are many more but a combination of the above mentioned ones would be more than enough to ensure confidence in our tool chain.
These could also be included into a pre-commit-hook which ties back to this point:

define individuals/teams responsible for code and coding conventions: we should provide codeowners, .gitignore, .gitattributes and denylist files into the repositories. Additionally we could configure pre-commit hooks that runs linting pipelines to check code conventions. Difficulty: medium.

Thoughts?

These could also be included into a pre-commit-hook which ties back to this point:

define individuals/teams responsible for code and coding conventions: we should provide codeowners, .gitignore, .gitattributes and denylist files into the repositories. Additionally we could configure pre-commit hooks that runs linting pipelines to check code conventions. Difficulty: medium.

Thoughts?

Personally, I'm a great fan of pre-commit-hooks, but we have to admit that is a bit intrusive for people who want to contribute. What do you think about that @slashben?

Well, in my opinion, while contributing to a security tool I don't think people would be put off by the fact that their contributions are being audited to ensure that the tool continues to remain secure ;)
I also prefer pre-commit-hooks because it allows me to ensure my code formatting and enforceable best practices which in most cases are things which would be requested by the project maintainers to be done anyways, so helps me in making all those changes even before I make an "unclean" commit. Saves a bit of time and hassle as a contributor ensuring I don't have to make a new commit just because I forgot to run a check ;)

Hi @slashben @alegrey91 were there any updates regarding this?
I just wrapped up a bunch of other issues I've been working on so have a bit more free time on my hands now, let me know what I should get busy with ;)
Thanks!


python3Packages.brottsplatskartan: init at 1.0.5

Motivation for this change
Python API wrapper for brottsplatskartan.se
https://github.com/chrillux/brottsplatskartan
This is a Home Assistant dependency.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

@fabaff May I ask why you are packaging all those Home Assistant dependencies? Seems like you're taking on a huge burden by maintaining all of them?

@fabaff May I ask why you are packaging all those Home Assistant dependencies? Seems like you're taking on a huge burden by maintaining all of them?

This is a semi-automatic executed nixpkgs-review which is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 110816 run on x86_64-darwin 1

3 packages built:

python37Packages.brottsplatskartan
python38Packages.brottsplatskartan
python39Packages.brottsplatskartan

This is a semi-automatic executed nixpkgs-review which is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 110816 run on x86_64-darwin 1

3 packages built:

python37Packages.brottsplatskartan
python38Packages.brottsplatskartan
python39Packages.brottsplatskartan

This is a semi-automatic executed nixpkgs-review which is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 110816 run on x86_64-linux 1

3 packages built:

python37Packages.brottsplatskartan
python38Packages.brottsplatskartan
python39Packages.brottsplatskartan

This is a semi-automatic executed nixpkgs-review which is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 110816 run on x86_64-linux 1

3 packages built:

python37Packages.brottsplatskartan
python38Packages.brottsplatskartan
python39Packages.brottsplatskartan

May I ask why you are packaging all those Home Assistant dependencies? Seems like you're taking on a huge burden by maintaining all of them?

I still have the romantic idea of beging able to install Home Assistant and be ready to go. No waiting till all required dependencies are installed during the first start, start again because g++ is missing and again because some devel libs are not present.
Approx. 90 % of the dependencies are very low maintenance. And the rest seems to be covered as those are broadly used Python modules. It's undeniable that at every new packages introduces possible risks and the possibility for extra work in the future.
I guess that in the meantime 50 % of Home Assistant's dependencies are present. It will not be possible to provide every dependency in the end due to licensing issues and other reasons but let's say 90 %. This would give one the option to run home automation in a very lean and highly customizable way without permanently depending on a internet uplink after the installation.

May I ask why you are packaging all those Home Assistant dependencies? Seems like you're taking on a huge burden by maintaining all of them?

I still have the romantic idea of beging able to install Home Assistant and be ready to go. No waiting till all required dependencies are installed during the first start, start again because g++ is missing and again because some devel libs are not present.
Approx. 90 % of the dependencies are very low maintenance. And the rest seems to be covered as those are broadly used Python modules. It's undeniable that at every new packages introduces possible risks and the possibility for extra work in the future.
I guess that in the meantime 50 % of Home Assistant's dependencies are present. It will not be possible to provide every dependency in the end due to licensing issues and other reasons but let's say 90 %. This would give one the option to run home automation in a very lean and highly customizable way without permanently depending on a internet uplink after the installation.

I still have the romantic idea of beging able to install Home Assistant and be ready to go. No waiting till all required dependencies are installed during the first start, start again because g++ is missing and again because some devel libs are not present.
Approx. 90 % of the dependencies are very low maintenance. And the rest seems to be covered as those are broadly used Python modules. It's undeniable that at every new packages introduces possible risks and the possibility for extra work in the future.
I guess that in the meantime 50 % of Home Assistant's dependencies are present. It will not be possible to provide every dependency in the end due to licensing issues and other reasons but let's say 90 %. This would give one the option to run home automation in a very lean and highly customizable way without permanently depending on a internet uplink after the installation.

I certainly see the benefit of that and it's why I started the Home Assistant module for NixOS a couple of years back. However, I just don't see normal Home Assistant users choosing to run it on NixOS. Those who do are enthusiasts who are able to package the dependencies they miss anyway.
The problem with Home Assistant is that the direction it's taking is orthogonal to the principles behind NixOS:

The dynamic installation of dependencies certainly makes sense for novice users but is downright scary for anyone who is used to installing packages with a package manager. Reminds of e.g. the Dropbox client for Linux downloading a binary to $HOME/... and exec'ing that. Luckily, --skip-pip solves that issue.
As far as I know, the NixOS module is still not able to work around the onboarding process and there is no upstream documentation of how to skip it. That means that the configuration is not actually entirely declarative.
Configuration can in principle be done in YAML but it seems like Home Assistant is moving towards configuration from the web interface. That isn't a problem if everything can still be configured in YAML and all options are properly documented. But I'm not sure that's the case.

To be fair, I haven't had a real look at Home Assistant in a long time, so my information might be outdated.

I still have the romantic idea of beging able to install Home Assistant and be ready to go. No waiting till all required dependencies are installed during the first start, start again because g++ is missing and again because some devel libs are not present.
Approx. 90 % of the dependencies are very low maintenance. And the rest seems to be covered as those are broadly used Python modules. It's undeniable that at every new packages introduces possible risks and the possibility for extra work in the future.
I guess that in the meantime 50 % of Home Assistant's dependencies are present. It will not be possible to provide every dependency in the end due to licensing issues and other reasons but let's say 90 %. This would give one the option to run home automation in a very lean and highly customizable way without permanently depending on a internet uplink after the installation.

I certainly see the benefit of that and it's why I started the Home Assistant module for NixOS a couple of years back. However, I just don't see normal Home Assistant users choosing to run it on NixOS. Those who do are enthusiasts who are able to package the dependencies they miss anyway.
The problem with Home Assistant is that the direction it's taking is orthogonal to the principles behind NixOS:

The dynamic installation of dependencies certainly makes sense for novice users but is downright scary for anyone who is used to installing packages with a package manager. Reminds of e.g. the Dropbox client for Linux downloading a binary to $HOME/... and exec'ing that. Luckily, --skip-pip solves that issue.
As far as I know, the NixOS module is still not able to work around the onboarding process and there is no upstream documentation of how to skip it. That means that the configuration is not actually entirely declarative.
Configuration can in principle be done in YAML but it seems like Home Assistant is moving towards configuration from the web interface. That isn't a problem if everything can still be configured in YAML and all options are properly documented. But I'm not sure that's the case.

To be fair, I haven't had a real look at Home Assistant in a long time, so my information might be outdated.

Those who do are enthusiasts who are able to package the dependencies they miss anyway.

Indeed, but I like to think that if the dependencies are present then people can save time and not have to repeat the work. Also, some dependencies are useful if one is interested in common IoT stuff.

As far as I know, the NixOS module is still not able to work around the onboarding process and there is no upstream documentation of how to skip it. That means that the configuration is not actually entirely declarative.

The documentation is having holes. At some point in the future everything will probably be configured through the web interface and stored in .storage. My hacky way for now is to write the data in .storage right after the installation. Will not work for all situations of course.

Configuration can in principle be done in YAML but it seems like Home Assistant is moving towards configuration from the web interface.

The "move-away-from-YAML" decision makes the usage easier for the average users when discovery is helping and the platforms are popular. The downside is flexibility was lost and the mixture at the moment

To be fair, I haven't had a real look at Home Assistant in a long time, so my information might be outdated.

No, they are pretty much match with mine :wink: .

Those who do are enthusiasts who are able to package the dependencies they miss anyway.

Indeed, but I like to think that if the dependencies are present then people can save time and not have to repeat the work. Also, some dependencies are useful if one is interested in common IoT stuff.

As far as I know, the NixOS module is still not able to work around the onboarding process and there is no upstream documentation of how to skip it. That means that the configuration is not actually entirely declarative.

The documentation is having holes. At some point in the future everything will probably be configured through the web interface and stored in .storage. My hacky way for now is to write the data in .storage right after the installation. Will not work for all situations of course.

Configuration can in principle be done in YAML but it seems like Home Assistant is moving towards configuration from the web interface.

The "move-away-from-YAML" decision makes the usage easier for the average users when discovery is helping and the platforms are popular. The downside is flexibility was lost and the mixture at the moment

To be fair, I haven't had a real look at Home Assistant in a long time, so my information might be outdated.

No, they are pretty much match with mine :wink: .


Migration from docker to containerd does not change container-runtime of worker nodes

What happened:
When migrating from docker to containerd the container-runtime of worker nodes does not change from docker to containerd when these nodes are being rotated.
What is the expected behavior:
After running the migration, newly created worker nodes should have containerd as container-runtime.
How to reproduce the issue:

Install kubernetes with kubeone-1.4.0-rc.0
kubeone.yaml

apiVersion: kubeone.k8c.io/v1beta2
kind: KubeOneCluster
versions:
  kubernetes: '1.21.9'
cloudProvider:
  aws: {}
containerRuntime:
  docker: {}

Migrate to containerd with kubeone-1.4.0-rc.0

apiVersion: kubeone.k8c.io/v1beta2
kind: KubeOneCluster
versions:
  kubernetes: '1.21.9'
cloudProvider:
  aws: {}
containerRuntime:
  containerd: {}

Rotate worker nodes

$ forceRestartAnnotations="{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"forceRestart\":\"$(date +%N)\"}}}}}"
for md in $(kubectl get machinedeployments -n kube-system --no-headers | awk '{print $1}'); do
  kubectl patch machinedeployment -n kube-system $md --type=merge -p $forceRestartAnnotations
done

Check container-runtime of newly created nodes

$ kubectl get nodes -owide
(relevant columns)
STATUS   ROLES                  AGE     VERSION   OS-IMAGE             KERNEL-VERSION    CONTAINER-RUNTIME
Ready    <none>                 3m51s   v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   docker://19.3.15
Ready    control-plane,master   44m     v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   containerd://1.4.12
Ready    <none>                 4m4s    v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   docker://19.3.15
Ready    control-plane,master   43m     v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   containerd://1.4.12
Ready    <none>                 4m1s    v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   docker://19.3.15
Ready    control-plane,master   42m     v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   containerd://1.4.12

Anything else we need to know?
Seems like the machine-controller deployment was not reconfigured like the docs state.

Once previous step is completed, machine-controller deployment will be
reconfigured with -container-runtime=containerd flag.

$ kubectl get deployments.apps machine-controller -oyaml | yq '.spec.template.spec.containers[].args'
- -logtostderr
- -v=4
- -health-probe-address=<IP_ADDRESS>:8085
- -metrics-address=<IP_ADDRESS>:8080
- -cluster-dns=<IP_ADDRESS>
- -node-csr-approver
- -join-cluster-timeout=15m
- -node-container-runtime=docker
- -node-kubelet-repository=quay.io/kubermatic/kubelet
- -node-pause-image=

If I edit the machine-controller deployment manually and change the arg to
-container-runtime=containerd the MachineDeployments get rolled correctly:
STATUS   ROLES                  AGE   VERSION   OS-IMAGE             KERNEL-VERSION    CONTAINER-RUNTIME
Ready    <none>                 40m   v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   containerd://1.4.12
Ready    control-plane,master   82m   v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   containerd://1.4.12
Ready    control-plane,master   82m   v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   containerd://1.4.12
Ready    <none>                 40m   v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   containerd://1.4.12
Ready    <none>                 40m   v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   containerd://1.4.12
Ready    control-plane,master   81m   v1.21.9   Ubuntu 20.04.3 LTS   5.11.0-1028-aws   containerd://1.4.12

The docs for the container-runtime migration suggest this change is being made
by the kubeone installer. So we either need to change the docs or fix the
installer.
Information about the environment:
KubeOne version (kubeone version):
{
  "kubeone": {
    "major": "1",
    "minor": "4",
    "gitVersion": "1.4.0-rc.0",
    "gitCommit": "a42407f815ceb762457738b4041823fbb5e1f5a9",
    "gitTreeState": "",
    "buildDate": "2022-02-03T15:28:27Z",
    "goVersion": "go1.17.5",
    "compiler": "gc",
    "platform": "linux/amd64"
  },
  "machine_controller": {
    "major": "1",
    "minor": "42",
    "gitVersion": "v1.42.4",
    "gitCommit": "",
    "gitTreeState": "",
    "buildDate": "",
    "goVersion": "",
    "compiler": "",
    "platform": "linux/amd64"
  }
}

Operating system: Linux
Provider you're deploying cluster on: aws
Operating system you're deploying on: ubuntu

Just as an update: This issue can be reproduced on aws and gcp.

yeah, it doesn't matter what provider is used. when we migrated machine-controller to addons we seems to forgot to update it after the migration.


Investigate dappkit issues with iOS -- celo-dappkit (trufflebox)

https://celo-org.slack.com/archives/C014SRL4URY/p1615916591004600
https://github.com/critesjosh/celo-dappkit
Timeboxed to 2 dev days

Related to issues with Expo framework. Works with Android, can't get started on iOS. Possible to do with versions, but could be more errors in DappKit or the tutorial itself.

Note: Setting up iOS is time-consuming


Add the reason why we should add the role details in the Advanced settings in Self Sign Up Config

In the enabling or disabling self sign up doc[1], we need to add a reason why we need to add a role Internal/subscriber.
[1] https://apim.docs.wso2.com/en/4.3.0/reference/customize-product/customizations/customizing-the-developer-portal/enabling-or-disabling-self-signup/#enabling-self-signup
Currently the doc[1] do not provide any reason why we add the role. The reason needs to be provided as since newly created user do not assigned any role he do not have necessary permissions to login, even though we can create a new user. By adding the internal/subscriber role, newly created user can login.

Fix for 4.4.0: https://github.com/wso2/docs-apim/pull/8570


multitouch

fixes #69

Any update on releasing this fix?

All I can say is "hopefully soon". It will help if you can test the https://github.com/d3/d3-brush/tree/two branch and confirm it works for your purposes.


HAWQ-200. Add the logic of freeing unused AO segment file status

Looks fine. +1.

The fix looks good. +1


Fix title column

description
Fix #12
As seen in the referenced issue the title column is offset to the right for all types without a number.
changes

the fix moves more code from print_notifs to the template of the gh api call.

I think this makes the code easier to read and fixes the backticks problem mentioned in PR #10.

The coloring is also done within the template and does not have to be defined in the shell anymore.
Time format has been changed to DD/MMM/YY as this is easier to read for both Americans and Europeans, happy to restore the old format if you wish or even better changing it to use the timeago function (see gh formatting).
For Release types they get a ✓ tick symbol.

code quality
Used extensions

spelling Code Spell Checker
formatting shell-format
linting vscode-shellcheck

Thanks! Will review later

All right, shall I add an additional comment to the timefmt function, it took me a while to figure out that I can only use these specific numbers.
# timefmt must use the reference time Mon Jan 2 15:04:05 MST 2006 to format a given time

@LangLangBart sure! I think this is well-known for using golang times.

Quick comment after using my setup:

Regarding the time format displayed, it makes more sense to display when exactly a message occurred. I would either vote for the old format, one with an abbreviated month, e.g. 02/Jan 15:04 or use the timeago function. My current format is bad because it lags the time of the date. If you get many messages about a problem in one day, all the messages would look the same.

tested on GNU bash 3.2 and 5.1, LGTM!


PDF resolution issue

Hi,
Thanks this plugin works great for me. Even though I am using a high resolution pdf file the catalog looks pixelated.
How and where can I fix the image/pdf resolution in the code.
Thanks.

I am finding even low resolution PDFs either take a while to load or remain blurry.

Did you find a solution to this issue? I'm trying to use this to present reports, and the text is very difficult to read, even though the downloadable report is super-sharp


fix: remove unused gatekeeper 3.8.1 and 3.10.0 for CVE fixes, and VHD storage space

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
For CVE exposure reduction - remove two, unused gatekeeper versions flagged for CVEs.
Which issue(s) this PR fixes:

Fixes #
Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Discussed with @nreisch, and he shared that their team will test and update this with the latest patch version to remove the remaining vulnerable component


Can not download problems

I was not able to download problems after login. I'm running the plugin behind corporate firewall, I am sure the proxy setting is working fine. The LeetCode log as below:
VS Code: 1.47.2
v10.20.1
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✘     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✘     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✔     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✘     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
 Premium   User                 Host
------------------------------------------------------------
    ✘      undefined            https://leetcode.com
- Downloading problems
[ERROR] Error: tunneling socket could not be established, cause=connect ECONNREFUSED <IP_ADDRESS>:80
login: pass: - Signing in leetcode.com
[ERROR] Error: tunneling socket could not be established, cause=connect ECONNREFUSED <IP_ADDRESS>:80
- Downloading problems
[ERROR] Error: tunneling socket could not be established, cause=connect ECONNREFUSED <IP_ADDRESS>:80
- Downloading problems
[ERROR] Error: tunneling socket could not be established, cause=connect ECONNREFUSED <IP_ADDRESS>:80
- Downloading problems
[ERROR] Error: tunneling socket could not be established, cause=connect ECONNREFUSED <IP_ADDRESS>:80

same issue - not be able to download problems. But different error code:
[ERROR] Error: self signed certificate in certificate chain
Also behind corp firewall.

Same here. (VSCode 1.63.2)
v17.4.0
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✔     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
(node:35028) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✔     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
(node:35029) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✔     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
(node:35030) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✔     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
(node:35031) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
 Premium   User                 Host
------------------------------------------------------------
    ✘      undefined            https://leetcode-cn.com
(node:35032) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
- Downloading problems
(node:35033) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
[ERROR] Error: unable to get local issuer certificate
- Downloading problems
(node:35093) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
[ERROR] Error: unable to get local issuer certificate
- Downloading problems
(node:35254) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
[ERROR] Error: unable to get local issuer certificate

Same here. (VSCode 1.63.2)
v17.4.0
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✔     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
(node:35028) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✔     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
(node:35029) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✔     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
(node:35030) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
 Active  Name               Version         Desc
----------------------------------------------------------------------------------------------------
   ✔     solution.discuss   2019.02.03      Plugin to fetch most voted solution in discussions.
   ✔     company            2017.12.18      Plugin to query by company for free user.
   ✔     cache              default         Plugin to provide local cache.
   ✔     retry              default         Plugin to retry last failed request if autologin.enable is on.
   ✔     leetcode.cn        2018.11.25      Plugin to talk with leetcode-cn APIs.
   ✔     leetcode           default         Plugin to talk with leetcode APIs.
(node:35031) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
 Premium   User                 Host
------------------------------------------------------------
    ✘      undefined            https://leetcode-cn.com
(node:35032) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
- Downloading problems
(node:35033) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
[ERROR] Error: unable to get local issuer certificate
- Downloading problems
(node:35093) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
[ERROR] Error: unable to get local issuer certificate
- Downloading problems
(node:35254) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
[ERROR] Error: unable to get local issuer certificate

same issue:
`TypeError: Cannot read property 'toString' of undefined
at /home/shangyexin2/.vscode-server/extensions/labuladong.leetcode-helper-1.0.0/node_modules/vsc-leetcode-cli/lib/log.js:55:31
at Array.map ()
at Object.log. [as info] (/home/shangyexin2/.vscode-server/extensions/labuladong.leetcode-helper-1.0.0/node_modules/vsc-leetcode-cli/lib/log.js:55:20)
at /home/shangyexin2/.vscode-server/extensions/labuladong.leetcode-helper-1.0.0/node_modules/vsc-leetcode-cli/lib/commands/user.js:121:13
at /home/shangyexin2/.vscode-server/extensions/labuladong.leetcode-helper-1.0.0/node_modules/vsc-leetcode-cli/lib/plugins/leetcode.js:523:14
at Request._callback (/home/shangyexin2/.vscode-server/extensions/labuladong.leetcode-helper-1.0.0/node_modules/vsc-leetcode-cli/lib/plugins/leetcode.js:422:19)
at self.callback (/home/shangyexin2/.vscode-server/extensions/labuladong.leetcode-helper-1.0.0/node_modules/request/request.js:185:22)
at Request.emit (events.js:375:28)
at Request.onRequestError (/home/shangyexin2/.vscode-server/extensions/labuladong.leetcode-helper-1.0.0/node_modules/request/request.js:881:8)
at ClientRequest.emit (events.js:375:28)

Downloading problems
(node:2729138) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use node --trace-warnings ... to show where the warning was created)
[ERROR] Error: tunneling socket could not be established, cause=getaddrinfo ENOTFOUND locakhost`

I solved the unable to get local issuer certificate with this
export NODE_TLS_REJECT_UNAUTHORIZED=0


Fix syntax

Exclamation marks define a comment in PERMAS. All subsequent characters in the line are ignored. Keywords begin with a $ sign.


postgresql-user not up to date

Describe the Bug
Submodule modules/postgresql-user is not updated within aurora-postgres-resources.
The line https://github.com/cloudposse/github-action-atmos-component-updater/blob/635735b8180db0003370950294376a864738903f/src/component_updater.py#L257 skip folders.
This could be the reason for skipping new versions for a "submodule".
Expected Behavior
Changes in a submodule only should be detected by the updater.
Steps to Reproduce
Steps to reproduce the behavior:

Configure component.yaml with version 1.310.0
I expect to get version 1.330.0
Updater say that no changes are detected.

Screenshots
2023-10-26T10:19:11.1443389Z [26-10-2023 10:19:11] INFO    Processing component: aurora-postgres-resources
2023-10-26T10:19:11.6096994Z [26-10-2023 10:19:11] INFO    Looking for PR with branch: component-update/aurora-postgres-resources/1.330.0
2023-10-26T10:19:12.0148588Z [26-10-2023 10:19:12] INFO    Executing 'atmos vendor pull -c aurora-postgres-resources' for component version '1.310.0' ...
2023-10-26T10:19:15.0423445Z [26-10-2023 10:19:15] INFO    Successfully vendored component: aurora-postgres-resources
2023-10-26T10:19:15.0428870Z [26-10-2023 10:19:15] INFO    Executing 'atmos vendor pull -c aurora-postgres-resources' for component version '1.330.0' ...
2023-10-26T10:19:18.2087857Z [26-10-2023 10:19:18] INFO    Successfully vendored component: aurora-postgres-resources
2023-10-26T10:19:18.2125023Z [26-10-2023 10:19:18] INFO    Looking good. No changes found

Environment (please complete the following information):
Anything that will help us triage the bug will help. Here are some ideas:

github action

@mbauhardt we are going to be overhauling component updates radically over the next 1-2 months. We're moving away from Git hosted artifacts for components and instead moving toward OCI to simplify, among other things, component updates. Stay tuned!
Also, see our latest change to atmos (vendor.yaml)
https://github.com/cloudposse/atmos/pull/448

Hey @osterman
i'm excited in the future changes. I stay tuned.
thx for answering


Support UTurn task

A task can be specified along with the Mission
The mission planner will calculate an u-turn trajectory instead of waypoints if the mission has an u-turn task.
Add an u-turn scenario for demonstration (May delete it before merging)

@JVillella

👍 I'm with David, let's merge as is. Some clean-up tuning can be done to the uturn method later.

(also, I would support deleting the scenario before merging in, or moving the uturn code to another scenario - my preference)


fix(zepto): apply patch to handle read-only event

Summary

This PR applies this patch from @ymoran00.
Some events have are read only and zepto can not update data property.
I can't reproduce it at the moment because I am on smartphone, but this problem was really painful.
Also it seems that it doesn't break anything, this patch worked fine on our project at work (it uses place.js).
Result

~By the way, should I remove build files from this pull request?
I wanted to ship them but they were desynchronized with actual source files.
The build is done before publishing on npm right?~
Thanks.

Thanks for merging.
Sorry for asking, but do you have an idea on when a new version will be published?
At the moment, I forked places.js and manually edited dist files to apply this patch :disappointed:

I will release Autocomplete tomorrow

Okay, thanks you! :slightly_smiling_face:


Export data

I'm submitting a ...  (check one with "x")
[ ] bug report => search github for a similar issue or PR before submitting
[x] feature request
[ ] support request => Please do not submit support request here

The data table is amazing tool but I would to export the data present in csv or something else instead to use another plugin to do that

Thanks for your suggestion but this is not something we are looking to add. Watch the video or check out the Architecture docs for more info.

i think many people like need export data.

Count me in: we had to rebuild this feature from scratch, which is very inconvient....

Please, check this it might help: https://github.com/swimlane/ngx-datatable/issues/809#issuecomment-332842776

+1 I would also love to have this feature!


Incorrect authentication failure message handling

Hi,
when auth failure happens, at some point this code will be executed (in file lexik/jwt-authentication-bundle/Security/Http/Authentication/AuthenticationFailureHandler.php):
    public function onAuthenticationFailure(Request $request, AuthenticationException $exception)
    {
        $event = new AuthenticationFailureEvent($exception, new JWTAuthenticationFailureResponse());

        $this->dispatcher->dispatch(Events::AUTHENTICATION_FAILURE, $event);

        return $event->getResponse();
    }

the issue is that $exception contains a specific error message, and new JWTAuthenticationFailureResponse() has the default message string 'Bad credentials'.
When event dispatched, response object is not updated and when after return $event->getResponse(); is executed it returns unchanged response object that was created in the beginning of a method ($event = new AuthenticationFailureEvent($exception, new JWTAuthenticationFailureResponse());).
So, we have a specific error message, but showing to the user a default one.

As a quick fix - create your event subscriber.
<?php

namespace App\EventSubscriber;

use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationFailureEvent;
use Lexik\Bundle\JWTAuthenticationBundle\Events;
use Lexik\Bundle\JWTAuthenticationBundle\Response\JWTAuthenticationFailureResponse;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class AuthenticationFailureSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents()
    {
        return [
            Events::AUTHENTICATION_FAILURE => 'onAuthenticationFailureResponse',
        ];
    }

    public function onAuthenticationFailureResponse(AuthenticationFailureEvent $event)
    {
        $message = $event->getException()->getMessage();
        if (empty($message)) {
            return;
        }
        /** @var JWTAuthenticationFailureResponse $response */
        $response = $event->getResponse();
        $response->setMessage($message);
        $event->setResponse($response);
    }
}

Fixed by #472


Implement row sampling with a SAMPLE statement

When working with large OLAP data, it can often be necessary to sample rows for performance reasons. Thus, I propose that adding a SAMPLE clause like the one in Clickhouse would be tremendously useful (and innovative!) for DuckDB. Bonus points for allowing for different sampling methods.
As an added point, when sampling and calculating statistical functions like standard deviation or variance, it would be possible to infer that one must use the _samp variant (and that that _pop variant is invalid)

I think this is a great idea and something we have discussed before. SAMPLE is not so different from LIMIT, with the exception that LIMIT happens before the end of the query (i.e. after any aggregates). Sample needs to be pushed right after the FROM clause.
That means that for a query such as this:
EXPLAIN SELECT a, SUM(b) FROM test WHERE a<12 GROUP BY a SAMPLE 10;

The resulting plan will look like this:
┌───────────────────────────┐
│       HASH_GROUP_BY       │
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│             #0            │
│          sum(#1)          │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│         PROJECTION        │
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│             a             │
│             b             │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│           FILTER          │
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│            a<12           │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│           SAMPLE          │
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│             10            │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│          SEQ_SCAN         │
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│            test           │
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│             a             │
│             b             │
└───────────────────────────┘

The sample operator can then use reservoir sampling to decide which entries to keep or to discard.

This should be implemented now in #1195. Documentation is here.


Expand type of cases for search in OK (courtbot)

About this PR
When CourtBot was spun our first focus was serving the criminal and felony cases for reminders. Since then @jdungan has expanded the oscn package to search more types of cases. We want to expand the the search and setup reminder system to include more types of cases in Oklahoma.
Acceptance Criteria

[ ] Endpoint to get information on any type of cases
[ ] Endpoint to send query to search cases

@julia-codes I think we can use the endpoints created from this issue be used in the clear-my-record project. What do you think?


Prisma Migrate: User was denied access on the database

Bug description
Hi everyone. First time submitting a bug(?) report. Yesterday I upgraded to Prisma 2.13.0 and everything seemed to go well but when i tried to run npx prisma migrate dev --preview-feature I got a P1010 error (User was denied access on the database).
The permissions all seem to be fine and I can connect to the database from either a client or the terminal. The already existing code also works just fine (I can read and write to the database) through the API with Prisma in the middle.
Also running npx prisma introspect gives me this: [libs/datamodel/connectors/dml/src/datamodel.rs:175:14] Every RelationInfo should have a complementary RelationInfo on the opposite relation field.
How to reproduce
Not sure. It's in a docker network and all was working fine until 2.13.0
Expected behavior
Prisma Migrate would create all the tables based on the schema file
Environment & setup

OS: Linux (Kubuntu)
Database: MySQL
Node.js version: Latest node 12 version from Docker
Prisma version: 2.13.0

Hi,
Thanks for reporting this! It has already been reported before, so I am going to close this as a duplicate of https://github.com/prisma/prisma/issues/4571


[BUG] Styling of entire column is not working

Prerequisites

[X] Checked if your Laravel Excel version is still supported: https://docs.laravel-excel.com/3.1/getting-started/support.html#supported-versions
[ ] Able to reproduce the behaviour outside of your code, the problem is isolated to Laravel Excel.
[X] Checked that your issue isn't already filed.
[X] Checked if no PR was submitted that fixes this problem.
[ ] Filled in the entire issue template

Versions

PHP version: 7.3.12
Laravel version: 6.2
Package version: 3.1.21

Description

The styling for the entire column is not working
Documentation
I'm exporting xlsx file
Steps to Reproduce

Create basic export class like in documentation
Add styles method same as in the documentation (the array one)

Expected behavior:

All cells under C column should have the same style, e.g font size 16
Actual behavior:

It accepts the single character parameter even on getStyle() method (fluent syntax) but the styles is not applying on export.
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.

If it doesn't work with getStyle() too, it's most likely an issue with PhpSpreadsheet

I also have the same problem, can't style entire column.

This is, sadly, a well-know EXCEL bug/problem/design choice.
Despite of WRONG documentation of Laravel Excel, you cannot apply a style to an entire column, but only to a range.
I solved, for example doing this in
    public function styles(Worksheet $sheet)
    {
        $styleArray = [
            'font' => [
                'bold' => true,
            ],
        ];

        $sheet->getStyle("D");

        $column_range = 'D1:D' . $sheet->getHighestRow();

        return [
            $column_range  => $styleArray
        ];
    }

This is working with v3.1.23

This is what I also did, get the highest row and subtract some rows to style the footer

Using a column letter actually does work, but if you use more ranges, you need to use the highest row technique, according to PhpSpreadsheet.
I'm open for a PR which does this automatically (like we already do for rows).
If you think something is wrong in the document, please PR it.


ERROR in No Pipe decorator found on TimeAgoPipe

I've got the aforementioned error when running ng serve --aot
Angular version is 5.1.1.
No error when serving with just ng serve

I am having the same issue, without fix.

i too am having issue

Same issue, any ideas?

same issue

Issue still persists.

Got this issue when upgrading to angular 6

Same issue.

same issue

+1

+1

Same for me

Same error. Still not fixed.

same issue.

same issue.

same issue

Same issue

What is the fix ?

You can fix this by adding the missing decorator, add this line:
@Pipe({ name: 'TimeAgo' })
above the export line in the module source code, time-ago-pipe.d.ts
Make sure you refer to the pipe by the name specified

Still seeing this issue with Ang 8, and the above didn't work for me.

I also faced this issue and fixed by @JonesM87's suggestion.

still seeing this cant find a workaround.
ng serve - always works, but a save to any source file when it recompiles and I get the error.
strangely, only started happening after I inadvertently upgraded to Angular 9 and then had to uninstall and go back to angular 8.

still seeing this cant find a workaround.
ng serve - always works, but a save to any source file when it recompiles and I get the error.
strangely, only started happening after I inadvertently upgraded to Angular 9 and then had to uninstall and go back to angular 8.

Same issue here. I upgraded to Angular 9 yesterday and am getting this error on my local development web server (http://localhost:4200) ... I can run "ng serve" but if I change a file and it recompiles in response to me pressing "save" in my editor, this error appears:

In order to get going again, I have to kill the process and do a "ng serve" again, which takes a while. I'm probably going to have to comment out TimeAgo code for now until a fix is found. Luckily it's not referenced a whole lot, but would love to be able to reimplement it.

same issue here, ng serve works fine, but on any change in any file, upon recompilation, this error throws back. Any solution ?

Hey guys certainly not best solution but it's work fine. Rewrite pipe class and export it.
`import { Pipe, PipeTransform, NgZone, ChangeDetectorRef, OnDestroy } from '@angular/core';
@Pipe({
name: 'timeAgo',
pure: false
})
export class TimeAgoExtPipe implements PipeTransform, OnDestroy {
changeDetectorRef: ChangeDetectorRef;
ngZone: NgZone;
timer: any;
constructor(changeDetectorRef: ChangeDetectorRef, ngZone: NgZone) {
this.changeDetectorRef = changeDetectorRef;
this.ngZone = ngZone;
}
ngOnDestroy() {
this.removeTimer();
}
transform(value: any, args?: any): any {
this.removeTimer();
const d = new Date(value);
const now = new Date();
const seconds = Math.round(Math.abs((now.getTime() - d.getTime()) / 1000));
const timeToUpdate = (Number.isNaN(seconds)) ? 1000 : this.getSecondsUntilUpdate(seconds) * 1000;
this.timer = this.ngZone.runOutsideAngular(() => {
if (typeof window !== 'undefined') {
return window.setTimeout(() => {
this.ngZone.run(() => this.changeDetectorRef.markForCheck());
}, timeToUpdate);
}
return null;
});
const minutes = Math.round(Math.abs(seconds / 60));
const hours = Math.round(Math.abs(minutes / 60));
const days = Math.round(Math.abs(hours / 24));
const months = Math.round(Math.abs(days / 30.416));
const years = Math.round(Math.abs(days / 365));
if (Number.isNaN(seconds)) {
return '';
} else if (seconds <= 45) {
return 'a few seconds ago';
} else if (seconds <= 90) {
return 'a minute ago';
} else if (minutes <= 45) {
return minutes + ' minutes ago';
} else if (minutes <= 90) {
return 'an hour ago';
} else if (hours <= 22) {
return hours + ' hours ago';
} else if (hours <= 36) {
return 'a day ago';
} else if (days <= 25) {
return days + ' days ago';
} else if (days <= 45) {
return 'a month ago';
} else if (days <= 345) {
return months + ' months ago';
} else if (days <= 545) {
return 'a year ago';
} else {
// (days > 545)
return years + ' years ago';
}
}
removeTimer() {
if (this.timer) {
window.clearTimeout(this.timer);
this.timer = null;
}
}
getSecondsUntilUpdate(seconds) {
const min = 60;
const hr = min * 60;
const day = hr * 24;
if (seconds < min) {
  // less than 1 min, update every 2 secs
  return 2;
} else if (seconds < hr) {
  // less than an hour, update every 30 secs
  return 30;
} else if (seconds < day) {
  // less then a day, update every 5 mins
  return 300;
} else {
  // update every hour
  return 3600;
}

}
}
`


Make it possible to configure standard glazed flags in a much more flexible way

Now that we load data from yaml and use cmds.Parameter for all flags, it is probably easier to:

change flag name
make flag optional
other ?

This is probably closely related to #145

Superseded by #183


[MM-10519] Remove channel from MoreChannels whenever a channel is converted form public to private

Summary
Remove channel from MoreChannels whenever a channel is converted form public to private.
Also migrate MoreChannels to PureComponent using redux store.
Ticket Link
Jira ticket: MM-10519
Checklist

[x] Ran make check-style to check for style errors (required for all pull requests)
[x] Ran make test to ensure unit and component tests passed
[x] Added or updated unit tests (required for all new features)
[x] Has server changes (https://github.com/mattermost/mattermost-server/pull/8798)

Updated commit of mattermost-redux which includes related change (https://github.com/mattermost/mattermost-redux/pull/502)


Allow type import from .d.ts using subpath import alias

🔍 Search Terms
.d.ts subpath imports
✅ Viability Checklist

[X] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[X] This wouldn't change the runtime behavior of existing JavaScript code
[X] This could be implemented without emitting different JS based on the types of the expressions
[X] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[X] This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
[X] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

⭐ Suggestion
Assume an esm project using TypeScript 5.4.2.  ("type": "modules" in package.json and "compilerOptions": {"module": "nodenext"}} in tsconfig.json)
Given export interface Foo {} in internal/api.d.ts, I can import type {Foo} from './internal/api.js' in index.ts.
But if I use subpath imports to map the internal directory in package.json ("imports": {"#internal/*.js": "./internal/*.js"}), then I cannot write the same import using the aliased module specifier: import type {Foo} from '#internal/api.js'

TS2307: Cannot find module '#internal/api.js' or its corresponding type declarations.

A workaround is to rename the .d.ts to .ts.  Then, it can be used with the #internal import alias.
📃 Motivating Example
While there is a difference in output behavior for a .d.ts vs. a .ts containing the same type declarations, it's currently fairly opaque why one wouldn't work here and the other would.  This is especially true for type imports which while using a .js extension only exist at compile time.  If a type-only import works for a .d.ts which will never produce compiled output, then it's unintuitive why a subpath alias would not also (abstractly) work for it.
💻 Use Cases
The current workaround is to rename the .d.ts to .ts or to use a relative import style.
This is confusing at the source level because it's not clear just reading the import why one works with the subpath alias and the other requires a relative path.
import type {Foo} from '#internal/a.js' // in ./internal/a.ts
import type {Bar} from './internal/b.js' // in ./internal/b.d.ts

The error messaging also doesn't help.  Even if there's no desire to change the subpath resolution behavior, it would be helpful if the error informed why trying to map to a .d.ts type did not work.

Is this perhaps the cause of https://github.com/webpro/knip/issues/567, or should i file a separate issue?

@ljharb This is just about resolving types through import aliased .d.ts module specifiers.

right -<EMAIL_ADDRESS>is the file that's giving me trouble (and that TS seems unable to exclude/ignore)

Ignores or skipLibCheck are not honored if the file is referenced.  It sounds from the other issue like you're trying to use something as a library that isn't packaged for that which isn't likely a TypeScript issue.

the file isn't referenced by me, though - altho i'm sure it's referenced by one of the package's files I'm importing.
indeed it's not packaged for use as a library, but i'm not sure why that'd mean TS should be permanently broken just because i'm using it thus?

What you're asking about is not related to this issue.

@nlwillia can you provide a reproduction or at least a tsconfig? I think rootDir and outDir may be a factor here.

@andrewbranch you're correct.  The outDir seems to be the factor.  Here's a repro.  The index imports an interface from two files, but only the .ts import compiles, not the .d.ts.  The import mapping references the outDir (which is necessary for the mapped import to work at all).

This setup is pretty hard to reason about. There's not going to be an api.js file at runtime, so module resolution correctly doesn't consider it a lookup target. Right now there isn't a distinction during module resolution as to whether you're resolving for the purposes of import type or regular import and it's not really apparent how one could be made either.
In fact, it's totally legal for module resolution to find a different module under this name if that file exists, e.g. internal/api.tsx

If you're naming api.d.ts because "This file just contains types so I'll name it .d.ts", this is an anti-pattern and should be avoided - .ts is the correct file extension even if you don't intend to have values in it. If it's trying to declare an external module that actually exists, it should probably use a form like
declare module "#internal/api.js" {
    export interface Foo { a: string }
}

Yeah, I can’t decide whether this should work or not. I agree with Ryan that the correct move here is to name the file .ts. An alternative that does work, as long as you’re only importing types, is to add an entry to imports like
"imports": {
  "#internal/*.d.ts": "./internal/*.d.ts",
  "#internal/*.js": "./dist/internal/*.js"
},

and reference the module as a type-only import with the .d.ts extension. That’s dangerous if you’re going to publish this package to npm, as you’d need to preserve the internal/api.d.ts file in the published package, when your first instinct might be to publish only the dist folder. It could be alright if this is in a private app, though.

I don't disagree that it's unintuitive.  Things have gotten kind of weird in general (though I understand why) with all the references to .js paths that might not exist due to noEmit or just not having built yet.  But from a type perspective, this is a difference in behavior that's hard to understand under the new model, and it's very strange to have your editor rejecting an import construction that works just fine elsewhere.
I ran across this in the context of porting a legacy project to ESM, and renaming the files is fine as a workaround.  I just thought it was important to at least document the discrepancy.  I was on the verge of ripping out subpath imports project-wide because I couldn't immediately discern why this one part of the code base was being flaky.

it's very strange to have your editor rejecting an import construction that works just fine elsewhere

It doesn’t though, in your example—there is no dist/internal/api.js. If you add one by hand, you’ll see the error change from

Cannot find module '#internal/api.js' or its corresponding type declarations.

to

Could not find a declaration file for module '#internal/api.js'. '/home/projects/stackblitz-starters-lfm265/dist/internal/api.js' implicitly has an 'any' type.

This seems correct to me. When we see that you’re resolving to something in the build output directory, we look for the corresponding build input for the .js file, which had to be a .ts file. A .d.ts file in the input directory could not have produced the target .js file, or even have been produced by the same compilation. So once we fail to find an input file, we try resolving in the output directory. There, we find nothing, so resolution fails. Or, in my edit, we find a .js file without type information.

It looks like another workaround would be to add paths, which is telling the compiler that this root is externally aliased, though it's unfortunate that information can't be wholly inferred from the package config.
    "paths": {
      "#internal/*": ["./internal/*"]
    }


Add files via upload

szu

@stinby I am sorry, this request has signs of fraud. I have to close it without merging.


The edge path doesn't work well with the CSS scale.

Describe the Bug
I'm trying to add the CSS style property transform: scale(0.7) to the reactflow component, but the edge path is shifted.

I don't know where the reason comes from. Maybe it's a react issue or an SVG issue?
Thanks!
Your Example Website or App
https://stackblitz.com/edit/vitejs-vite-q272d9?file=src%2FApp.jsx
Steps to Reproduce the Bug or Issue
Just like what's in the repro demo.
Expected behavior
You can click the button on the demo page, if scaling it after a while, it goes well, without shifting.
Screenshots or Videos
No response
Platform

OS: [Windows]
Browser: [Chrome]
Version: [124.0.6367.63]

Additional context
No response

Why do you want to scale the container? If you want to adjust the viewport, you should use setViewport.

React Flow needs the dimensions of the flow to figure out things - supporting scaling by transforms would add an immens overhead to this, because it would have to be respected in many internal calculations. You can however resize the flow component and adjust the zoom level of the viewport at the same time to achieve the same effect. (napkin math: halving the size while halving the zoom level should yield the same same effect as scaling)

Thank you for your suggestion! I will try it out later.


Update changelog for 0.15.0

Preparing for a 0.15.0 release

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 90.44%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
7256

Relevant Lines:
8023

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 90.449%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
7273

Relevant Lines:
8041

💛  - Coveralls


Update CONTRIBUTING.md

Just replaced Jarba's by Jarbas', as the original name already have 's' in the end.

Tks @josiasmainardi ; )


Can't seem to get this working with urxvt

I have the theme working in urxvt (via .Xresources), vim, and tmux but I can't get any colors to show up by following the nord-dircolors documentation. Any ideas?
Xubuntu 20.04 (Linux version 5.4.0-47-generic)
zsh v5.8
rxvt-unicode v9.22

Hi @brandoncordell 👋🏼
I need some more details in order to understand what exactly the problem is about. Could you please post a screenshot that shows the highlighting? Otherwise it's hard to find a point to a analysis.

Could be related #20 since the issue specifies the zsh.


Dr. Strangelove

Dveduu
Did you change the AI behavior on nukes? It seems that they use them all the time now. Not that I'm complaining.
The Sneaky Top Hat
Having looked at the files it seems the conditions for nuclear clearance has changed making much easier to use nuclear bombs more often, I would honestly prefer the old conditions of occupied provinces since it pretty much stops countries like the US and Russia from doing nuclear strikes against every country they fight in a war especially the countries like North Korea or Saddam Hussein's Iraq that really don't pose an existential threat to great powers like the US.
simsulla
Agree, the old conditions of occupied provinces (maybe a bit milder) should be reintroduced. Going Dr. Strangelove crazy is not very realistic.

I am not sure on where the change to use nukes more frequent comes from "all the time now".
But the way the AI nukes has changed, now it does not nuke all enemies in the war only a select few. This would lead to less nuking. But still it does this every year or so, as long as the war goes poorly enough for them.  This is addressed in "Global notification on nukes used #959". Closing the issue.

I think I have found a solution to this issue in when a country launches nuclear weapons at an enemy regardless of how powerful they are. The new system I propose is basically the same one that I described at the forums with a few minor additions. In this new system after reaching a certain number of provinces is occupied a nuclear power will be given two types of events to deal with both nuclear and non nuclear countries. If the leading enemy is a non nuclear power that isn't either a great or a secondary power the nuclear power will get a choice to drop nuclear weapons on them causing massive damage to the enemy and war exhaustion in the enemy country to skyrocket. If the enemy is a nuclear power the player will be able to force a nuclear peace on them under the threat of MAD. Also if you're wondering why I had included secondary powers, it is to prevent countries like France and Israel from being hit by nuclear weapons as both France and Israel have quite large nuclear arsenals.

Not


Isochrones: Estimated travel speed for the different travel modes?

Where can I look up the estimated maximum speeds for the different travel modes (foot-walking, cycling-regular etc.).
Are they adjustable?
Cheers
Fabian

@fatby check this link please https://github.com/GIScience/openrouteservice-docs

@TimMcCauley That's exactly what I was looking for, thank you!


Fix typo in boards.py

Fix typo on line 56 in call to parent.board_info_pte.clear()

Thanks  for the PR


Minimap overlay settings don't load from XML

For a few people, some of the minimap overlay settings are not loaded from XML after a game restart, with the minimap defaulting to their originally defined color/radius. As I have this bug myself, I've done some troubleshooting to try and figure out the root cause for it:
From what I understand, the issue with the overlay color/radius settings being ignored lies with a few specific calls of the Scribe_Values.LookValue method. I used the MiniMapOverlay_Colonists class for the purposes of debugging, but all MiniMapOverlay subclasses likely suffer from the same issue, as their colors reset too.
For the test, I used this XML (setting colonists to show as orange in the minimap) and changed the ExposeData method of MiniMapOverlay_Colonists to look like this. The resulting console output makes it clear the intended orange color for the colonist overlay is not loaded from the XML: the color field maintains its default green color, and my custom colorScribeTest variable maintains its default "empty?!?!" value, so the Scribe_Values.LookValue calls aren't doing anything.
However, there are some instances where the XML scribing is working as intended, such as when fetching the 'ccl_version' or 'visible' elements, so it's definitely not an access problem to the XML file itself, or the use of the Scribe_Values.LookValue method. Rather, the problem seems to be that the scribe mode is set to ResolvingCrossRefs at the time ExposeData is called (as the console ouput shows), which makes the LookValue method calls not do anything, because they only run any code at all if the mode is LoadSaveMode.Saving or LoadSaveMode.LoadingVars.
If you have any ideas on how to help identify the root cause for this, I'll gladly try them out.

My minimap only shows power lines and colonists. I see in the XML there are settings for other objects like wild life and visitors - are they supposed to show??

you can click the various buttons underneath the minimap. Give it a shot.

I have clicked them, I just worked out you can also right click them!


design: Publishing TxObjects

outline 8/26
first draft 9/2
post in engineering-designs 9/9

Closing for now.