Fix ESC key doesn't close debug modal

Details

If we open the debug modal while another modal/popover is showing, pressing ESC won't close the debug modal.
Fixed Issues

$ https://github.com/Expensify/App/issues/49802
PROPOSAL: https://github.com/Expensify/App/issues/49802#issuecomment-2385472320
Tests

Same as QA Steps

[x] Verify that no errors appear in the JS console

Offline tests

Same as QA Steps
QA Steps

Web/Desktop/iOS mWeb

Go to Setting > Workspaces > Select a workspace > Members
Press on the 3 dot menu
Press "Ctrl + D"
Press "esc" key
Verify the debug modal is closed
Repeat 2-5 multiple times

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

https://github.com/user-attachments/assets/da7a1d87-d942-42d2-95b5-7d92cd10a055

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/b8858988-32ba-49fc-81f0-c16d2f7bf08c

MacOS: Desktop

https://github.com/user-attachments/assets/fc77b4cd-4575-4762-88dd-2917ecf4088c

Shortcut doesn't work in Android/iOS/Android mWeb.

Onyx migration is handled here

I think not. No need to wait on that, right? They will handle the migration.

@parasharrajat Can we continue this PR? https://github.com/Expensify/App/issues/49103 is being put in weekly. There is no need to hold this one as I commented before
cc: @marcochavezf

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


Fix relative path for font

First of all, thanks for building this theme :)
I noticed some 404 errors when publishing this to a site with a baseUrl that isn't the web root (e.g. https://www.example.org/photos/ instead of https://photos.example.org/). There were a few places where the fonts folder was assumed to be in the web root, meaning the InterVariable.woff2 font wasn't loading correctly. I've updated the path to be relative where needed.

Nice catch, thanks! I did not think of relURL, so I made everything absolute. I also fixed the font location, could you test v2.2.1 of the theme?

v2.2.1 works great, thanks!


Set the CARGO_PKG_README environment variable

Problem
Cargo may rewrite the package’s Cargo.toml and move the README file around, relative to the manifest. I would like to include_str!() this README in my lib.rs, but am unable to do so right now, because if I specify include_str!("../../README") it works for development, but I can’t package my crate. Conversely if I specify include_str!("../README") it works when packaged, but not during development.
Proposed Solution
Having an environment variable that would tell me where to find the README file would probably be the most straightforward option.
Notes
No response

To me, it seems fine to add a new environment variable. You could follow how other environments were added. Basically you will

Set a new environment variable here
Add an explanation here for the new variable.
Assert the new variable has been set in this test.
Submit a pull request with a explanation why this is useful with a clear use case.

The Cargo team would probably do an FCP for that before merging.

@rustbot claim


Add installation and contributing guidelines

[x] Add pyfar wide guidelines for contributing
[x] Add pyfar wide guidelines for help
[x] Add highlighted Getting started to homepage

I have added the rst files to a new subpage, so it has the same style as https://pydata-sphinx-theme.readthedocs.io/en/stable/community/index.html. Then we can see how we ditribute all the information.
see https://pyfar-gallery--51.org.readthedocs.build/en/51/community/index.html

#52 should fix all the header linking problems

I've just skimmed the contribution guidelines. I'd prefer splitting them into a package specific and a general part. The specific part is the first half of the current guidelines, the general part is approx the second half of the current guidelines. Otherwise there are a lot of links which would need to be adapted or do not make sense depending on the package one is working on.

I have merged main into this branch and added a header entry for Contribute (we can rename it) and we can decide on the structure in Contribute tab together.

I just noticed, that when we add #59, the header link "Contributing" will lead to a page whose title is "Community". I recon we should adapt that.

I just noticed, that when we add #59, the header link "Contributing" will lead to a page whose title is "Community". I recon we should adapt that.

Lets first merge #59 in this case

@pingelit : We now consistently refer to the 'Contribute' section. Using community would also be possible and both terms are used by other packages. I think contribute might be a little clearer.
@ahms : I removed the sidebar configuration in conf.py that you highligted. I did not see any changes after removing it. I think used the defaults anyhow.
The failing test is caused by the TU-Berlin page being extremely slow. Everything is fine, apart from that.

Thanks for reviewing. I removed the deprecated intersphinx links and hope that its not a beer.

Thank you for taking care! since the Help section does not have an subpages we could hide the sidebar by adding this in the docs/conf.py

I would also be ok with leaving this as it is. In that case its less error prone if we add sections at a later point

Thanks for reviewing. I removed the deprecated intersphinx links and hope that its not a beer.

If so, I would take it over.


rendering issue with 3D tiles [nvidia, Windows]

godot version: e8192d4
here is pbr materials (toon settings, because default looked way to dark)

and here is simple diffuse shader (just aplying texture color)

second looks much better, but still has that brown halo. also creates sort of growing seams between tiles
turning on 'unshaded' creates more interesting stuff

seems like back faces render over the top
the color of that halo is set by the color of side faces (altering texture color here, changes halo color)

OS, GPU, driver?

well. may be i should add here a sample project. windows, gt710, latest driver (updated yesterday). i will post a project just in a minute

related (maybe even duplicate) issue: https://github.com/godotengine/godot/issues/10149

here is a sample
https://www.dropbox.com/s/outbjwqr6vxkb0p/render_sample.zip?dl=0

that's not GridMap, that is MultiMesh. but i think this is not related

@akien-mga i don't think that this is windows/nvidia only bug

Well until someone confirms the bug on another OS or another driver, that's our best guess. Most rendering issues are driver-related, and drivers are OS-specific.

You can very well imagine that "rendering is broken" is a false statement when it works great for most users (check the recent video showcasing rendering features). You can trust bug triagers to do their job as it should be done, we have experience :)

i indeed do not insist 😃 but there are some very recent bugreports about rendering issues. but they are concerned pbr. and in my case there is something deeper (because custom shaders do not work either), so i assume that this is very general issue, but it may be treated wrong because of those tags 🙄

Here is on Ubuntu and AMDGPU, 2a6cdfaf9

Ubuntu 16.04 / NVIDIA GeForce GTX 670 with 376.66 proprietary driver ff2cb35b90f5661d1bb5fb00fa657a9539449be0

i've just were experimenting with shaders. and found out the same behaviour, back faces were rendered over the front with culling disabled. but when i've placed another sphere inside the sphere that used a shader, everything was fixed.

The texture artifacting issue is being tracked in https://github.com/godotengine/godot/issues/27837. The rest is likely not relevant anymore in Godot 3.2. Please create a new issue if you can still reproduce this.


global components types are not supported after migration from v4.4.0 to v4.4.1

Reproduction
no reproduction link
Steps to reproduce the bug

I have file components.d.ts with my global components types
My components has theirs type:

After update to v4.4.1 components types are missing (without any other changes). Type is any

Expected behavior
support global component types from components.d.ts
Actual behavior
global component types from components.d.ts are not supported from v4.4.1
Additional information
node version 20.16.0

Please, search existing issues and pull requests before opening issues, it saves maintainers a lot of time 🙏


How to handle conditional rendering?

Consider the following example:
type Component1Props = { ... }
const Component1: React.SFC<Component1Props> = props => { ... }

type Component2Props = { ... }
const Component2: React.SFC<Component2Props> = props => { ... }

const Component3: React.SFC<???> = props => {
   // some prop from Component1Props
   if(props.prop1) {
      return <Component1 {...props} />
   }

   // some prop from Component2Props
   if(props.prop2) {
      return <Component2 {...props} />
   }
}

Ideally I want typechecker to handle two things:

It's required to pass either prop1 or prop2, but not both of them
If prop1 is passed then props are of type Component1Props and if prop2 is passed then props are of type Component2Props

P. S. I'm completely new to TypeScript and I'm not sure that it's even possible)

I will try to check more but for a quick feedback try:
Component1Props | Component2Props

Yeah, that was the first thing that I tried. Didn't work)

Will try to check this in the next two hours

this works for me...  does that fit your use case @smashercosmo
type Component1Props = { a1: boolean };
const Component1: React.SFC<Component1Props> = props =>
{props.a1}
;

type Component2Props = { a2: boolean };
const Component2: React.SFC<Component2Props> = props =>
{props.a2}
;

const Component3 = (props: {showprop1: boolean} & (Component1Props | Component2Props)) => {
   // some prop from Component1Props
   const {showprop1, ...rest} = props;
   if (showprop1) {
      return <Component1 {...rest as Component1Props} />;
   } else {
      return <Component2 {...rest as Component2Props} />;
   }
};

Well, not exactly) Consider real-life example
import React from 'react'
import { NavLink, NavLinkProps } from 'react-router-dom'

type AnchorProps = React.AnchorHTMLAttributes<HTMLAnchorElement>

const Link = (props: ???) => {
   if (props.to) {
      return <NavLink {...props as NavLinkProps} />;
   } else {
      return ;
   }
};

export default Link;

If user passes 'to' property NavLink should be rendered, if user passes 'href' then simple anchor tag should be rendered, but passing both 'to' and 'href' should result in compilation error). So at least one of two properties (to and href) is required, but passing both of them is forbidden.
P.S. Why aren't you using React.SFC in 3rd component?

cos i dont like React.SFC haha
hmm, so you want compile time error if both to and href are passed. this is stumping me.

I think that is related more to TypeScript than being related to TypeScript-React.
I was busy today.. but I'll invest some time in the next hours

This seems to work but it feels too much boilerplate for little gain, maybe there is a better way to do it. (Note that NavLinkProps contains 'href' so you need to omit it to work as you expect)
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>

interface LinkProps {}

type AnchorProps = React.AnchorHTMLAttributes<HTMLAnchorElement>
type RouterLinkProps = Omit<NavLinkProps, 'href'>

const Link = <T extends {}>(
    props: LinkProps & T extends RouterLinkProps ? RouterLinkProps : AnchorProps
) => {
    if ((props as RouterLinkProps).to) {
        return <NavLink {...props as RouterLinkProps} />
    } else {
        return
    }
}

<Link<RouterLinkProps> to="/">My link</Link> // ok
<Link<AnchorProps> href="/">My link</Link> // ok
<Link<RouterLinkProps> to="/" href="/">My link</Link> // error

wow. i think writing a React component with a generic type like that should definitely be included in this list, i really really like it. i wonder if we can boil this example down a bit simpler though.

Does this help?
interface IComponent1Props {
  foo: string
}

interface IComponent2Props {
  bar: string
}

const Component1: React.SFC<IComponent1Props> = ({ foo }) => (

component 1: {foo}

)
const Component2: React.SFC<IComponent2Props> = ({ bar }) => (

component 2: {bar}

)

type Foo = { prop1: true } & IComponent1Props
type Bar = { prop2: true } & IComponent2Props

const isFoo = (test: Foo | Bar): test is Foo => {
  return (test as Foo).prop1 === true
}

const isBar = (test: Foo | Bar): test is Bar => {
  return (test as Bar).prop2 === true
}

const Component3: React.SFC<Foo | Bar> = (props) => {
  if (isFoo(props)) {
    const { prop1, ...rest } = props
    return <Component1 {...rest} />
  } else if (isBar(props)) {
    const { prop2, ...rest } = props
    return <Component2 {...rest} />
  }

  return null
}

this is verbose but very readable. didnt know you could do tests like that!
i am going to add a link to this discussion. this has been very helpful to me.

You're welcome. I was lazy so i didn't name the types well 😆

@codepunkt you solution can be implemented with much less code using Discriminated Unions, but still it's annoying to specify extra props to differentiate one component from another.
@jpavon solution works, but again, it's annoying to specify generic type every time
I wonder why type guards don't work
import React from 'react'
import {
  Link as ReactRouterLink,
  LinkProps as ReactRouterLinkProps,
} from 'react-router-dom'

type LinkProps =
  | ReactRouterLinkProps
  | React.AnchorHTMLAttributes<HTMLAnchorElement>

function isAnchorProps(
  props: LinkProps,
): props is React.AnchorHTMLAttributes<HTMLAnchorElement> {
  return (
    (props as React.AnchorHTMLAttributes<HTMLAnchorElement>).href !== undefined
  )
}

export function Link(props: LinkProps) {
  if (isAnchorProps(props)) {
    return
  }

  return <ReactRouterLink {...props} />
}

If I then use Link component like this
<Link href="/hi" to="/hi">
    Hello
</Link>

TypeScript doesn't raise any error

fyi we've broken out the conditional rendering discussion into a bunch of different sections: https://github.com/typescript-cheatsheets/react-typescript-cheatsheet/blob/master/ADVANCED.md#typing-a-component-that-accepts-different-props
try the One or the Other method: https://github.com/typescript-cheatsheets/react-typescript-cheatsheet/blob/master/ADVANCED.md#props-one-or-the-other-but-not-both

There is this amazing blog by @andrewbranch on Discriminated Unions:
https://blog.andrewbran.ch/expressive-react-component-apis-with-discriminated-unions/
Can we add this somewhere in the cheat-sheet readme. (Amazing blog, hover over variables in the snippets and see the definition)
There are a few caveats, mentioned here and also in issues https://github.com/microsoft/TypeScript/issues/29703 and https://github.com/microsoft/TypeScript/issues/28131

I was very late to this party, but the recommended way of doing conditional rendering is a generic function for function components (or generic constructors for class components), unfortunately that does mean you can't use the SFC annotation.

@azizhk yup i already put it in https://github.com/typescript-cheatsheets/react-typescript-cheatsheet/blob/master/ADVANCED.md#typing-a-component-that-accepts-different-props but its a bit buried. i havent given much thought to how this section can be organized but i hope that people read every bit thoroughly and folow through on the links.
gonna consider this closed for now, open a new issue if people wanna re-ask stuff :)

(Thanks for the kind words, @azizhk 😄)


Added swedish translation

Added swedish translation in app/src/main/res/values-sv.

Thanks @henriklagergren !


filename only for imports

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

6 of 7 (85.71%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 87.398%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

sis_provisioner/models.py
4
5
80.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
430

Relevant Lines:
492

💛  - Coveralls


Added a feature to read commands from an XML file

Modified FileCommandQueueHandler to an abstract class
Modified the config.json file to add an xml-command-file path
Added JsonCommandQueueHandler. Inherits FileCommandQueueHandler
Added XmlCommandQueueHandler  Inherits FileCommandQueueHandler
Added QueuedCommands. Allows the deserializtion of a queue of commands

@FrancisGauthier It looks like the Travis build is failing because Linux is case-sensitive.
Renaming the file XMLCommandQueueHandler.cs to XmlCommandQueueHandler.cs should fix it.

Hi guys,
I would like to thank you all for all the positive feedbacks.
Cheers,

Thanks @FrancisGauthier, cool PR. Out of interest - how are you using the command queue?

Hi @jaredbroad, I'm using the command queue as an object to be able to deserialize a queue of ICommand. XmlSerializer does not allow serialization and deserialization of interfaces.
XmlSerializer serializer = new XmlSerializer(typeof (Queue)); //does not compile
In order to be able to read a collection of ICommand from XML without impacting the rest of the code, I had to create an object that inherits a queue of ICommand and  implement the interface IXmlSerializable :
XmlSerializer serializer = new XmlSerializer(typeof (CommandQueue));
I created a test case : ReadsMultipleCommandsFromXmlFile to validate the algorithm.
Cheers,

Closing as too specific.


search: add more filtering options for results

Thank you very much for a separate search page!
Now I dream of searching by specifying a specific directory and/or selecting certain tags. Is this possible in the future?

The reason for a dedicated search page was exactly because of your request.
This means that in the future, I will expand search options on the dedicated search page. I still have to work out what options may be reasonable.
I am thinking of something like in the Hugo discussion forum

Take custom taxonomies into account when implementing.


style!: test major version upgrade

To which ticket/issue is this PR linked to?
https://jira.lyft.net/browse/MGW-451
What does this PR add, change or fix?
this change is just for testing if major version will be upgraded
BREAKING CHANGE: just a test!
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Code refactoring
[x] CI/CD or build process changes
[ ] Other

:tada: This PR is included in version 2.5.5 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Migrate mattes/migrate to new repo golang-migrate/migrate

The mattes/migrate repo is archived since 8th May and superseded by golang-migrate/migrate now. Support for this repo instead (or mid-term both side-by-side to not break current app deployments) would be nice to keep up with features and security patches.
I might give the PR a try, but seeing how the repo patch is regexp in different tools (sed, grep, jq, tq) will likely make supporting both more complex that the benefit it offers.

Looking a bit closer, I actually believe this feature never worked, as the release binary filename (at least nowadays is migrate.linux-amd64.tar.gz not migrate-linux-amd64.tar.gz, which should have caused any in-the-wild users to raise issues.
So maybe a breaking change (and only supporting the new repo) is tolerable here.

Looking a bit further into the code, the additional-tools only supports migrate currently, which is not obvious from the README and support article. Maybe simplifying that feature and making it more flexible by letting its value be a script (as file or command[s]) in the repo to be run, is easier.
For example (and for compatibility reasons likely with a different key script|additional-script:
[metadata.heroku]
  additional-tools = ["./scripts/download_migrate.sh"]

or
[metadata.heroku]
  additional-tools = [
    [
      "curl -s -f -O migrate.tar.gz -L https://github.com/golang-migrate/migrate/releases/download/v3.4.0/migrate.linux-amd64.tar.gz",
      "tar xvz migrate.tar.gz",
    ]
  ]

Anyway, whole different can of worms.


.tsx files are not type checked

Current behavior
.tsx files are not type checked. This can be fixed in userland with a reportFiles option.
Expected behavior
Since ts-loader is configured for .tsx, I thought it would also check .tsx files.
Steps to reproduce the issue
Use the README config, then add a .tsx file with a type error in it.
Environment

fork-ts-checker-webpack-plugin: 1.5.0
typescript: 3.5.2
tslint: 5.18.0
webpack: 4.38.0
os: macOS Mojave

The fork-ts-checker-webpack-plugin uses the files/include/exclude rules of your tsconfig.json - are you maybe missing tsxfiles there?

I didn't use includes as ts-loader doesn't seem to care about it. But that makes sense!

Might be worth comparing your setup to this: https://github.com/TypeStrong/ts-loader/tree/master/examples/fork-ts-checker-webpack-plugin
I can say for sure that the checker checks tsx. 😁

Well damn it, reverted my changes and now it works. Classic. 😂
Sorry about the false positive! No idea why it didn't work before, but I swear I'm not crazy. 😅


Make non-command text easier to read.

Surrounds commands in triple backticks, making it code pretty, but not like it's a shell command. Sample:

cc @jscud


remove jobs that are not anymore built via dsl

Thank you for submitting this pull request
JIRA: (please edit the JIRA link if it exists)
link
referenced Pull Requests: (please edit the URLs of referenced pullrequests if they exist)

referenced pull request 1
referenced pull request 2
referenced pull request 2
etc.

How to retest a PR or trigger a specific build:

* a pull request please add comment: Jenkins retest this

@winklerm @Ginxo @rgdoliveira @lampajr
there are also seed jobs for
OSBS: https://github.com/kiegroup/kie-jenkins-scripts/blob/main/job-dsls/jobs/seed_jobs/osbs_seed_job.groovy
PROD: https://github.com/kiegroup/kie-jenkins-scripts/blob/main/job-dsls/jobs/seed_jobs/prod_seed_job.groovy
should the parameter removedJobAction also be set to DELETE
removedJobAction = Specifies what to do when a previously generated job is not referenced anymore.
Note: when using multiple Job DSL build steps in a single job, set this to "Delete" or "Disable" only for the last Job DSL build step. Otherwise jobs will be deleted and re-created or disabled and re-enabled and you may lose the job history of generated jobs. See JENKINS-44142 for details.

If you are sure that the target folders do not contain any non-JobDSL-templated jobs, then it looks good to me :)

The problem would happen only if the jobDSL end up deleting a complete folder.
All other jobs which were not generated/managed by the seed job are left untouched and won't be deleted


Access external URLs

When you ask ChatGPT about external resources, it either hallucinates:

Q: Explain https://sqlime.org/employees.sql?
A: The employees table appears to have columns such as employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, and department_id.

Or acknowledges that it doesn't have access to remote URLs:

Q: What is the content of https://sqlime.org/employees.sql? Make no assumptions.
A: As an AI language model, I cannot access external URLs on the internet.

We can probably fix this by fetching the external content and feeding it to the model.

What would be the expected response if a single request to OpenAI exceeds the content limit (a long article)?

It would be an error returned by the OpenAI API.

I agree. However it's possible to split a text into several requests

The max_tokens parameter in openai.ChatCompletion is the maximum number of tokens to generate (the number of output tokens). It's currently hardcoded to 1000.
The number of input tokens is determined by the user message. After replacing the URLs with their content, it could be significant.
OpenAI has a limit on the total number of tokens (prompt + input + output). It will return an error if there are too many tokens.
All of this is beyond the scope of this issue. Handling large numbers of tokens is important, but that's a question for another time.

Here goes: External links

    def is_text(self) -> bool:
        """Checks if the content type is plain text."""
        if not self.content_type:
            return False
        if self.content_type.startswith("text/"):
            return True
        if self.content_type in self.allowed_content_types:
            return True
        return False

Isn't it better to raise an exception instead of returning False? My idea is simple: users will understand that their links are unprocessable before request to Openai.

I prefer the current implementation. The bot states that it can't process the binary content:

Q: Explain this paper in simple terms https://arxiv.org/pdf/1706.03762.pdf
A: I'm sorry, but I cannot access the contents of the paper you provided as it appears to be unknown binary content. Can you please provide me with the correct link or the title of the paper so I can provide you with a clear explanation?

This is my example:

Read the most popular comments: https://www.youtube.com/watch?v=outcGtbnMuQ
I apologize, but the content you provided does not include any comments from viewers. Can you please provide a different link or specify where the comments can be found?

This is another case. The content type is OK (text/html), but the actual content is loaded dynamically via JS. I don't think I will support such cases.

I'm pretty happy with with the implementation so far.


Log error if DLC is missing

Most of the reasons why a CFD cannot be auto-rolled over are safe to ignore, which is why we log them on the TRACE level.
But if we try to roll over a CFD which does not have a CFD we almost certainly have a problem!

bors r+


Error: Unexpected state in afterSpecHandler when chrome browser crashes

Current Behaviour
When the chrome browser crashes during test execution, an error is thrown and the plugin does not exit gracefully:
Error: Unexpected state in afterSpecHandler: step-started (this might be a bug, please report at https://github.com/badeball/cypress-cucumber-preprocessor)
    at createError (/Users/entw003/Repos/cucumber-cypress-tests/node_modules/@badeball/cypress-cucumber-preprocessor/dist/helpers/error.js:9:12)
    at afterSpecHandler (/Users/entw003/Repos/cucumber-cypress-tests/node_modules/@badeball/cypress-cucumber-preprocessor/dist/plugin-event-handlers.js:276:43)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at Object.handler (/Users/entw003/Repos/cucumber-cypress-tests/node_modules/cypress-on-fix/index.js:32:20)

Desired Behaviour
It would be great if the plugin would handle this error. Currently this throws cypress into an exit which means other plugins depending that run after this may not run. In our instance this actually leads to false positives. Chrome memory errors have been an issue with cypress for some time now so being able to handle this scenario would be beneficial.
Test code to reproduce

Add a cy.pause() to a test
Run the test in headed mod, e.g cypress run --env TAGS="@focus" --browser chrome --headed
When you hit the pause, trigger the crash by pasting this into the browser:chrome://inducebrowsercrashforrealz

-->
Versions

Cypress version: 13.6.6
Preprocessor version: 20.0.2
Node version: 18.0.0

Hi @AMEntwistle, I've fixed this with v20.0.3

Fantastic, thank you @badeball

This probleme (or similare) was anew present, you can see the thread here : https://stackoverflow.com/questions/78687721/unexpected-state-in-beforespechandler-uninitialized-while-running-feature-file/78750096#78750096

@Rachel-BAO, if you're trying to solicit help, then you need to follow contributing guidelines. This almost always entails providing a reproducible example.


fix: single status line for one stream

This change makes status lines conditional on the number of streams. Previously, single stream results would report two identical results. This is a little confusing, since the results for single streams are identical. This change reports a single summary for single stream and multiple summaries for multi stream tests.

This change is

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 decreased (-0.08%) to 70.136%

Totals

Change from base Build<PHONE_NUMBER>:
-0.08%

Covered Lines:
876

Relevant Lines:
1249

💛  - Coveralls


refactor(extensions)!: refactor the extensions URLs and errors

mgmt extension:

separate the _zot/ext/mgmt into 3 separate endpoints: _zot/mgmt/auth, _zot/mgmt/notation, _zot/mgmt_cosign
better hanling or errors in case of signature uploads: logging and error codes (more 400 and less 500 errors)
add authz on signature uploads (and add a new middleware in common for this purpose)

userprefs and apikeys estensions:

consolidate these 2 extensions into a single extension with 2 separate endpoints: _zot/userprefs/repos (bookmarks and stars), _zot/userprefs/apikeys
remove the build label apikeys
logic to enable/disable the endpoints stays the same: repos - use the search config bool, apikeys - use the existing apikeys bool

Also move most of the logic adding handlers to the extensions endpoints out of routes.go and into the extensions files.
TODO: update documentation/links in this repo
TODO: double check build labels
TODO: double check for authz coverage on mgmt
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

mgmt -> zot/_ext/config
// mgmt/auth -> zot/_ext/auth
sign -> zot/_ext/notation
sign -> zot/_ext/cosign

Some "extensions" are core such as those related to Authentication, Signatures.
They will be enabled by default and have no configuration backing them ("extensions": { "enable": true/false ... etc
_zot/ext/config <- get and post/patch/put (in future) config based on credentials
^ there is "206 Partial Content"
_zot/ext/notation <- notation tool interactions
_zot/ext/cosign <- cosign tool interactions


Make asserts count dynamic in request builder section (2 places, in response & at top)

Assigned to @rka12

Fixed in PR #325.


rawio missing AlphaOmega implementation.

@samuelgarcia

neo.io.AlphaomegaIO was started long time by me but it was more or less a draft.
Them, Florent Jaillet tried to improved the code but did not finish because there was too many diffrent specifications and version fo alphaomega for the same format. Futhermore AlphaOmega did not provide clear specification documents to him.
So actual neo.io.AlphaomegaIO is not really reliable (even it should work in some cases), I think.
So porting it in it current state to rawio API is useless and painfull.
But with:

clear specification from AlphaOmega (Maybe today, it is easy to get)
user demand
some files (<10Mo) for testing that cover many cases and version
I could come back to this old code with some help.

Ah, I see. I have a bunch of files from an Alpha Omega MicroGuide. I'll take a look at what I can get from them using the current AO importer.
If that fails, should we / could we add an importer for the files generated by the Alpha Omega exporter tool (either .mat, .txt, etc)?

I contacted Alpha Omega and was told that the spec is not publicly available and that I should use the Matlab converter or the neuroshare dll, both of which are for Windows only. I've abandoned adding support for Alpha Omega files to my processing pipeline for now.
Is there any interest in adding support in Neo for loading the .mat files that their converter generates? An alphaomegamatio class?

Same situation as some years ago. Thank you trying.
I don't think it's worth add another intermediate data file format like alphaomega.mat.
The main idea is to get data directly.

I guess I will try the neuroshare api on Windows when I need to analyze these data.

I don't known if neuroshare offer a way to read chunk.


Add new pull policy newer

podman got a new pull policy : newer
https://docs.podman.io/en/latest/markdown/podman-build.1.html#pull-policy

newer
result in a :
 [ERROR] Error: can only set one of 'pull' or 'pull-always' or 'pull-never'
why not just pass the value wanted by podman build --pull= like seen in the documentation
always, true
missing.
never, false
newer

--pull-always has disappeared


fix bad german translation confirmOnQuit

"Ferdi in Infobereich minimieren" is the same as the minimize description. Updated german text for closing into tray

Pre-flight Checklist

Please remember that if you are logging a bug for some service that has stopped working or is working incorrectly, please log the bug here
If you are requesting support for a new service in Ferdi, please log it here
Please remember to read the self-help documentation - in case it helps you unblock yourself for issues related to older versions of recipes that were installed on your machine. (These will get automatically upgraded when you upgrade to the newer versions of Ferdi, but to get new recipes between Ferdi releases, this documentation is quite useful.)
Please consider supporting Ferdi!
👉 https://github.com/sponsors/getferdi
👉 https://opencollective.com/getferdi/donate
Please ensure you've completed all of the following.

[x] I have read the Contributing Guidelines for this project.
[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Description of Change
"Ferdi in Infobereich minimieren" is "minimizing to tray" but it should be "closing to tray" - updated german translation
Motivation and Context
identical namings for minimize to tray and close to tray (both say minimize to tray)
Checklist

(no code was changed, only one translation string)

[ ] My pull request is properly named
[ ] The changes respect the code style of the project (npm run prepare-code)
[ ] npm test passes
[ ] I tested/previewed my changes locally

Release Notes

Please contribute i18n translation contributions via https://crowdin.com/project/getferdi - any merges that we do here will be overwritten from crowdin unfortunately.

Thx for the information, I did some translation there :-)


Integration Tests for React

We claim that our design system works with React smoothly but testing our implementations with React is not something we always do. An automated integration test for React will give so much confident to us about our commitments.

We can use some tool like cypress for component testing in react (and also for different frameworks) to test baklava's components and visual testing to make sure components don't break after development. There are other notable tools like playwright and puppeteer for this kind of testing environment.

Today I thought maybe we can even start providing some stories in our Storybook for React wrappers as well. This can be an easy starting point. In this way;

We'll not need to put any extra steps for testing react wrappers.
We'll able to demonstrate react components.
We'll have visual snapshot tests for React wrappers as well.

Missing parts of this approach would be:

We'll not able to test integration with multiple React versions.
We'll not able to test our React setup. (like using baklava from CDN vs from NPM)


Added version command

Fixes #19
I've set the version to 0.1 for now

I've added this to the 0.5 milestone. Let's update the version to 0.5 then merge this and tag as 0.5 when the milestone is complete. After that I can make the cli.qutheory.io point to the latest tagged release instead of master.


ISSUE: After adding a lock to keymaster, I can no longer see data in the Home Assistant history page

Describe the bug
After configuring a lock with keymaster, clicking the history page in Firefox on my desktop shows the date range at the top with a spinning loading icon where the data visualizations should be. It does not load. The mobile app behaves similarly.
Environment (please complete the following information):

OS: HassOS
Type of system that HA is running on: RPi4, booting from USB3 hard drive (not SSD)
Home Assistant version: core-2021.10.6
Hassio/Docker/Core?: Core
Component version: v0.0.76 (assuming this is the keymaster version)
Z-Wave integration name: zwave_js
Lock make and model: Yale Asure YRD216

Logs
No errors in the Supervisor -> System tab after a fresh HA restart and reloading the history page
Screenshots

Additional context
I have deleted the keymaster integration for my lock and the issue persists (I still have the integration installed through HACS). I'm guessing the huge amount of entities for the lock is somehow overwhelming something, and they are persisting even though the entities have been removed.

Closing this issue. I reinstalled HA on an external hard drive instead of an SD card and I'm not having the history page issues any more (at least no lock ups - it still loads very slowly due to all the entities in keymaster).

The reason that this comes up is become of the number of entities we add which is pretty huge - logbook can't keep up on underpowered systems. Good motivation to reduce it if/where possible

Yeah, the number of entities is pretty nuts. It would be nice if there was a way in HA to flag entities and automations from add-ons so they can be hidden from normal view. It seems like I have 100x more entities and automations from keymaster than I do from everything else. Maybe the entity categorization introduced in 2021.11 could be useful here: https://www.home-assistant.io/blog/2021/11/03/release-202111/#entity-categorization
I'll open a new ticket for this.


[stable/traefik] Allow setting targetPort for https #885

Retry CLA

This is also beneficial because AWS will generate certs for you as long as you use them on ELB. They don't let you export them, so getting a BASE64 is impossible.

cc @krancour @c-knowles

@k8s-bot ok to test

targetPort is the internal port used by the pod so I can't see a need to customise this. Can you clarify your use case? Perhaps you meant port instead which is the external port and the one that would be used by an AWS ELB. In which case it should be done like the other charts, e.g. gitlab-ce.
I haven't tried this commit but I believe it customising targertPort won't work since the deployment still runs on 443 hence the targetPort can not be anything apart from 443. See kube docs for details.

Agree with @c-knowles

I don't know how I forgot / missed this. It relates to #885.
I'm still not totally crazy about this.

Ah I see. I need to double check our config but we're also terminating the SSL on ELBs and haven't needed to add this. Will come back tomorrow with what we have.

@c-knowles are you configuring the ELB manually or through annotations on Traefik's Service of type: LoadBalancer? I believe the issue in #885 is that the latter is the approach being employed and it doesn't offer sufficient flexibility to account for this.

We are using type: LoadBalancer. Here is our relevant config from values.yml sent to Helm:
ssl:
  enabled: true
  enforced: true
service:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: https
    service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: true
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: SOME_AWS_CERT_ID
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: '443'

All the service.beta.kubernetes.io/aws-load-balance-x annotations are native to k8s they are not part of this chart.
Setting these values gives you:

SSL termination at ELB
AWS certificate manager used
HTTP->HTTPS redirection using Traefik (since afaik ELBs don't support that out of the box)

Side note, also using area53 to add the DNS entries for the ELB:
service:
  annotations:
    # will end up as traefik.YOUR_AREA53_DOMAIN
    domainName: traefik
  labels:
    # enable area53 to add a route 53 DNS entry
    dns: route53

@blackstar257 does this cover your use cases or is there something I missed?
@krancour the only bit I can think of that is missing is if a user would like to disable port 80 on the Service/ELB and not have the http->https redirect.

Im looking to do ELB 443 SSL to Traefik via port 80
443 HTTPS ELB -> 80 HTTP Traefik -> 80 HTTP Application Service

@blackstar257 ok understood, the use case is similar https://github.com/kubernetes/charts/issues/885 as @krancour said above then. Sorry for my misunderstanding. I suppose if we want to make it harder for users to break the config we could allow the targetPort override to only be 443 or 80 as those are the only values that will stand a chance of working given the deployment.yml.
In the future we could maybe flatten the annotations into more concrete options for the Chart but then that would probably take away some of the flexibility.

I think this PR really needs to amend the documentation with some insight into why someone might want to do this. I think this is going to be a very rarely used feature and I'd like for users to understand it's for handling an advanced or specialized use case. In the general case, I just would not want users preoccupied with possibly fine-tuning this.

@blackstar257 can you update the README as @krancour suggests?

https://github.com/kubernetes/charts/pull/1017
Changing the way in which im achieving this. I think this will be accepted as a better solution.


avoiding NullPointerException agaist ConcurrentHashMap.get(key)

由于UserController.tokenMap 实例是ConcurrentHashMap，当key为Null时会导致NullPointerException，故而先一步检验authorization不为空

pls do not change package.lock and pom.xml with codestyle if you do not change any properties

pls do not change package.lock and pom.xml with codestyle if you do not change any properties

pls do not change package.lock and pom.xml with codestyle if you do not change any properties

changes have been revoked

@KeRan213539 @AlbumenJ
thanks for the kind code review.
this pull request contains too many changes that make sense only to my project locally, so i will close this one and open another cleaner request for the same issue 'avoiding NullPointerException against ConcurrentHashMap.get(key)'

@KeRan213539 @AlbumenJ
thanks for the kind code review.
this pull request contains too many changes that make sense only to my project locally, so i will close this one and open another cleaner request for the same issue 'avoiding NullPointerException against ConcurrentHashMap.get(key)'

OK, look forward to your contribution~

@KeRan213539 @AlbumenJ
thanks for the kind code review.
this pull request contains too many changes that make sense only to my project locally, so i will close this one and open another cleaner request for the same issue 'avoiding NullPointerException against ConcurrentHashMap.get(key)'

the new pull request as listed: https://github.com/apache/dubbo-admin/pull/691/commits

@KeRan213539 @AlbumenJ
thanks for the kind code review.
this pull request contains too many changes that make sense only to my project locally, so i will close this one and open another cleaner request for the same issue 'avoiding NullPointerException against ConcurrentHashMap.get(key)'

the new pull request as listed: https://github.com/apache/dubbo-admin/pull/691/commits

OK!


Create a k8s helm chart

What version of fleet are you using (fleet version --full)?
2.0.0-rc2
What operating system are you using?
Linux Ubuntu
What did you do?
Created a k8s helm chart to deploy the stack
https://github.com/gjyoung1974/kolide-fleet-chart
What did you expect to see?
This is a request to include a k8s helm chart
What did you see instead?
Please consider distributing a k8s helm chart like the following:
https://github.com/gjyoung1974/kolide-fleet-chart

@gjyoung1974 Maybe you'd like to add your repo to https://github.com/kolide/fleet#community-projects? I'd be happy to merge a PR for that.
I'm reluctant to add it into the repo as we would then become responsible for supporting it (and we don't use helm).

Perfect! I'll add it there thanks @zwass !
~G


The URL/script to fetch the latest werf binary

There has been no demand for a script to fetch the latest werf binary. All releases are available on GitHub, and the recommended way to install/update is via trdl through update channels.


Added Logstash Message Parser

Logstash Message Parser for backuping kafka data that was processed by logstash.
Uses type/timestamp_hourly in your storage path. (ie: restaurant-service-v1/2014/10/17/03)

@pablete Could you close this pull request and make one into secor-contrib?

Sure, I'll find some time to push to secor-contrib.


TestCreateCleanWithPrefix fails if KUBERNETES_MASTER is set

This test fails when the testing environment has the KUBERNETES_MASTER declared.
--- FAIL: TestCreateCleanWithPrefix (0.00s)
	client_config_test.go:228: Expected "http://localhost:8080", got "<IP_ADDRESS>:8080"
FAIL

$ echo $KUBERNETES_MASTER
<IP_ADDRESS>:8080

A similar case was here: #8646
I am not sure which is the correct way to fix this. Any suggestions?
/cc @jdef (4b8995f0093369465f728e686416b52f8b10b0a8)

how about this: add a bool flag (default of false is desired) to the DirectClientConfig struct:

type DirectClientConfig struct { ... ignoreEnvironmentConfig bool }
alter DirectClientConfig.getCluster() to check that flag and ignore EnvVarCluster if set
alter the failing test case such that it directly creates the DirectClientConfig instance, and sets the flag to true

/cc @ghodss


Tag releases and include AssemblyInformationalVersion attribute with commit hash code

Tagging releases allows to find the commit from which some specific version of the library was built from the git side. AssemblyInformationalVersion with commit hash code also helps with that too. It's better to include both of the options to give more flexibility. The attribute looks like this:
[assembly: AssemblyInformationalVersion("<IP_ADDRESS>-g23246c2")]

Good idea, care to submit a PR for this?

https://github.com/AArnott/Nerdbank.GitVersioning

Old issue, cleaning up


Flask.create_url_adapter should use SCRIPT_NAME, not APPLICATION_NAME

When Flask.create_url_adapter is supplied with a request, it passes the request on to Map.bind_to_environment from werkzeug.routing. This will result in a call to Map.bind, where the script_name argument is set to the value of the environment variable SCRIPT_NAME.
However, when it isn't supplied with a request, Flask.create_url_adapter will call Map.bind directly. Instead of SCRIPT_NAME, it passes the value of APPLICATION_NAME via the script_name argument. Per #1714, I understand that APPLICATION_NAME has nothing to do with routing. I guess this should change, but I'm not sure.
I discovered this when debugging a tangentially related issue that turned out to be in my own code (I assumed MapAdapter could ultimately be used to translate whole URL paths to endpoints, but it seems I have to strip off SCRIPT_NAME myself).

The argument is server_name, not script_name. The script name is not the server name.

I don't intend to point to this:
return self.url_map.bind_to_environ(request.environ,
    server_name=self.config['SERVER_NAME'])

I want to pointing to this:
return self.url_map.bind(
    self.config['SERVER_NAME'],
    script_name=self.config['APPLICATION_ROOT'],  # <--- this line
    url_scheme=self.config['PREFERRED_URL_SCHEME'])

That line seems wrong.

Please provide an example that reproduces the issue you're having.

@rhymoid the parameter passed is APPLICATION_ROOT to the script_name parameter. Flask calls it application root because script name is very confusing. So this is intended behavior.

@Larivact's comment in #1714 says otherwise. So does the documentation.

The documentation is slightly misleading here. It's also used for the session cookie but not exclusively.

I'm a little bit confused right now what the exact issue is you're running into here.

That comment is misleading. The dev docs are already updated to explain both places it's used. I agree with mitsuhiko that it's not clear what the issue is at this point.

Alright, then it's probably nothing but a documentation bug. If the documentation had been accurate, I'd think this would be a bug waiting to happen for cases where APPLICATION_ROOT and SCRIPT_NAME were not equal.

@davidism for what it's worth i would not be opposed to a mode where we forcefully override the wsgi server for prefixes, server name, ssl etc. I am in fact running myself a wsgi middleware usually that forces stuff to be consistent.


Gulp build doesn't move vendor assets

Hey! I'm a huge fan! I noticed that in my latest build, gulp build no longer moves the items under app/bower_components to the vendors folder. Not sure if this is something I'm doing wrong or an actual issue. Thanks for the hard work!

Hi. Thanks for your kind words :) This project is quite old now, I haven't got much time to update and maintain it.
Gulp looks for thebower_components directory specifically, not app/bower_components. If you have your bower dependencies downloaded into app/bower_components, you have to modify the gulpfile.js file on the line 61 - https://github.com/klapec/bourbonify-jekyll/blob/master/gulpfile.js#L61.
Feel free to ask if you need anything, more than happy to help!

Ah, this was exactly what was wrong! Thanks!


Fix bug in grafana admin password reset script

Grafana CLI global options must come before command and command options. Currently we are seeing the following error in less /var/vcap/sys/log/grafana/post-start.stdout.log:
[Wed Nov 20 14:30:12 UTC 2019] Resetting grafana admin password ...
Waiting for grafana to listen on port 3000 (0/60)
Grafana is ready
Incorrect Usage: flag provided but not defined: -homepath

NAME:
   Grafana cli admin reset-admin-password - reset-admin-password <new password>

USAGE:
   Grafana cli admin reset-admin-password [arguments...]

This is because the grafana-admin-password script was passing the -homepath and -config global options after the admin reset-admin-password command, which is not supported. I have verified this fix works by manually updating /var/vcap/jobs/grafana/bin/grafana-admin-password to fix the argument ordering on a running prometheus deployment and verifying that the script no longer fails.
I assume that the argument ordering requirement was introduced into the grafana CLI at some point after this script was made.

Easy test to verify CLI requires argument ordering:
grafana/175f14a4-8180-4553-807a-7f431f733119:/var/vcap/jobs/grafana/bin# /var/vcap/packages/grafana/bin/grafana-cli admin reset-admin-password -homepath foo
Incorrect Usage: flag provided but not defined: -homepath

NAME:
   Grafana cli admin reset-admin-password - reset-admin-password <new password>

USAGE:
   Grafana cli admin reset-admin-password [arguments...]

Thanks @peterellisjones!


Replace the DocToOpstamp mapping in SegmentEntry by a simple BitSet

Let's just compute the delete bitset when the segment is flushed, and keep it in memory. It will be 4 times smaller than keeping this DocToOpstamp bitset.

Done as part of #96


[Bug]: loader in a nested route returns undefined when a Form is submitted in a parent route

Which Remix packages are impacted?

[ ] remix (Remix core)
[ ] create-remix
[ ] @remix-run/architect
[ ] @remix-run/cloudflare-workers
[ ] @remix-run/dev
[ ] @remix-run/express
[ ] @remix-run/netlify
[ ] @remix-run/node
[X] @remix-run/react
[ ] @remix-run/serve
[ ] @remix-run/server-runtime
[ ] @remix-run/vercel

What version of Remix are you using?
1.1.1
What version of Node are you using? Minimum supported version is 14.
14.18.1
Steps to Reproduce

Open the sandbox 👉 https://codesandbox.io/s/zealous-chihiro-72x1f?file=/README.md
Navigate to /cart page
Click on submit button

Expected Behavior

Mutation due to Form submission in  routes/cart.jsx should re-execute the loader functions in

routes/cart.tsx
routes/cart/index.tsx

And the return value of the loader function in routes/cart/index.tsx should not be undefined

Actual Behavior

Mutation due to Form submission in  routes/cart.jsx does not re-execute the loader function in

routes/cart/index.tsx

And the return value of the loader function in routes/cart/index.tsx is undefined

Similar thing is going on with links, I filed #1326

I just did some hack to fix my current problem but this has to work

Thanks for the reproduction @sairajchouhan!  This should have been fixed in v1.3.4 via #2466.  I ran a quick test locally and it looks resolved to me, so I'm going to close this - please let me know if it's still an issue for you

good job @brophdawg11 !


inline SVG removes the id's from the original SVG

@alandawi @mirkovw @mm-paulie
Hi Team!
me again.
Not urgent cause there is a simple solution to this by not using the util and writing the svg inline, But
I am learning if it is a feature I don't understand how to use correctly or if something changed in the last update.
The issue is that inline is working as usual on previews versions, but now is deleting the IDs on the SVG file
I am trying to understand how it works and this is how far I got. might be that this file is not being used? and where is the actual inline working after compilation?
Sorry if am not being clear, happy to jump on a call and show the issue.
I'll keep looking into it
Thanks

Why do we have the inlineSvg Util (temple) if by default we have a plugin in Webpack that does the same thing?

After looking at the svgo package structure, I notice that svgo.js expects the plugins as an array. I made the following change to the file HtmlWebpackInlineSVGPlugin.js and it works fine.

Replace:
const result = SVGO.optimize(data, {         cleanupIDs: false     });
To:
const result = SVGO.optimize(data, {     plugins: [         {             name: 'preset-default',             params: {                 overrides: {                     cleanupIDs: false                 },             },         },     ], });

Hey @PabloCarreira and @alandawi,
Thanks for pointing this out and thanks @alandawi for providing the fix straight away! Do you want to do the honors and create a PR?
@alandawi regarding your first point - I don't know to be honest. Perhaps we can discuss whether we still need it on our next dev call

It might still be handy when you want to politely load your svg's instead of injecting them in the html directly via webpack. Say for instance, if I want to pick one or another svg based on some dynamic data. Then I first need to load in dynamic data and afterwards load the chosen svg?

@mm-paulie Thanks for the explanation. I will update the 'svg guide' with the default inline and also using the inlineSvg Util.
@PabloCarreira Can you take the responsability to create a fork and push a PR?

Thanks, guys! Will do.
My first fork of the framework, what moment to be alive


[AMQ-9219] 5.17.x transitional module for activemq-client-jakarta

So looking at this and thinking about it more I am seeing several problems including the fact that I realized this doesn't actually solve the problem for Spring boot compatibility.

This doesn't really make sense to introduce a new module like this into 5.17.x for a point/bug fix release as 5.17.x has already been out a while. Furthermore this only copies JMS 1.1 classes so is completely broken for most of the methods. This should be targeted for a future version.

In main/5.18.x there has been more JMS 2.0 work done so we should be using that as the baseline for this because it handles things properly like working between vendors. But there's still more work to be done because not everything is implemented. Any of the API methods that can be implemented now probably should be. I think most things besides shared subs can probably be done.

Anyone that uses the Jakarta API could reasonably assume that calling any method should work. Since there is no previous Jakarta messaging version before 3.0 any code that is Jakarta compatible could assume the spec should work so we would need to finish the implementation or at least be very clear in the documentation what won't work.

This doesn't actually fix the issue for Spring Boot 3 Spring Boot won't be able to add back in support because Spring boot is going to pull in the server itself to allow running the 5.x broker and the broker doesn't use the new Jakarta API. A new Jakarta client would only work if using just the client in the JVM and not the broker itself. For Spring 6.x I'm not sure, it may be good enough if it's just client support but if Spring 6 is calling off to any new methods that are not implemented in their messaging module (which they reasonably can do as I pointed out in number 3) then this breaks and won't work.

I just noticed https://github.com/apache/activemq/pull/968/files so maybe this PR just gets closed and we go with that one instead if not using this for 5.17.x anymore


Check security headers

If you're using a Content Security Policy (CSP), be sure you’ve allowed the Domain vitals.vercel-insights.com.

Seems to be working fine:


Componentize all-courses

Breaking down this PR in 3:
1/Data and demo update
3/Fetch Presentation and set attributes
2/Make All courses use entity store fetch


[11.x] Fix handling empty values passed to enum_value() function instead of only empty string

fixes #53180

@crynobone Do you believe it will fix Js::from function?
11.27
Illuminate\Support\Js::from([]) => []
11.28
Illuminate\Support\Js::from([]) => null

@devajmeireles did you check the tests in this PR? Feel free to add more if you see it missing anything

@devajmeireles did you check the tests in this PR? Feel free to add more if you see it missing anything

I'm so sorry! I didn't see the Js::from test.

This is still broken when an empty collection is passed into Js::from().
Js::from(Collection::make()); // null

This is specifically affecting eloquent query results for me.


add name to contributors.md

Merge conflicts aa rahe. Either resolve them, or close this PR and add a new PR with your name in between the other names and not at last


[nnx] non-str State keys

What does this PR do?

Graph node can now emit non-string keys, this helps to sort int keys such as to from list and tuple. In general they can emit any type that implement the Key protocol, which is any Hashable object that also implements __lt__.
State now contains Key keys.
State.flat_state now returns a dict[tuple[Key, ...], Any] instead of dict[str, Any] with keys as / separated strings.
State.from_flat_path now creates a State from a dict[tuple[Key, ...], Any].
_graph_node_* functions are now methods of GraphNode.
List now emits int keys. To implement the graph node protocol correctly it overrides a couple of _graph_node_* methods.
Fixed graph_pop bug.

Codecov Report
Attention: Patch coverage is 94.26230% with 7 lines in your changes are missing coverage. Please review.

Project coverage is 60.34%. Comparing base (cc740d4) to head (1d5f718).

Files
Patch %
Lines

flax/experimental/nnx/nnx/graph_utils.py
94.44%
3 Missing :warning:

flax/experimental/nnx/nnx/helpers.py
76.92%
3 Missing :warning:

flax/typing.py
80.00%
1 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3802   +/-   ##
=======================================
  Coverage   60.34%   60.34%
=======================================
  Files         101      101
  Lines       12862    12875   +13
=======================================
+ Hits         7761     7769    +8
- Misses       5101     5106    +5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


docs(openshift image registry): added admin sections in readme

GitHub issue: https://github.com/janus-idp/backstage-plugins/issues/475
JIRA: https://issues.redhat.com/browse/RHIDP-128

@divyanshiGupta Could you please review the changes in this PR and let me know if the changes look good?

@hmanwani-rh This PR needs rebase

LGTM


Swift 3 conversion

The swift 3 conversion is completed here for you. The framework should build and operate properly when linked to another application.
There is an Xcode linker error when running the example project that I wasn't able to figure out. You may have more luck with that.
dyld: Library not loaded: @rpath/FDTake.framework/FDTake
  Referenced from: /Users/Anthony/Library/Developer/CoreSimulator/Devices/4CEB8CFD-4B0F-45E8-846D-09CF7472E62E/data/Containers/Bundle/Application/68D448FF-F227-4B53-A7E0-4D33C458B135/FDTake_Example.app/FDTake_Example
  Reason: image not found

Thank you, I am reviewing this now

If anyone wants to watch or get involved
https://www.youtube.com/watch?v=nkGIlDStD7Q

Got it running and working with iOS example, now cleaning up project

Got everything working except localization. Will need assistance.

I've never worked with localization myself. Sorry I can't be of help there. :/


Fix default EKS-A release manifest URL in Makefile

Removing rogue double quote.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve

/cherrypick main

/lgtm


Question

I have a question， The INextLineProvider type  is not used in ILineParser type ，so why TryParse function has a type of INextLineProvider  parameter ,  is  for what ?

Hi,
a comment in a DBC file can have multiple lines, so the CommentLineParser needs to be able to read multiple lines (if any) and uses the INextLineProvider in its own TryParse's implementation


[Resolver] allow the github-resolver github action to be triggered by comments on issues or PRs

The workflow we provide here can be trigger with a github action like the one in examples/openhands-resolver.yml, where it responds to issues that have been tagged
Please modify our workflow so that it can also be triggered by comments on issues or PRs, but only if the comment contains @openhands-agent (the name must be configurable by the user of the Action)
This should pull in the original issue/PR text, as well as the new comment, as the text that's passed to the agent as a prompt. If the comment is on a PR, and the PR mentions an issue in the description, it should also pull in the text of the linked issue

Moved from All-Hands-AI/openhands-resolver#232

I believe this issue has been resolved


Auto-generate docs for using the CLI tools

Bartek can you elaborate more on this?

[ ] When I run ibc-relayer start --help for example, it doesn't show the default values. It would be good to output that somehow. (This requires changing how we integrate with commander, or swapping out commander)

The "architecture" looks like this:
INPUT --> [commander] --> [options-resolver] --> [run] --> OUTPUT

commander

contains command & its options definition
parses cli flags
generates command help

options-resolver

resolves options based on importance (flag > app file > env etc.)
forwards them to run

commander step is responsible for generating the help message. It's unaware of options-resolver step and thus it's omitting some information such as default option value.
We cannot merge options-resolver step into commander because it contains inter references and async operations.
Moving the default option definition from options-resolver to commander resolves the problem with the help message, however, it creates another one. If a user doesn't provide a flag then a default value is used and it's going to be picked up in the options-resolver step:
  const poll = resolveOption('poll', { required: true, integer: true })(
    flags.poll, // <-- resolved as first while it should be the last choice
    process.env.RELAYER_POLL,
  );

I have a solution to this but IMO it gives too much room for an error:
  const poll = resolveOption('poll', { required: true, integer: true })(
    notDefault(flags.poll), // <-- wrapping with notDefault returns a value only if provided by an user
    process.env.RELAYER_POLL,
    flags.poll, // <-- default value
  );

  function notDefault(...) {
    // checks if option is in process.argv (it means it was provided by an user)
  }

The commander.js or yargs don't provide any metadata with parsed option (e.g. if default is used).

The other problem is that currently we define Flags type by hand. It must be maintained and can lead to errors:
const startCommand = program
  .addOption(homeOption)
  .addOption(srcOption)
  .addOption(destOption)
  ...

type Flags = {
  home?: string
  src?: string
  dest?: string
}

/*
change in startCommand has to be applied to Flags type too. they're not
in sync and we don't test the whole options-resolvers. this is not reliable
*/

Ideally, I would like to get the type from where the options are defined. I found it's possible with yargs: https://github.com/yargs/yargs/blob/master/docs/typescript.md (first two code blocks). However, I have issues applying this technique with multiple commands in one binary (our case).

Summary
I'm still looking for the best solution and I put a lot of hope in yargs. For now, I'm going to define defaults as a part of the description and will come back to it when I have some more time.

For now, I'm going to define defaults as a part of the description and will come back to it when I have some more time.

Sounds sensible. Let's just do that with docstrings now, and revisit this when the pending higher priority items are resolved

@bartmacbartek Your nice diagram showing the flow of the application makes it pretty clear there's no easy solution here: if commander isn't responsible for options processing then we don't get any of the benefits of using commander's options processing, eg knowing about default values for help messages. The solution you posted muddies the responsibilities of the different components so (like you) I don't like it. I think manually adding the default values is the best option for the current architecture with the (relatively stable, relatively small number of) options we currently have.

We can close this (or drag to bottom of the backlog), right?


Options tests and fixes

Fleshed out the unit tests for Options, combining a couple.
Fixed discovered broken Options parsing off-by-one errors. These may have been introduced by the changes to use half-open range for String, and missed due to lack of tests.

The failures don't appear to be related to my change.

Indeed the failures are not due to your code. Travis sometimes doesn't set up the test VM environment correctly, so you need to check its output to see if failures actually are failures.
Personally I think that the GNU way of doing command line arguments is a bit silly in places, but we need to use a well known standard so let's stick with it.
Unless I've misunderstood the link you gave your tests are handling long option arguments incorrectly.
To specify an argument for a long option, write ‘--name=value’. This syntax enables a long option to accept an argument that is itself optional.

I read that as saying long option arguments have to be specified with an =. But your test options/Options.longOptions uses the option --i64 12345. Surely this should be --i64=12345.
That description also implies to me that short form options do not allow optional arguments, ie every short form either has no argument or a required argument. If that is the case then our current add() function should not accept both a short form and the Optional flag together.
Is this how other implementations of the GNU standard work?
Regardless of that there's some stuff your tests don't check, I suspect we get a lot of these wrong at the moment.

What happens when required arguments are missing?
Are missing optional arguments handled correctly?
Is the list of non-options correct, given by remaining()? Need to check at least the cases of no options, only options and a mix and also when there are option arguments as separate tokens.
Do we handle the case of no command line arguments present correctly?
Do we handle -- to end option processing?
Do we handle - as not an option?
Do we correctly handle an option that has only a long form and not a short form?
String arguments.
Do we handle abbreviation of long names? Personally I'd be very happy for us not to support this. However in that case we should say so in the top level comment and have a test to check that we don't allow it.

Thanks for the feedback. I included the GNU cli doc as a point of reference, but I really didn't know what the original desired spec was for option.Options. I tried to make what it seemed to be implementing work correctly.
Maybe including the link without comment was misleading, and so I could instead write up a quick spec of what is currently supported, and flesh out the tests a little bit more to prove that. And, not change the current semantics.
But then I'd like to start building a replacement that works like I described in my ponydev email. This one would then have a more fleshed out spec.

The original spec for options.Options was basically to support all styles of command line arguments used by anyone, anywhere, ever. To my mind that was a total mistake.
Given that, I don't think it's worth trying to write up a spec for what the current version does and instead we should just move straight on to doing a completely new sensible version. If you want to start a spec for that it'd be great.

It makes sense to pick a single style and stick with it.  After all, it's only a library (not builtin) and people can write competing implementations with other styles if they wish.

This PR as it is now (1) fixes the substring related bugs in Options() and (2) adds an incomplete set of unit tests.
Should we merge this as it is to hold us over for the interim while we work on a new design and implementation?

I'll merge this "fix and test" now and then open a new issue for sorting out command line options properly.

I've created the issue for discussing command line argument formatting, #471.


After an error fix, it'll load the first story

If there's a syntax error, it should show the webpack error overlay.
After that, it should reload the preview and load the current story.
But now, it'll load the first story in the storybook instead.
Reason
After an error, it'll reload the page. Then it'll load the very first story since that is hard coded on the iframe URL. We need to change it and reload.

This one is really annoying me right now. Will take a look.

Does anyone have a reproduction for this? I can't make it happen RN

This is actually easy to reproduce. Follow these steps carefully (tested on current release/3.3):

Load the cra-kitchen-sink storybook
Browse to http://localhost:9010/ (that exact path).
Browse to a different story (not the welcome story).

Notice that the main URL will change
Also notice the iframe URL will not change.

Add throw new Error("foo"); somewhere in some story file at the top level, allow HMR

Notice the error show in a red box in the preview iframe

Remove the error, allow HMR

Notice the welcome story is rendered in the iframe, even though the main URL is still the URL for the other story.

Hit refresh

Notice the correct story now loads in the iframe
Also notice the iframe URL is now in sync with the main URL.

Note if you are going to continue you have to start again at step 1, not continue on from step 6, as the iframe URL will have changed.

See https://github.com/storybooks/storybook/pull/2349


Task - Application - Make "Justification of Baseline Requirements" step fully functional

Description
Tie this step into the redux store, and navigation between pages.
If you selected Formal Education for your justification, only education experiences should be available in the dropdown. Otherwise, all experiences are available.
If any profile experiences are already tagged with the selected justification, prepopulate those selections.
Selections only need to be saved when clicking SAVE AND CONTINUE or SAVE AND EXIT.
Images
https://xd.adobe.com/view/a678f763-f7b7-43ca-740a-89359cbe42f1-d049/screen/f79e623c-8447-4440-84ff-66920acc653c/Step-2A-Requirements-1

This page has been removed in new design. https://xd.adobe.com/view/4ac43ee7-a919-4397-6888-ce98019603f7-3cf5/


Log A Service Form - Reorganized / Renamed Fields For Easy Understanding

Description
What work was done?
Within the log a service form, reorganized ANT library fields and renamed ANT library labels/field names so users / service providers can understand forms faster and navigate through them quicker
Why was this work done?
so users / service providers can understand forms faster and navigate through them quicker

What is the purpose of the feature?

the overarching feature is a core function of the app, allowing service providers to log work being done via tablet on-site, whereas this PR is regarding improving the overarching feature by improving UX
What feature / user story is it for?
(Link if possible)
https://trello.com/c/vQFxOpI6
Any relevant links or images / screenshots
Organized/Named This Way Now:
Date & Time of Service
Service Type
Service Status
Service Provider
Case Notes
Unit (Class, Tickets, etc)
Quantity of Units
Value of Services In Dollars
Recipient Name
Recipient Address
Recipient City
Recipient State
Recipient Zip Code
Type of change

Optimizing existing feature (non-breaking change which adds functionality)

Change Status

Completed, ready to review and merge

Checklist

My code follows the style guidelines of this project
I have performed a self-review of my own code
My code has been reviewed by at least one peer
I have commented my code, particularly in hard-to-understand areas
I have made corresponding changes to the documentation
My changes generate no new warnings
There are no merge conflicts

Reviewed & Approved by 2 colleagues, no conflicts, merging


CASK detection with prefix or suffix

CASK keys with a prefix (such as https://) or suffix (such as @github.com) would fail detection. This PR fixes that, and adds a test for the same.

There is a test failure. Is it related?


Multilevel side-menu

Is your feature request related to a problem? Please describe.
I am working on a documentation site for multiple products (more than 2000 pages in total)
Describe the solution you'd like
I want to create a side menu for every product like
└── product
├── folder 1
│   ├── subfolder 1
│   ├── subfolder 2
│   └── subfolder 3
├── folder 2
Folders and subfolders may have multiple pages and subfolders
I have tried modifying the menu yaml file without any luck

title: Product 1

title: Title1
pages:

title: Introduction
title: Requirements

title: Title2
pages:

title: Page 1
title: Page 2

Thank you

I released v0.11.1 with support for nested menus. You can define nesting in the following way:
- title: A
  pages:
    - title: B
      pages:
        - title: C
          pages:
            - title: First
            - title: Second
            - title: Third

There might be still a few bugs to iron out. Looking forward to your feedback!

Thank you. That will help us a lot

I published a new release v0.11.2. The sidebar documentation has been updated too. The following changes have been made:

Content pages no longer need a group parameter in their front matter
Sections now support optional versioning

I'll close the issue for now. Feel free to re-open it in case you encounter any issues.


Duplicated 'the' Fix

Fixed duplicated 'the' typo.
This is re-submission of the following PR:
https://github.com/scalatest/scalatest/pull/1020
against branch 3.0.x.
This fix should be cherry-pick into 3.1.x and subsequently pulled in 3.2.x.

@cla-bot[bot] check


spriteFilename has no effect if configured with multiple loaders rule

Hi there,
I was wondering if there were any plans to add support for [contenthash] or [chunkhash] as part of the spriteFilename parameter.
My use case is to make sure I'm serving the latest version when extracting the sprite into a separate file.

spriteFilename parameter is disregarded altogether (even when set to a constant) when I switch from a single loader to the array (use) syntax.

@obartra this is 2 issues:

I was wondering if there were any plans to add support for [contenthash] or [chunkhash] as part of the spriteFilename parameter.

The short answer is no, because it requires huge architectural changes in plugin. I've create separate issue.

spriteFilename parameter is disregarded altogether (even when set to a constant) when I switch from a single loader to the array (use) syntax.

This is a bug, fixed in 2.0.2, please check.

Thanks for the quick turnaround on the fix

Hey I've just tried it with loaders: [array] and it works but if I use use: [array] it fails with the following error:
/node_modules/svg-sprite-loader/lib/utils.js:228
    options = multiRule.map(normalizeRule).find(r => r.loader === loaderPath).options;

It's easy to work around though (just changing use to loaders)


Fixed parameters are not passed to fitting  routine

Hello @matteobachetti! Thanks for submitting the PR.

In the file src/main/python/utils/model_helper.py, following are the PEP8 issues :

Line 17:10: E111 indentation is not a multiple of four
Line 20:10: E111 indentation is not a multiple of four
Line 23:10: E111 indentation is not a multiple of four
Line 26:10: E111 indentation is not a multiple of four
Line 29:10: E111 indentation is not a multiple of four
Line 48:90: W291 trailing whitespace
Line 58:53: E703 statement ends with a semicolon
Line 60:49: E703 statement ends with a semicolon
Line 81:18: E111 indentation is not a multiple of four
Line 83:18: E111 indentation is not a multiple of four
Line 85:18: E111 indentation is not a multiple of four
Line 87:18: E111 indentation is not a multiple of four
Line 87:121: E501 line too long (124 > 120 characters)

Can one of the admins verify this patch?


Project from fable-getting-started won't load

I followed the steps provided by Zaid in his Elmish Handbook to set up a simple hello world application.
The following works:
git clone https://github.com/Zaid-Ajaj/fable-getting-started.git
cd fable-getting-started
npm install
npm run build

Fable compiles and loading ./fable-getting-started in VSCode with Ionide 4.11.1 works.
However, npm is reporting 17 vulnerabilities right now when running npm install. When I run npm audit fix, it claims that 14 of those had been fixed. Fable would still compile, but Ionide does not load the project anymore.

I can't say for sure it's related to the npm audit call, but that's how I could reproduce it.
--
I am on macOS 10.15.4, running netcore 3.1.300 and node 14.4.0.

I think the repro is not related to npm. Here is how i can repro the ionide issue:

git clone https://github.com/Zaid-Ajaj/fable-getting-started.git
cd fable-getting-started
code .
navigate to App.fs and see that syntactical highlighting actually kicks in
look at src/obj' and see that project.assets.jsonwas created. this implies ionide has properly run dotnet restoreinternally 6 ) addopen Browser.DominApp.fs`
notice red squigglies. this implies ionide did not reload the project after project.assets.json was created
close VS Code
code .
navigate to App.fs and notice that red squigglies are gone and open Browser.Dom is proeprly detected as "unused"

Correct.

@Krzysztof-Cieslak same happening when I add sln in root

I think that this is a dup of #1377

yes but with repro ;-)

Should be fixed in 4.12.1

Awesome. Will test tomorrow morning. Thanks a lot
Krzysztof Cieślak<EMAIL_ADDRESS>schrieb am Do., 11. Juni 2020,
15:04:

Should be fixed in 4.12.1
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ionide/ionide-vscode-fsharp/issues/1380#issuecomment-642634289,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAOANEN5PO4MNXEZ6JJJPLRWDI6LANCNFSM4NZKAZVQ
.

Should be fixed in 4.12.1

Working for me 👍 Thanks!

It almost works. almost

so the fix makes it load the project properly, but it does not update the App.fs. Only after touching the App.fs the squiggly goes away.
So new repro:

git clone https://github.com/Zaid-Ajaj/fable-getting-started.git
cd fable-getting-started
code .
navigate to App.fs and see that syntactical highlighting actually kicks in
5 ) add open Browser.Dom in App.fs
close VS Code
nuke obj and bin folders
code .
notice how project loads properly but squiggly in App.fs remains

@forki that's duplicate of #1374 , let's track it there.


Vector Preview broken

Turning on vector_preview = 1 breaks rpicam (for me at least).
After enabling Vector Preview in the web interface, it shows the error "Error in RaspiMJPEG: Restart RaspiMJPEG or the whole RPi"
Restarting does not fix it.
Turning off vector preview in the web interface does not work (remains turned on) - I have to edit uconfig and do start.sh
Here's the log.

{2022/08/02 09:56:20} Change: vector_preview = 1
{2022/08/02 09:56:20} recommended video buffer size 65536
{2022/08/02 09:56:20} h264 size set to 131072
{2022/08/02 09:56:20} recommended video buffers 1
{2022/08/02 09:56:20} h264 buffers set to recommended 1
{2022/08/02 09:56:20} Error: Could not create connection camera -> video converter
{2022/08/02 09:56:20} Set up internal detect width=82 height=61
{2022/08/02 09:56:20} Motion mask /var/www/rpicam/outdoor.pgm loaded
[2022/08/02 09:56:21] Logged in user::
[2022/08/02 09:56:21] UserLevel 6
{2022/08/02 09:56:32} Watchdog detected problem. Stopping{2022/08/02 09:56:32} SIGINT/SIGTERM received, stopping
{2022/08/02 09:56:32} Error: Could not disable video port
{2022/08/02 09:56:37} RaspiMJPEG Version 5.10.2
{2022/08/02 09:56:38} recommended video buffer size 65536
{2022/08/02 09:56:38} h264 size set to 131072
{2022/08/02 09:56:38} recommended video buffers 1
{2022/08/02 09:56:38} h264 buffers set to recommended 1
{2022/08/02 09:56:38} Error: Could not create connection camera -> video converter
{2022/08/02 09:56:38} Set up internal detect width=82 height=61
{2022/08/02 09:56:38} Motion mask /var/www/rpicam/outdoor.pgm loaded
{2022/08/02 09:56:38} Opening FIFO 0 /var/www/rpicam/FIFO 7
{2022/08/02 09:56:38} Opening FIFO 1 /var/www/rpicam/FIFO11 8
{2022/08/02 09:56:38} MJPEG streaming, ready to receive commands
{2022/08/02 09:56:38} send smd 9
{2022/08/02 09:56:38} Starting command loop
[2022/08/02 09:56:38] Reload parameters command requested
[2022/08/02 09:56:38] Scheduler loop is started
[2022/08/02 09:56:39] New period detected 3
[2022/08/02 09:56:39] Send em auto
{2022/08/02 09:56:39} Change: exposure_mode = auto

This has been happening for a while now, though I don't remember when it started - perhaps it was when I switched from Rasbian to DietPi.
I have tried a fresh install of DietPi + RCWI.
I will try out older verions of RCWI to see if it works in a previous release.

I have just checked latest version of RCWI with Raspbian Bullseye and vector preview works for me.
I have not tried with DietPi. Note that with Bullseye one has to use the leggacy camera support. I don't know what happens with DietPi.

Thanks for checking.
I have a RPi3 and RPi1 both with DietPi Bullseye, and both have the vector preview issue.
But it's strange that all other RCWI functionality is working, including saving the vectors to the .dat file.
I'm currently troubleshooting my motion detection settings and would be using the vector preview, but am working with the .dat file for now.

Broken here too:

Normal functioning camera stream.
I set Motion Vector Preview to on, and the stream becomes a tiny mask-sized image that displays white motion-vector specks. The image is so small its not practical for determining where the mask needs adjustment.
The on/off selector now shows off, despite vectors being on. Selecting off does nothing. Selecting on re-initializes the motion vectors and contracts the previously expanded Motion Settings panel, the selector remains 'Off'.
Aside from a reboot; I know of no way to restore the normal camera stream.
Video recorded by motion detection during this time are normal, except their preview image seems to display what looks like the motion vector preview, or maybe just a very low exposure gain moment as the camera switches.

Linux pizerocam3 5.10.103+ #1529 Tue Mar 8 12:19:18 GMT 2022 armv6l GNU/Linux
Raspbian Buster (10)
RPi Cam Control v6.6.13
viewed in Google Chrome
Version 119.0.6045.159 (Official Build) (64-bit)
on Kubuntu 23.10
Linux betlogbeast 6.5.0-13-generic #13-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov  3 12:16:05 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux


allow use with current tails 4.2 (compat. with jquery-rails 4)

Thanks!
FYI build is failing but is due to code styling issues, not from your PR.


Tilt dates in plots for players over time

A couple of things to look at.

error bars for text to link with info
darken yellow line


v12 Manifest Error

Reported manifest error by Foundry:
The "Zipper Initiative" module's manifest contained the following unknown keys: "manifestPlusVersion"

Fixed in v0.2.1. Thanks!


Externref/Reference types throwing error in Node

Building with --reference-types --target nodejs and importing the result in Node results in the following error:
❯ node --experimental-wasm-reftypes .
/home/marior/projects/wasm-node-externref/dist/wasm_node_externref.js:145
const wasmModule = new WebAssembly.Module(bytes);
                   ^

CompileError: WebAssembly.Module(): Compiling function #17:"wasm_bindgen::externref::Slab::alloc::ha6442f5e..." failed: i32.rem_s[1] expected type i32, found ref.null of type nullref @+7561
    at Object.<anonymous> (/home/marior/projects/wasm-node-externref/dist/wasm_node_externref.js:145:20)
    at Module._compile (internal/modules/cjs/loader.js:1256:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1277:10)
    at Module.load (internal/modules/cjs/loader.js:1105:32)
    at Function.Module._load (internal/modules/cjs/loader.js:967:14)
    at Module.require (internal/modules/cjs/loader.js:1145:19)
    at require (internal/modules/cjs/helpers.js:75:18)
    at Object.<anonymous> (/home/marior/projects/wasm-node-externref/index.js:1:14)
    at Module._compile (internal/modules/cjs/loader.js:1256:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1277:10)

Repository
Tested with Node 14.17.0 and 12.18.3
Interestingly this bug doesn't happen with Deno.
Is this bug related to Node, v8 or wasm-bindgen?
Node 14.17.0 uses v8 8.4.371.19-node.12 and Deno 1.2.2 uses v8 8.5.216

Thanks for the report! I think this is because node hasn't updated to the latest version of reference types, so we'll need to wait for them to update v8.

Thanks for clarifying!
However I find it a bit weird that there is an option to enable anyref, but it doesn’t work.
Are you sure that this is related to v8 version?

Here is the PR, which will update Node v8 to 8.5:
https://github.com/nodejs/node/pull/34337

Thanks for the pointer, looks like things should work as expected once that propagates!

Node 15 will ship with v8 8.6, so I'll give this another try

Confirming that it now works with Node 15 and v8 8.6

Unfortunately, I now got another error with Node 15.4.0 and wasm-bindgen 0.2.69 with a more advanced example and reference types enabled.
The error looks a bit different:
const wasmModule = new WebAssembly.Module(bytes);
                   ^

CompileError: WebAssembly.Module(): Compiling function #99:"__externref_table_alloc" failed: local.tee[0] expected type i32, found ref.null of type externref @+39165

The generated JS code at that position calling the __externref_table_alloc function looks like this:
function addToExternrefTable0(obj) {
    const idx = wasm.__externref_table_alloc();
    wasm.__wbindgen_export_2.set(idx, obj);
    return idx;
}

I hope this information is enough since I'm not sure what causes the issue and my code is not yet ready for being released publicly.

Hm that may be a mismatch in node's expected encoding of a wasm module and what Rust is doing? I forget the precise verisons at which everything starts to align.

I’m gonna retry this once v8 8.7 lands in Nodejs with this PR:
https://github.com/nodejs/node/pull/36182

So I tried out the Nodejs version of this specific PR with v8 8.7, but I get the same error.
I then also tried out another branch with a v8 8.8 version right here:
https://github.com/targos/node/tree/v8-88
but I also get the same error, so it seems that this might be related to the v8 version that Nodejs is using?
At least it seems like it is slightly modified, because if you print the v8 version with node -p process.versions.v8 it has a trailing -node.x.

I wanted to open an issue in the Nodejs repository, if anyone has an idea and I wanted to send there the relevant code as wat, so I tried to compile my wasm to a wat file with the tools from:
https://github.com/WebAssembly/wabt
However I get a similar error:
❯ ../wabt/build/wasm2wat ./pkg/server_bg.wasm --enable-all
./pkg/server_bg.wasm:0009901: error: type mismatch in local.tee, expected [i32] but got [... externref]
./pkg/server_bg.wasm:0009904: error: type mismatch in table.grow, expected [externref, i32] but got [i32, i32]
./pkg/server_bg.wasm:0009a8d: error: type mismatch in function, expected [] but got [i32, i32]
./pkg/server_bg.wasm:0009da3: error: type mismatch in function, expected [] but got [i32]
./pkg/server_bg.wasm:000ac58: error: type mismatch in function, expected [] but got [i32, i32, i32]

@alexcrichton do you still think this is an issue from the specs not yet being aligned?

Unfortunately I'm not entirely sure. If other runtimes accept the same wasm file then it seems like this is node-specific though?

I quadruple checked this again and it definitely seems as if the generated wasm code works in Chrome and FF.
I generated the code with wasm-pack and --target web, then in my index.html, this successfully prints:
<!DOCTYPE html>

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>My awesome Rust, WebAssembly, and Webpack application</title>

I get other awesome errors with Webpack with --target bundler, because it also fails to parse the wasm file, but I'm still on Webpack v4, so this might already be fixed.
    ERROR in .../pkg/index_bg.wasm
    Module parse failed: Internal failure: parseVec could not cast the value
    You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
    Error: Internal failure: parseVec could not cast the value

It may be that webpack's wasm parser doesn't support the reference types proposal perhaps? But otherwise if browsers accept the wasm module then it seems like it may be an issue on node's end? I would have to dig in more to be certain though.

I just wanted to confirm, that updating wasm-bindgen from 0.2.70 to 0.2.74 fixed the issue. wasm2wat can now convert the file and Nodejs can now run it.