Undefined values are not presented

It appears that undefined values are not shown at all in the tree, even when our objects have explicitly created keys with this value. But they are being added to the "keys" counter label, so this looks kind of weird - seeing, say, "3 keys" in the counter, but expanded view shows only 2 of them which have defined values.
Looking at the codebase, it's probably a simple fix, so I'll provide a PR with a patch.
Edit: PR: #15
Example that shows the problem:
With the following object:
{
    object: {
        foo: 'bar',
        baz: undefined
    },
    test: {
        my: undefined
    }
}

The actual outcome is shown at the following screenshot:

The expected outcome should be as on the next screenshot:

Any progress on this issue? Same problem with function type which can look like component: function User()

@mdziekon @redexp should be fixed in 0.3.0!


Multiple object tracking

How to use this repo for multiple objects tracking (in the customized dataset).

hi my master thesis in vehicle detection and counting in road. can you help me?
@AlphaRalph


Implement vector rotation via quaternion

Closes: https://github.com/pygfx/pylinalg/issues/13
This PR implements vector_apply_quaternion_rotation. It also adds property-based tests: (1) Identity (rotating by some quaternion and its inverse (approximately) yields the vector), (2) reference (compares the implementation against a reference implementation based on matrix multiplication).
This PR is RTR :)

Oh, there is some old edits that snuck into this PR that aren't meant to be here ... I'll fix it.


campaigns.send() raise TypeError

I am trying to send emails of a campaign trought client.campaign.send(campaing_id="some_id"), but it gives me the error TypeError: request() got an unexpected keyword argument 'json'
I am missing something or this is a bug?

Hi,
this seems to be an issue with python-requests, which version of python-requests are you using ? Before version 2.4.2, python-requests does not accept the json keyword argument.

You are right, I was using older version of python-requests.
Fixed now. Thanks!


Feature/uar 619 individual mo residential address displayed to user lists

JIRA link
Change description
Work checklist

[ ] Tests added where applicable
[ ] UI changes meet accessibility criteria

Merge instructions
We are committed to keeping commit history clean, consistent and linear.  A BREAKING CHANGE can be part of commits of any type,
types other than fix: and feat: are allowed, for example build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, and others,
footers other than BREAKING CHANGE: <description> may be provided.

Please see https://github.com/companieshouse/overseas-entities-web/pull/1052 follow on


fix(curriculum): Updated Calorie Counter Step 45 tests

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #57090

Hey @kaylalei
This PR seems to make similar changes as the existing PR #57101. As such, we are going to close this as a duplicate.
If you feel you have additional changes to expand upon this PR, please feel free to push your commits and request this PR be reopened.
Thanks again! 😊

If you have any questions, feel free to ask questions on the "Contributors" category on our forum or the contributors chat room.


add a search by name

this project could use a search function. if i want a checkbox across all icon families, i could pull them all up at the same time

Yes, that could be useful.

Thinking about the best way to present this option with the limited space in the stack design.  Initially thinking that a floating window for the search UI would be one way to handle this.

I'm thinking that part of this would involve creating two special families.  The first would be the search result family.  The second would be a super-set family that includes everything (for searching across the entire library of icons).

i was rolling this around in my head, thinking about how to solve the same problem.  one could also iterate through all the families, get the names, and search.
the problem with that is there can also be many other icons that are not installed with LC, but are available, e.g. your original version of this project.
another option might be to, at stack load, build a couple of arrays, one indexed by family, and one by name.

Since the filter command is so efficient, creating a text list and then filtering would probably be the easiest.  Would just need to include a delay (no bounce) on the field so it only updated the list when typing was paused (did that on the dictionary to improve search responsiveness).  Currently I don't display icon labels in the grid (only on hover) but for a search it would probably be more important to see them.  PowerButton would make that easy (or another community button widget that does SVG icons).  The code that paints the icons would need to be adjusted to work off of a list directly though (with family and icon components).  Currently it just gets the keys of the family array and shows the correct chunk.  I'm thinking that is going to be better than building a new combined array and adjusting it.
Initial thought would be to add a magnifying glass (search) icon to the grid card.  It would open a palette that allowed the user to select the family to search (with an additional option for all).  Default would be the currently selected family.  Once a search was started, the grid would start updating with the found icons.  Implementing the select all/none and selection in general will take some consideration (currently it sets a flag in the array that holds the family, but there won't be a full array - thinking out loud for now).


Fixed words being cut off in mnemonic ui

This fixes issue #664

A new build of 331d529bcc94e140a35099c2fe68eb52347e0aac has completed succesfully!
Binaries available at https://build.nav.community/binaries/patch-1

Tested on Window 10


Request for New UI Controls: EditableTextblock and RangeSlider

I hope this message finds you well. I am reaching out to request the addition of two new UI controls to enhance our application's interactivity and user experience.

EditableTextblock: A control that combines the display features of a TextBlock with the editability of a TextBox. This control should allow users to view text content as if it's static text but can click or double-click to switch into an edit mode where they can modify the text. Once the editing is finished, it should seamlessly return to a non-editable state. Features like text wrapping, placeholder text, and a commit/cancel edit option would be highly beneficial.
RangeSlider: A dual-thumb slider control that allows users to select a range of values by moving two thumbs along a track. The control should support both horizontal and vertical orientations, step values, and should provide easy access to the lower and upper values selected. It would be ideal if the control also included visual markers for the start, end, and step intervals.
Both controls should be designed with accessibility, responsiveness, and theming in mind, ensuring they can be easily integrated into various parts of our application and customized as per different design requirements.
I believe these controls will be a valuable addition to our UI toolkit and greatly appreciate your consideration of this request. Please let me know if you need further details or if a discussion is required to proceed with the implementation.
Thank you for your time and effort.
Best regards,

Range slider is already implemented.
Should this just be a style of TextBox with no background and no border?


How can Dependabot be configured to focus exclusively on security updates?

I know currently dependabot v2 supports version update alone and my plan is to use dependabot for security updates. So, I have downgraded the dependabot version to v1 and while running dependabot with option useUpdateScriptvNext: true for .Net. It created PR for transitive package Microsoft.IdentityModel.JsonWebTokens from 7.0.0 to 7.1.2 but in our code, I'm already using version 8.1.2 which means dependabot tries to downgrade the version here. I have already seen the similar bug in https://github.com/tinglesoftware/dependabot-azure-devops/issues/1247 and want to know for security updates whether I should go ahead with option useUpdateScriptvNext: false or not.
Also, please let me know what will be the ETA for security updates in dependabot v2. Because v2 worked fine for us in version update with almost all the github dependabot options.
Nuget PR:-

package.lock.json

dependabot.yml
version: 2
updates:
  - package-ecosystem: "nuget"
    directory: /Engine
    labels:
      - "nuget"
      - "dependencies"
    open-pull-requests-limit: 0
    commit-message:
      prefix: "nuget"
      prefix-development: "nuget"
      include: "scope-and-version"
      separator: "-"
    groups:
      nuget:
        patterns:
          - "*"

  - package-ecosystem: "npm"
    directories:
    - /Backend/**/*
    - /Frontend/
    - /Shared/
    labels:
    - "npm"
    - "dependencies"
    open-pull-requests-limit: 0
    commit-message:
      prefix: "npm"
      prefix-development: "npm"
      include: "scope-and-version"
      separator: "-"
    groups:
      npm:
        patterns:
          - "*"

  - package-ecosystem: "pip"
    directories:
    - /deployment/db-deploy-script
    - /Utility/PythonScripts/
    labels:
    - "pip"
    - "dependencies"
    open-pull-requests-limit: 0
    commit-message:
      prefix: "pip"
      prefix-development: "pip"
      include: "scope-and-version"
      separator: "-"
    groups:
      pip:
        patterns:
          - "*"

dependabot-pipeline.yaml
trigger: none

pool:
 vmImage: ubuntu-latest

jobs:
  - job: Dependabot
    displayName: Dependabot Execution
    timeoutInMinutes: 120
    steps:
    - script: |
        sudo cp -r $(Build.SourcesDirectory)/.azuredevops/ /.azuredevops/
      displayName: Move Dependabot file

    - task: dependabot@1
      inputs:
        azureDevOpsAccessToken: '$(System.AccessToken)'
        gitHubAccessToken: '$(GITHUB_ACCESS_TOKEN)'
        useUpdateScriptvNext: true
        extraEnvironmentVariables: "DEPENDABOT_AUTHOR_EMAIL=example@domain.com;DEPENDABOT_AUTHOR_NAME=example;DEPENDABOT_SECURITY_UPDATES_ONLY=true"
      displayName: Run Dependabot

@SatheeshS-optym it's hard to say what the cause is without seeing a copy of the task output logs; they would show why Dependabot decided to downgrade the dependency.
I can say that there are known issues in dependabot-core for the NuGet ecosystem around transitive dependencies, central package manager, package locks, and large grouped updates (i.e. pattern: *). So any one of these could be contributing to your issue.
If you are able to provide the relevant logs of this package update from your task log, I can investigate further.
Regarding support for security-only updates:

Using task V1 with useUpdateScriptvNext: false will likely give the least accurate results as it doesn't use the dependabot-core updater to perform updates;
Using task V1 with useUpdateScriptvNext: true will likely give the most accurate results currently (albeit, not perfect);
Using task V2 does not support security-only updates yet, but is being worked on in https://github.com/tinglesoftware/dependabot-azure-devops/pull/1394

There is no firm ETA on security-only update support for V2; I'm working on it and hope to have a first release of this ready before the end of the year.

@SatheeshS-optym security-only updates for V2 is now ready for review in https://github.com/tinglesoftware/dependabot-azure-devops/pull/1394; It should hopefully be merged in the next week or two depending on the maintainers availability.

Thanks for the support @rhyskoedijk. I hope security update on dependabot v2 merged now in https://github.com/tinglesoftware/dependabot-azure-devops/pull/1394; I will give a try and let you know if any issues faced.


Add special case error for slice index, which overflows int

Fixes #169.

Done.
Also, I changed %s to %w.


Password Tutorial targets the wrong element

Password tutorial targets the entire row which leads to the tutorial being pushed to the side. See here:

This would make for a bad user experience. I'm working on the fix.

Fixed in https://github.com/llaske/sugarizer/pull/690


chore(dev): release 0.13.2

:robot: I have created a release beep boop
0.13.2 (2024-10-16)
Bug Fixes

correct conditional for adding reconnect settings (8c94af4)
differentiate file/http stream source inputs (#873) (fc836b8)
mark addedAt field as optional in all Plex types (#874) (f68e89f), closes #863
properly calculate filler show content counts (#881) (11abbc1), closes #872
use window location for base URL in m3u clipboard copy when backend url is empty (#880) (a99d3ca), closes #878

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.13.2
:sunflower:


How to get the Day from RV3028 RTC in Micro python?

Playing around with the Micro Python demo for the RV3028 I can get the Month, and Weekday, but can't get the Day of the month?
from pimoroni_i2c import PimoroniI2C
from breakout_rtc import BreakoutRTC
import time

PINS_BREAKOUT_GARDEN = {"sda": 4, "scl": 5}  # i2c pins 4, 5 for Breakout Garden
PINS_PICO_EXPLORER = {"sda": 20, "scl": 21}  # Default i2c pins for Pico Explorer

i2c = PimoroniI2C(**PINS_BREAKOUT_GARDEN)
rtc = BreakoutRTC(i2c)

if rtc.is_12_hour():
    rtc.set_24_hour()

rtc.enable_periodic_update_interrupt(True)

while True:
    if rtc.read_periodic_update_interrupt_flag():
        rtc.clear_periodic_update_interrupt_flag()

        if rtc.update_time():
            rtc_weekday = rtc.get_weekday()
            rtc_month = rtc.get_month()
            rtc_date = rtc.string_date()
            rtc_time = rtc.string_time()
            print("Date: ", rtc_date, ", Time: ", rtc_time, ", Month: ", rtc_month, ", Weekday: ", rtc_weekday, sep="")

    time.sleep(0.1)

Adding
rtc_day = rtc.get_day()
gets me
AttributeError: 'BreakoutRTC' object has no attribute 'get_day'
I want to use that info display "Jan 27" instead of "27/01/2023"
@Gadgetoid

@alphanumeric007 Give get_date() a go. That looks like it returns a value between 1 and 31.

OK thanks a bunch, that worked. =)
date = rtc.get_date()
display.text(f"{date:02}", 160, 13, scale=3)

got me a 27
I missed it because rtc_date = rtc.string_date() gets me 27/02/2023. I missed the 'rtc.string_date' versus 'rtc.get_date' and was fixated on looking for "day" in the library code.


Task: Polish up the examples for the svdvals function

Description:
Last week, I created a branch on my GitHub to add examples to the svdvals function. After pushing the changes to my fork, I received some feedback to refine my examples. I have now implemented the suggested changes to my svdvals function example, removed the second example, and pushed the updated changes to my fork again. You can view the updates here: https://github.com/numpy/numpy/compare/main...ogidig5:numpy:add-svdvals-example
Here's what reflects when the docs build:

Acceptance Criteria:

[x] List things here.

George, I'm trying to guess what the mns and svns stand for, and it's not obvious at all. As a reader of the examples, I'm left trying to guess what that abbreviation stood for. Using matrix_non_square is much better. You did get rid of naming the output, then calling the output, which is an improvement.

Unfortunately, the code you have does not run. You have not called the function using appropriate syntax.  This needs more work.


Follow Guice best practices

Currently, the model we are creating when using Guice and it's injectors is not really following Guice best practices, mainly:

Minimize mutability
Inject only direct dependecies
Keep constructors hidden

For first point, changing all the injections from @Inject annotation on fields to @Inject annotations
on constructor should be sufficient.
For second point, f.e. ClientUI should somehow provide the plugin panel, then net.runelite.api.Client needs to be split to multiple interfaces and each of them needs to be provided separately, and plugins should use only the interface they really need (for example to get camera values, they should really just inject something like ClientCamera, instead of injecting Client that contains everything).
For third point, just making the constructors private should be good enough (depends on first point).
If anyone have any more ideas on how to improve the current Guice model, feel free to post them here.

I think the best way to improve the current Guice model is by seperating Plugin into Plugin and Module, where the module instantiates the plugin and provides the config, etc..
This new Plugin structure will allow constructor injection, rather than field, which is evidently favourable, and the structure will generally be more flexible, e.g. with how a plugin is instantiated. Also, this new model will be a lot less hacky to implement (https://github.com/runelite/runelite/blob/master/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java#L403 is definitely not 'natural' guice injection).

This is still despite a solution being merged.

No, there are still quite a few cases in source where people are ignoring best practices, mainly for 1st and 3rd point.

(1) was addressed in 7ceb3c9e020aa8316ddc5809a2d409d5d2efb697, and (2) is as far as I'm aware, not an issue in this codebase. That means (3) should be the only point needing to be addressed, which I plan to open a PR to fix shortly.


Fix circuit ordering in InterleavedRB

Summary
Changes the ordering of circuits generated by InterleavedRB back to RIRIRI (R: Reference, I: Interleaved) order. It was accidentally changed into RRRIII order in #898. Before that, it had been RIRIRI order.
Details and comments
This change may slightly alter the impact of noise on IRB results. RIRIRI ordering is preferable in the sense that it minimizes the impact of drift or noise fluctuations. Note that InterleavedRBAnalysis is not changed that means it works correctly regardless of the circuit ordering because it processes data relying on "interleaved" flag in circuit metadata.

I think the circuit order can be an experiment option defaulting to RIRIRI that can be optionally set upon experiment instantiation as well, what do you think?

That makes sense to me. BTW. I'm understanding Qiskit Experiments has a convention that all experiment options can be set upon experiment instantiation. Is it correct?


pip install error on Linux

Hi, on Ubuntu 20.04 I am unable to install ctcdecode with pip. I get the same failures with pip install . as instructed in the README or pip install git+https://github.com/parlance/ctcdecode as suggested in a previous install issue.
The torch, gcc, and g++ are ahead of what is mentioned here: https://github.com/parlance/ctcdecode/issues/182
The error message is truly large and very hard to read, but the beginning and ending look like so:
$ pip install git+https://github.com/parlance/ctcdecode
Defaulting to user installation because normal site-packages is not writeable
Collecting git+https://github.com/parlance/ctcdecode
  Cloning https://github.com/parlance/ctcdecode to /tmp/pip-req-build-j7if84vf
  Running command git clone --filter=blob:none --quiet https://github.com/parlance/ctcdecode /tmp/pip-req-build-j7if84vf
  Resolved https://github.com/parlance/ctcdecode to commit c90ad94a0b19554f80804fb7812f2a1447a34a70
  Running command git submodule update --init --recursive -q
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: ctcdecode
  Building wheel for ctcdecode (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [2682 lines of output]
      /home/eric/.local/lib/python3.8/site-packages/setuptools/_distutils/extension.py:134: UserWarning: Unknown Extension options: 'package', 'with_cuda'
        warnings.warn(msg)
      running bdist_wheel
      /home/eric/.local/lib/python3.8/site-packages/torch/utils/cpp_extension.py:411: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
        warnings.warn(msg.format('we could not find ninja.'))

...

      /tmp/pip-req-build-j7if84vf/third_party/openfst-1.6.7/src/include/fst/float-weight.h: In member function ‘fst::FromGallicMapper<A, G>::ToArc fst::FromGallicMapper<A, G>::operator()(const FromArc&) const [with A = fst::ArcTpl<fst::TropicalWeightTpl<float> >; fst::GallicType G = fst::GALLIC_RESTRICT]’:
      /tmp/pip-req-build-j7if84vf/third_party/openfst-1.6.7/src/include/fst/float-weight.h:48:73: warning: ‘weight.fst::FloatWeightTpl<float>::value_’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         48 |   FloatWeightTpl(const FloatWeightTpl<T> &weight) : value_(weight.value_) {}
            |                                                                         ^
      In file included from /tmp/pip-req-build-j7if84vf/third_party/openfst-1.6.7/src/include/fst/fstlib.h:39,
                       from ctcdecode/src/path_trie.h:10,
                       from ctcdecode/src/scorer.h:14,
                       from ctcdecode/src/scorer.cpp:1:
      /tmp/pip-req-build-j7if84vf/third_party/openfst-1.6.7/src/include/fst/arc-map.h:881:8: note: ‘weight.fst::FloatWeightTpl<float>::value_’ was declared here
        881 |     AW weight;
            |        ^~~~~~
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> ctcdecode

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

The full error output is attached:
error.txt

Down in the weeds of the error file I found "fatal error: Python.h: No such file or directory", which I found odd, since I have python3 installed and have been running things with it.
It turns out I was missing "the header files and static libraries for python dev" (https://stackoverflow.com/questions/21530577/fatal-error-python-h-no-such-file-or-directory). I'm not quite enough of a pythoner to know what python dev vs non-dev is, but installing python3-dev worked to get ctcdecode built.
Long story short, sudo apt-get install python3-dev fixed the issue, closing!

how to solve this problem


Changed Jetty to Undertow and removed all Tomcat dependencies

Coverage remained the same at 75.461% when pulling 93978c7ff1b38d9cce9618419a997932ad6b4405 on Heliozoa:undertow into b5f8ac51457ead76ba486d08bdfb5637b5665f24 on tdd-pingis:master.

Coverage remained the same at 75.461% when pulling 54489ab60ed801b367e5b12776b45213cac17c33 on Heliozoa:undertow into b5f8ac51457ead76ba486d08bdfb5637b5665f24 on tdd-pingis:master.


feat(encoding): decodeBase32Hex() and encodeBase32Hex()

As requested in #4917 I have added base32hex encoding and decoding.
I first created new tests from the base32 test cases and using this tool:
https://tomeko.net/online_tools/base32hex.php?lang=en
Once those tests passed, I extracted the common base32 and base32 hex into a _utilsmodule with a new parameter for a lookup table.
This is my first time contributing to an open source project and using deno. I am having trouble running the task ok. It is failing on my documentation examples with the error below. I think I'm missing a step though, because it's executing with the published module from jsr rather than the local version. This means it makes sense that my module is not there, because it won't be in version 0.224.3. If there's any step I'm missing here I'd really appreciate any feedback.
[error] Failed to execute snippet:
import { decodeBase32Hex } from "@std/encoding/base32hex";
import { assertEquals } from "@std/assert/assert-equals";

assertEquals(
  decodeBase32Hex("GZRTMMDDGA======"),
  new TextEncoder().encode("6c60c0"),
);
error: Unknown export './base32hex' for '<EMAIL_ADDRESS>  Package exports:
 * .
 * ./ascii85
 * ./base32
 * ./base58
 * ./base64
 * ./base64url
 * ./hex
 * ./varint
 at file:///home/benmclean/projects/deno/deno_std/encoding/base32hex.ts:54
[error] Failed to execute snippet:
import { encodeBase32Hex } from "@std/encoding/base32hex";
import { assertEquals } from "@std/assert/assert-equals";

assertEquals(encodeBase32Hex("6c60c0"), "GZRTMMDDGA======");
error: Unknown export './base32hex' for '<EMAIL_ADDRESS>  Package exports:
 * .
 * ./ascii85
 * ./base32
 * ./base58
 * ./base64
 * ./base64url
 * ./hex
 * ./varint
 at file:///home/benmclean/projects/deno/deno_std/encoding/base32hex.ts:74
2 errors found

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Can you please add the new module to the exports in encoding/deno.json?

I actually already did, I didn't add the _utils.ts module though because it should be private.

The only error left seems to be that you forgot to update the assertEquals in the jsdoc examples when you copied it over.

The only error left seems to be that you forgot to update the assertEquals in the jsdoc examples when you copied it over.

Good catch, this has been fixed, thanks.

Hey there. Sorry for the delay. On second thought, with the only difference being the alphabet used, I think we should add an options argument to the base32 functions, instead of creating new symbols and modules. It could look like this.
interface Base32Options {
  /**
   * Base32 format to use.
   *
   * @default {"standard"}
   */
  format?: "standard" | "hex";
}

What do y'all think?

Actually, we can have separate functions but have them all in the existing base32 module, since there's so much overlap.

I think the best way to do it would be the same way base64 and base64url are done.

base32 and base32Hex functions have almost complete overlap - there's no benefit to separating them. Arguably, the same could be said for base32Url, but that's a separate conversation.

I don't have an opinion one way or the other on how it should be done, but I think consistency is best.


PC_Gen static branch prediction

Deleted the BHT and added static branch prediction based on the lowest five bits of the pc and the next pc from the btb. This assumes two things. One, forward branches are not taken and backward branches are taken. Two, code usually does not branch more than five to ten instructions away, so we could assume all of the high order bits are the same, and we only need to compare about the lowest five bits.
Instr/S:
Baseline:         206.28 MInstr/S
Optimization: 211.40 MInstr/S
Change:          5.12 MInstr/S or 2.45% increase
J/Instr
Baseline:         369.65 pJ/Instr
Optimization: 353.86 pJ/Instr
Change:          -15.79 pJ/Instr or 4.48% decrease
Area
Baseline:         1333895 um^2
Optimization: 1330278 um^2
Change:          -3617 um^2 or 0.272% decrease
As you can see every aspect of PPA was better with my optimization so there is no reason not to adopt it  except for maybe me not following the coding guidelines. Particularly where I just wrote [4:0] instead of using one of the parameters, but honestly I wasn't sure which one to use :)

Nice! You can do a little better by just testing the sign bit of the immediate to see which direction the branch is going

That was my original intention but I didn't know which signal was the immediate.


22.04 build

Many deprecation warnings currently

Crashes
terminate called after throwing an instance of 'Ogre::ItemIdentityException'
  what():  ItemIdentityException: Texture with the name RttTex already exists. in ResourceManager::add at ./OgreMain/src/OgreResourceManager.cpp (line 148)
Aborted (core dumped)


Can I use this to validate if one of two fields is filled in?

Hi, great module!
I was wondering if I could use this to validate client-side if one of two fields from the form were used (only one of both is required).
So let's say you can either upload a file or a provide a link, so I want to validate that only one of these two is filled.
Thanks!

I would like to do the same.
With parseley, you can validate if one of two fields is filled up with the following code:
`

$('#myform').parsley().on('form:validate', function (formInstance) {
if(formInstance.isValid({group: 'group1', force: true}) ||
formInstance.isValid({group: 'group2', force: true}) ||
formInstance.isValid({group: 'group3', force: true})) {
//do nothing
}
else {
$('#errorContainer').html('You must correctly fill at least one of these three groups!');
formInstance.validationResult = false;
}
});`
If my django form is:
@parsleyfy class RegisterPatientMetaForm(ModelForm):     dob = forms.DateField(         input_formats=['%d-%m-%y', '%Y-%m-%d'],         widget=forms.DateInput(format='%d-%m-%y'),         required=False         )     class Meta:                 model = customer         fields = [             'name',             'ageyrs',             'agemnths',             'dob',             'gender',             'maritalstatus',             'mobile',             'alternate',             'email',             'address',             'city',             'occupation',             'bloodgroup'             ]         error_messages = {                    }         unique_together = ["name", "mobile", "linkedclinic"]
How can I validate if one of dob or age in yrs is filled up?


Add a missing projects/ to the k8s certified img.

You can see the rendered change here: https://github.com/hurstdog/aws-quickstart/tree/imglink-fix-signedoff

@hurstdog Thanks for finding/fixing the broken link!
While you're updating this line could you go ahead and update it to the most recent certified version, 1.13?
https://raw.githubusercontent.com/cncf/artwork/master/projects/kubernetes/certified-kubernetes/1.13/color/certified-kubernetes-1.13-color.png
See the certification here: https://github.com/cncf/k8s-conformance/blob/f8fc94929fa5108172e6fb4f9e4887467c26ddc4/v1.13/vmware-aws-quickstart/PRODUCT.yaml

Sure, done.

Anything left for this to get approved and merged? It looks like the Heptio Jenkins hasn't run over this for some reason, but I'm not sure how to affect that.


Various cross-mod energy compatibility fixes

Since this has led to some confusion in Tekkit 2:
When both energy input and output are disabled via config, energy connections are not needed. This was already done for Forge Energy but was missing for the remaining energy types.

We will do so and report back.

Works just fine in my test instances (both standalone and alongside the other supported mods).
But there‘s more to it since this only affects transmitters (aluminum wires) as of now and should extend to machinery as well.
I‘ll do some more commits until we can talk about merging.

@ACGaming anymore commits to make for this PR?

Good to go! Includes the most apparent stuff for now.

Exactly, these were for older versions of Minecraft as it appears.


[ISSUE]ON PART SEGEMENTATION IN SHAPENET PAER

HI, XIANG,
I found the code in part segmentation is wrong. Could you check with the code please?
mv: cannot stat 'shapenet_part_seg_hdf5_data': No such file or directory
Traceback (most recent call last):
  File "main_partseg.py", line 346, in <module>
    train(args, io)
  File "main_partseg.py", line 85, in train
    train_dataset = ShapeNetPart(partition='trainval', num_points=args.num_points, class_choice=args.class_choice)
  File "/home/liy0r/3d-few-shot/download/CurveNet/core/data.py", line 158, in __init__
    self.data, self.label, self.seg = load_data_partseg(partition)
  File "/home/liy0r/3d-few-shot/download/CurveNet/core/data.py", line 91, in load_data_partseg
    all_data = np.concatenate(all_data, axis=0)
  File "<__array_function__ internals>", line 6, in concatenate
ValueError: need at least one array to concatenate

small mistake, i think in the
def download_shapenetpart():
You need to first mkdir "shapenet_part_seg_hdf5_data"

Ooops, thanks for the fix, the PR has now been merged.

Ooops, thanks for the fix, the PR has now been merged.


chore: bump lib to 0.10.0-beta.2

1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

[x] N
[ ] Y

chore: bump lib to 0.10.0-beta.2

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

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

Totals

Change from base Build<PHONE_NUMBER>4:
0.0%

Covered Lines:
5746

Relevant Lines:
17536

💛  - Coveralls


Use simpler prompts for smaller models

When using smaller language models, we're seeing inconsistent responses due to the model's limited context handling. To resolve this, we need to optimize and simplify our prompt templates for smaller models.
https://github.com/glowingjade/obsidian-smart-composer/pull/45#issuecomment-2439622129

I'll check it out, thanks!


Adjust WorkflowPackageManagerImplTest to Java 11

Pull Request Test Coverage Report for Build 4652

1 of 2 (50.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.004%) to 53.49%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

bundle/src/main/java/com/adobe/acs/commons/workflow/impl/WorkflowPackageManagerImpl.java
1
2
50.0%

Totals

Change from base Build 4646:
-0.004%

Covered Lines:
13847

Relevant Lines:
25887

💛  - Coveralls


Integrate UDP

Hi @paulofaria ,
I have finished integrating UDP according to the latest structure.
For macOS, I had to add rvm get head in install.sh to as a fix for the shell_session_update: command not found problem.
The tests on macOS pass, but not on linux, for another reason than UDP (they passed 6 hours ago before the inclusion of the many other modules -- great job by the way).
I would like your opinion on the way I use UnsafePointer to cope with the missing withUnsafeBufferPointer.
Cheers

Current coverage is 71.33% (diff: 70.00%)

Merging #2 into master will decrease coverage by 0.01%

@@             master         #2   diff @@
==========================================
  Files           130        131     +1
  Lines          6609       6659    +50
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           4715       4750    +35
- Misses         1894       1909    +15
  Partials          0          0

Powered by Codecov. Last update 3a023a3...76a51ff

Closing since we moved development to https://github.com/Zewo/Zewo. Please send the PR there! Thanks! 😊


daisui themes

Hey 👋🏼 ,
thanks for creating this. :)
I was wondering if it's possible to use the theming in daisyui with your theme.
https://daisyui.com/docs/themes/
The theming in daisyui lets one pick a color scheme and fonts, etc..
Cheers

I guess I figured part of it out. You created your own themes and these are loaded only?

Hi Till, thank you for using Salinger and sorry for the late answer.

I was wondering if it's possible to use the theming in DaisyUI with your theme.
https://daisyui.com/docs/themes/

The answer is yes but with a few limitations. There is indeed support for DaisyUI theming but as of now, it is only possible to switch between a light ("lit") and a dark ("dim") theme that can be customizable from the tailwind.config.js. As you can see, they are currently inheriting everything from two of the standard themes but they can also be customizable further. Unfortunately, it's not possible to edit them from the hugo.toml file, at least for now... Regarding the fonts, they can be changed in the same file
themes: [
      {
        lit: {
          ...require("daisyui/src/theming/themes")["[data-theme=corporate]"],
        },
      },
      {
        dim: {
          ...require("daisyui/src/theming/themes")["[data-theme=business]"],
        },
      },

I also have noticed that the demo link in the Readme points to my website that not uses this theme anymore. I apologize for the confusion and I will change it as soon as possible...

Thank you, this was helpful!


Standardized templating logic implementation

This implements a standardized templating logic and resolves #1991.
The new "language" exposes two functions: createTemplate and tokenizeWithHooks.
While tokenizeWithHooks is just utility which is exposed for convenience, createTemplate is the heart of the PR.
Edit: It now also exposes a replaceWithTemplate function which is basically a generalization of Markup templating (MT). MT is just a thin wrapper around this templating library now.

Can we merge this?
I can't implement #2403 with Markup Templating alone. In Balde templates, you can escape statements and directives by adding an @ symbol in front of it. To catch this, I need lookbehinds that I don't have in Markup Templating.
While impossible in the current Markup templating, it's trivial to do in the Markup templating of this PR.
@mAAdhaTTah @Golmote

Closed in favor of #3541.


Fix Clang static analyser nit: zero out nmbs_bitfield structs.

Do you have any thoughts on this? Better safe than sorry.

Yup, given the code it won't matter but I like best practices. Can you use nmbs_bitfield_reset()? And can you format the code with the provided .clang-format?. Thank you

nmbs_bitfield_reset() does not work with globals. Took me a while to figure out why the macro was failing to compile in some of the sample code. Any suggestions? Fall back to `= {0}?

Yes, ={0} should be fine, 1 line is better than 2 anyway.
But why do you say nmbs_bitfield_reset() doesn't work? It tried something like this:
nmbs_bitfield a;
int main() {
    nmbs_bitfield_reset(a);
}

and it compiles as expected.

Yes, ={0} should be fine, 1 line is better than 2 anyway. But why do you say nmbs_bitfield_reset() doesn't work? It tried something like this:
nmbs_bitfield a;
int main() {
    nmbs_bitfield_reset(a);
}

and it compiles as expected.

Yes. But this won’t:
nmbs_bitfield a;
nmbs_bitfield_reset(a);
int main() {
    return 0;
}


If there is no packages

We have a white blank page
There is no welcome message nothing

I think this is fixed already. @ayusharma Am I wrong?

@priscilawebdev Are you still facing this issue? I have fixed this in #1118. If the issue persists, Please let me know.

I checked, it works.


feat: prove specification of Max program that manipulates memory

After trying to get this to work via the current VCG framework with @alexkeizer , we concluded that the right course of action is to do what's currently done in https://github.com/leanprover/LNSym/blob/main/Proofs/Experiments/AbsVCG.lean


Display backstage bites from vimeo

https://app.shortcut.com/larder/story/6456/put-backstage-bites-on-the-website


fix clean url and default issue

:tada: This PR is included in version 4.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


How to merge the features related to golang filter to my version of envoy

Hi, I'm currently using envoy as a gateway as well as a sidecar in our organization right now.
I'm willing to use the features of golang filter on my envoy gateway. But there are circumstances that I'm can't update my envoy to the latest version.
My version of envoy is v1.24.10, and my istio version is v.1.16.6. Since the newer versions of istio requires the newer versions of kubernetes and the version of istio and envoy should be related. Since I can't easily update my kubernetes version, cause it's for the whole organization. I can't easily update the version of my istio and envoy.
So v1.24.10 is as far as I can go for my envoy. So is it possible to merge all the commits related to the golang filter to my version of envoy while I can continue using the current v1.24.10 version of envoy. If it is, I'm more than thrilled to know which commits should I merge to my envoy, thank you!
@wangfakang
@doujiang24
@spacewander

@SoaringPhoenix
You can backport the whole golang filter from https://github.com/envoyproxy/envoy/tree/main/contrib/golang, and ensure the tests under it are all passed.

@SoaringPhoenix You can backport the whole golang filter from https://github.com/envoyproxy/envoy/tree/main/contrib/golang, and ensure the tests under it are all passed.

So the /contrib/golang directory contains all the features related to golang filter, is it so?
I can just copy the whole directory to my project, is it feasible? And what about istio, are there commits there to be backported as well?

I can just copy the whole directory to my project, is it feasible?

You need to build Envoy & run the test in the directory.

And what about istio, are there commits there to be backported as well?

You can use EnvoyFilter to distribute the golang filter configuration.

there are also some more directories:
https://github.com/envoyproxy/envoy/tree/main/api/contrib/envoy/extensions/filters/http/golang/v3alpha
https://github.com/envoyproxy/envoy/tree/main/api/contrib/envoy/extensions/filters/network/golang/v3alpha
https://github.com/envoyproxy/envoy/tree/main/api/contrib/envoy/extensions/router/cluster_specifier/golang/v3alpha
and, part of https://github.com/envoyproxy/envoy/blob/main/contrib/contrib_build_config.bzl, please grep the golang keyword.
Also, there are three golang extensions: HTTP filter extension, network filter extension, and cluster_specifier extension.
You can not need them all, you could pick some of them.
It should be workable, but may need some time, maybe one or two days to make them work.

@doujiang24 I have been following https://github.com/envoyproxy/envoy/blob/main/bazel/README.md#customize-extension-build-config, can you please share how to add these API directories to extensions_build_config.bzl? I added a section for contrib extensions, but where do these API directories go?
CONTRIB_EXTENSIONS = {
    # Go
    "envoy.filters.http.golang":                        "//contrib/golang/filters/http/source:config",
}

Build command - bazel build envoy --override_repository=envoy_build_config=custom-build

@shubham1172 I think it shoud be a bazel related issue, but I'm just a beginner bazel user, you'd better read the doc more.
re the directories, these might be your wanted.

https://github.com/envoyproxy/envoy/tree/main/contrib/golang
https://github.com/envoyproxy/envoy/tree/main/api/contrib/envoy/extensions/filters/http/golang/v3alpha

Thanks, for others who stumble here - if one is using bazel, contrib APIs are already a part of the build. I was configuring my bzl file incorrectly. Here is the delta that worked.
EXTENSIONS = {
+    #
+    # Go contrib
+    #
+    "envoy.filters.http.golang": "//contrib/golang/filters/http/source:config",

    #
    # Access loggers
    #
    "envoy.access_loggers.file": "//source/extensions/access_loggers/file:config",
...
- CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//:contrib_library"]
+ CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//visibility:public"]


After re entering the world, there is a probability that the remote interface will disconnect

version: RemoteIO-2.5.2 (1.7.10)
modpacks: GTNH-2.6.1

This should probably be posted here, as all GTNH-related mod issues are reported there.


Streaming Music with HTTPS Source

HI,
I am using openslMediaplayer into my Music Application in Android.
If I trying to streaming a song (from https url), is not start to play.
Please help me out

Hi. Unfortunately network source audio playback won't work on Android 5.0 or later. It may be a bug (or... I guess an undocumented limitation)  of the Android's OpenSL implementation.
Related issues:

#9

URI data locator
OpenSL ES for Android can only use the URI data locator with MIME data format, and only for an audio player. You cannot use this data format for an audio recorder. It supports http: and file: schemes. It does not support other schemes, such as https:, ftp:, or content:.
We have not verified support for rtsp: with audio on the Android platform.
[https://developer.android.com/ndk/guides/audio/opensl-for-android.html]

@sujewan Hi. This library do not use audio recorder and still not able to playback http protocol data source (on lollipop or later). I believe it is a bug of Android platform because Google's official ndk-audio app also cannot play any files over the internet.

I would like to ask if this library currently supports streaming music over the internet?


Add tests from taglib

Currently test are on ignore as they are not working due to lofty.

If you're still working on this, just wanted to let you know https://github.com/Serial-ATA/lofty-rs/commit/1d5d397dfa2ceea75c7ed9fefecb45c81af6da8d should invalidate https://github.com/Serial-ATA/lofty-rs/pull/51#discussion_r873170767 for the most part. I noticed TagLib still produces different numbers, but far less frequently.

If you're still working on this, just wanted to let you know 1d5d397 should invalidate #51 (comment) for the most part. I noticed TagLib still produces different numbers, but far less frequently.

It would probably be the best to implement something like assert with epsilon, something that is used for floats that permits ±1.

Hey @sagudev, do you mind if I take this over? :slightly_smiling_face:

Hey @sagudev, do you mind if I take this over? 🙂

You may take this over; unfortunately it's been low on my priority list.

Alright, thanks for your work on this!


feat(publick8s) tune updates.jenkins.io resources

Tin of https://github.com/jenkins-infra/kubernetes-management/pull/4828 but with a bit more CPU limit (as we expected .htaccess addition trafic)
Related to https://github.com/jenkins-infra/helpdesk/issues/3827

Self merging to deploy


What is the purpose for adding ce_term in the whole computation?

Hi,
This is an awesome work! I have a quick question about the function "gauss_cross_entropy(mu1, var1, mu2, var2)", which is defined in SVGP-VAE/utils.py file.
This function seems to return the negative cross_entropy and this ce_term is used in later computations. However, this ce_term was not explained in the paper. Could you briefly explain the intuition for introducing this ce_term and what it does/what are the benefits by adding this term?
Thanks again for the great work!
Best wishes
John

Hey John!
The ce_term in code corresponds to the cross-entropy between (latent) sparse GP posterior $q_S$ and (rearranged) VAE approximate posterior $\tilde{q}_{\phi}$ in the SVGP-VAE ELBO (see eq. (10) in our paper):

Hope that answers your question!
Cheers,
Metod

Hi Metod!
Is it going to minimize the cross-entropy between (latent) sparse GP posterior $q_S$ and (rearranged) VAE approximate posterior $\tilde{q}_\phi$ during the optimization? Because gauss_cross_entropy function seems to return the negative CE of the two posteriors. Another related question is the benefits for adding this ce_term in optimization, could we simply remove this term in the loss and will the results be very different?
Best wishes
John


Error: Cannot find module 'userhome'

This error occurs both with the master branch and the 0.8.19 release. Looking at main.js there is clearly a require('userhome') at the top of the file. Just installing userhome with npm install userhome solves the problem, however this should be included in the release.
Running Arch Linux x64.

I see the issue yes, I had removed userhome from the npm module directory by accident when I was releasing it. The 64bit version on the 0.8.19 release shouldn't have this issue?
I am removing the userhome library as it only contains one line of code, pretty useless library to be honest.

Sorry, should have mentioned that this was occurring when using the 32-bit build of electron.

No worries, I never updated the 32bit when the 64bit flash issue arrived, at that point I had remove 'userhome'.
I have uploaded a fixed 32bit .deb on the releases page and linked it below. If you could try this it would help me out as I'm quite busy and if it works I can just replace the old release .deb. You seem to know about npm/electron so this should be easy to test and make sure it would work without userhome/your previous install perhaps?
https://github.com/Quacky2200/Spotify-Web-Player-for-Linux/releases/download/v0.8.19/spotifywebplayerx86-experimental-fix.deb

Sure, I can help you test that. However, I don't have dpkg so unfortunately I can't install that .deb package. Mind creating a tar.gz of the source with the fix instead?

spotifywebplayer-userhome-fix.tar.gz
I do not use any type of make-file so you will have to just copy this to the /usr/bin/spotifywebplayer directory.

I've tested it and can confirm that it works without the userhome module. Thanks for the quick response. Hope to see it in the next official release.

I'll change the releases. Thanks for testing :) :+1:


Make replication slots for members behave like permanent slots

That is, create slots on all nodes that could potentially become a new leader and use pg_replication_slot_advance() to move them forward.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

16 of 16 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.862%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
13784

Relevant Lines:
13803

💛  - Coveralls

https://github.com/patroni/patroni/blob/8cd9690fa47083d4a58eff9139180479dc1dcd23/docs/dynamic_configuration.rst?plain=1#L94-L110
needs an update

https://github.com/patroni/patroni/blob/2fb39616aa0cee310570b40fcf54fa3587cac30b/docs/dynamic_configuration.rst?plain=1#L108-L110
->
An exception to that rule are permanent physical slots that match the Patroni member names (created and maintained by Patroni).

i think it also makes sense to mention automatically created physical permanent slots here (because we used to give recommendations to manually configure member slots for some cases which are now covered):
https://github.com/patroni/patroni/blob/2fb39616aa0cee310570b40fcf54fa3587cac30b/docs/dynamic_configuration.rst?plain=1#L58
and mention here that since version 4 (?), these slots are created automatically, but you still need to define them as permanent if you want to avoid the deletion.
don't forget to add an upcoming functionality in later prs:)
https://github.com/patroni/patroni/blob/2fb39616aa0cee310570b40fcf54fa3587cac30b/docs/faq.rst?plain=1#L188

What about the slots for nostream members? 🤔


Adding sub commands for different import paths

In near future, cdk-import will be able to import CDK constructs from more than just Cfn Registry.
In light of that - would like to just confirm how the cli can be extended before making a PR.
Given CDK team input on using subcommands I thought it might be appropriate to add minimist-subcommand which would then allow us to do something like
cdk-import sc -l python

We would just introduce this with new subcommand definition, we can add a subcommand definition for current path using something like cfn, but also set that as the default path, so the current usage would not be affected.
//same functionality
cdk-import -l python RESOURCE
cdk-import cfn -l python RESOURCE

Just wanted to see if there are any thoughts or majors issues with this approach.

I like this approach, no concerns from me 🙂.
@corymhall do you want to opine here?

Sounds good to me.


"invalid escape sequence \|" warning when running verify.py -h.

On latest python 3.12.2 (macOS 14.4) when running verify.py -h there is following warning in the output:
./build-tools/bin/verify.py -h
/Users/sergei/Develop/git/OpenCyphal/CETL/./build-tools/bin/verify.py:164: SyntaxWarning: invalid escape sequence '\|'
  """
...

It seems that "Cyphal" logo text "image" is missing "r" (raw string) prefix (like r"""...).
I'm gonna fix this as part of my onboarding (fork, pr, etc.)

Fixed in https://github.com/OpenCyphal/CETL/pull/98


Support ExtensionContextPolicy resources to provide state to Extension Server hooks

Description:
The Extension Server protocol supports four hooks today. Only one of these hooks supports receiving context as part of its invocation.
While it's possible to register a CRD and attach specific instances of it to an HTTPRoute during calls to the route modification hook, it's not possible to get similar context with the other hooks. In the example extension server (#2931) this is worked around by developing a full operator for context, and then when the HTTPListener modification hook is called then correlating the internal extension server state with the hook details.
I propose adding a policy document that would allow attaching context to calls to the extension hook server. For example:
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: ExtensionContextPolicy
metadata:
   name:  my-context
spec:
  targetRef:
    group: gateway.networking.k8s.io
    kind: Gateway
    name: eg
    namespace: default
  # Support sending multiple documents to the extension server as contextual information
  extensionRef:
  - group: example.myextension.io
     kind: LuaScript
     name: my-lua-script
---
apiVersion: example.myextension.io/v1
kind: LuaScript
metadata:
   name: my-lua-script
spec:
   lua: # some lua script

The ExtensionContextPolicy can be attached to:

Gateway resources (entire resource or just a section), to be sent to the Listener modification hook
HTTPRoute resources, to be sent to the Route modification hook

By passing the contextual resource as a parameter, extension server development is made easier since the extension server doesn't need to implement an operator itself for the common use-cases.

this was discussed in the meeting today

there's currently nothing in the spec defined in the ExtensionManager config https://github.com/envoyproxy/gateway/blob/cc01bf5ea9e962f82314d85e84b7a00b8314a34c/api/v1alpha1/envoygateway_types.go#L398 that talks about the context sent per hook for a resource type, that is an implementation detail.
more work is required to build a better API contract for this feature and improve the API
most of the attendees on the call were a -1 on adding a new Poilicy, instead suggest updating the spec within the EnvoyGateway config that already exists

more work is required to build a better API contract for this feature and improve the API

Agreed. My intent was to update the PostHTTPListenerExtensionContext so that it would be possible to pass extension resources - similar to the PostRouteExtensionContext resource.

most of the attendees on the call were a -1 on adding a new Poilicy, instead suggest updating the spec within the EnvoyGateway config that already exists

Unless I'm misunderstanding the intent behind the EnvoyGateway resource, there's 1 such resource per Envoy Gateway installation.
My intent was to make it possible to configure the extension server to receive a different instance of an extension type per configured listener.
How about attaching this information to the ClientTrafficPolicy resource, which is attachable to Gateway resources, and therefore applicable to Listeners?

-1 to adding any extension manager related logic to ClientTrafficPolicy which is tied to the platform admin / app admin persona

If not the ClientTrafficPolicy, then I think a new policy type is needed here to support the vendor/extension developer persona.
The EnvoyGateway resource seems wrong because there might be a different extension resource required for each listener.
Example:
There are two Gateways defined, and the PostHTTPListenerHook called for listeners on each Gateway should be sent a different extension resource:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: first-gateway
  namepace: first
spec:
  gatewayClassName: eg
  listeners:
    - name: http
      protocol: HTTP
      port: 80
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: second-gateway
  namepace: second
spec:
  gatewayClassName: eg
  listeners:
    - name: http
      protocol: HTTP
      port: 80
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: ExtensionContextPolicy
metadata:
   name:  first-context
   namespace: first
spec:
  targetRef:
    group: gateway.networking.k8s.io
    kind: Gateway
    name: first-gateway
    namespace: first
  extensionRef:
  - group: example.myextension.io
     kind: LuaScript
     name: my-first-lua-script
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: ExtensionContextPolicy
metadata:
   name:  second-context
   namespace: second
spec:
  targetRef:
    group: gateway.networking.k8s.io
    kind: Gateway
    name: second-gateway
    namespace: second
  extensionRef:
  - group: example.myextension.io
     kind: LuaScript
     name: my-second-lua-script

@liorokman I suggest consider using EnvoyPatchPolicy . The Policy can be created programmatically. The only difference with ExtensionManager

Your custom controller will need to watch for Gateway API resources (controller-runtime has made it fairly easy to perform this task)
In extension manager, xds is patches and sent over the network, in EnvoyPatchPolicy its patched after persisting in K8s API server (which means the patch is visible to someone with admin/right role access)

The biggest difference between using the ExtensionManager and maintaining sets of EnvoyPatchPolicy documents is that JSON patches are hard to get right, and when they stop applying cleanly due to some change in the way that Envoy Gateway generates XDS, it's not always trivial to understand what happened.
In contrast, ExtensionManager uses strongly typed Golang structs and if something goes wrong, it's easier to recover in case something changed in Envoy Gateway's XDS translation.
If I'm going to develop some software anyways (either to generate EnvoyPatchPolicy instances or to implement the ExtensionServer interface), I prefer to implement the ExtensionServer interface and perform the required change in the XDS directly in my own code. Watching just the Gateway API resources would not be enough, software generating EnvoyPatchPolicy documents would also need to be intimately aware of how the various settings in policies like ClientTrafficPolicy affect the created XDS.
If I implement an operator that generates EnvoyPatchPolicy resources and it needs different contextual information per listener, then the same issue I'm trying to solve here still remains; if the generated JSON patch needs to be affected by some other resource in the API server and it's a different resource per listener, then it would make more sense for Envoy Gateway to do the work against the Envoy Gateway Provider. The mechanism I propose is future proof against the day that Envoy Gateway implements its next configuration Provider - e.g. a File System provider.

If I implement an operator that generates EnvoyPatchPolicy resources and it needs different contextual information per listener, then the same issue I'm trying to solve here still remains; if the generated JSON patch needs to be affected by some other resource in the API server and it's a different resource per listener, then it would make more sense for Envoy Gateway to do the work against the Envoy Gateway Provider. The mechanism I propose is future proof against the day that Envoy Gateway implements its next configuration Provider - e.g. a File System provider.

This is exactly the point, the reconciling and relationship b/w Gateway API resources and custom non EG resources are very unique per use case.
You can still provide this context at the EnvoyGateway level and also adding any generic matching API there, and that can be passed directly to the ExtensionManager runner
What I'm actually trying to ensure is to make sure the code maintenance/complexity  and performance of the Gateway API resources is not affected by ExtensionManager.
Even right now, we dont seem to have a code owner for ExtensionManager and the API contract is not well defined, the situation will only get worse as more code is added

Sending specific context for specific gateway api resources - can 3. be solved using a selector / match structure that supports label selectors, which looks something like this ?

hooks:
   xdsTranslator:
      post:
      - HTTPListener
      context:
      - for:
           kind: Gateway
           group: gateway.networking.k8s.io
         send:
           kind: ListenerContext
           group: example.myextension.io
         when:
           selector:
             matchLabels:
               app: foo

this can be solved within the extension manager server
You can use existing envoyGateway.provider.kubernetes.watch to fine tune reconciliation

Sending specific context for specific gateway api resources - can 3. be solved using a selector / match structure that supports label selectors, which looks something like this ?

hooks:
   xdsTranslator:
      post:
      - HTTPListener
      context:
      - for:
           kind: Gateway
           group: gateway.networking.k8s.io
         send:
           kind: ListenerContext
           group: example.myextension.io
         when:
           selector:
             matchLabels:
               app: foo

this can be solved within the extension manager server
You can use existing envoyGateway.provider.kubernetes.watch to fine tune reconciliation

This seems a little too much on one hand, and a little to little on the other.

HTTPListener hook types are always for Gateway resources. The for section of the context structure would never change, because anything other than Gateway doesn't make any sense.
It's not clear here what the matchLabels section specifies be. Are they on the ListenerContext items, so that only a few of the tens of thousand instances of ListenerContext resources in the API server are sent to the extension server? Or are they on the specific Gateway instance to which I want to match a specific context.
How would I specify in this configuration, that for a new Gateway resource I am now adding and only for this new gateway, that I want a specific instance of my ListenerContext to be sent to the extension server?

I think that configuring the connection between a Gateway and its associated context items should be done either on the Gateway or on the context items. It's wrong to place this configuration in a third non-related location.

This is gonna be long-winded, so sorry in advance.
I'm a strong -1 on any api that requires information about how the extension operates (like the names of the hooks and whatnot) to be known/understood by the end users of an extension for them to be able to use any custom resources added by the extension. It's totally fine if that is an option, but it should definitely not be a requirement. I also have no issues with creating a new custom resource or calling it xxxPolicy. The main issue I have with policies are specifically "GatewayAPI policies". If something makes sense to implement as a "GatewayAPI policy" then that is totally fine, but I find that more often that not, it does not make any sense to try and force an API to conform to GatewayAPI's idea of what a policy should be rather than just designing the custom resource in whatever way makes most sense for its API.
To nit-pick on a couple examples:
hooks:
   xdsTranslator:
      post:
      - HTTPListener
      context:
      - for:
           kind: Gateway
           group: gateway.networking.k8s.io
         send:
           kind: MyExtensionCustomResource
           group: example.myextension.io
         when:
           selector:
             matchLabels:
               app: foo

and
  resources:
  - name: my-resource
    group: example.myextension.io
    version: v2
    kind: MyExtensionCustomResource
  hooks:
    xdsTranslator:
      post:
      - HTTPListener

The person creating the MyExtensionCustomResource resources needs to be aware of what resources the extension expects and at which hooks it expects to receive them with. If they don't label their resources correctly or add extra config under the above examples to set the name every single time they make a new custom resource, then it won't work. That model only really makes sense when the person/group running the extension is the same as the person/group that wrote it. I especially dislike the idea of using label selectors here as a solution.
As an extension developer, I should be able to specify the config/context for what resources my extension requires for each hook without the end users of my extension ever having to touch that config or worry about how it works. Basically, whatever API we use to specify context should be something that an extension developer can write once, deploy when users install their extension, and then never have to be touched again. I'm not saying that needs to be the default or only model for setting up context info, but it needs to be at least possible.
For example, if I am writing an extension to add a GlobalLuaFilter resource that should run on all requests, it doesn't make any sense to require my extension's users to setup this context every time they want to create a GlobalLuaFilter or require those users to have an understanding about all this context stuff. A slight tweak to the above models where the name field is either optional, or supports name: * would support that workflow while also supporting the case where the person running the extension knows exactly what context to supply and where so that the extension doesn't have to figure out from a list of all resources of that GVK.
If I want to write my extension, and provide config to say "hey Envoy Gateway, send over all of the MyCustomCRD resources to the route hook whenever it is invoked and then let the extension figure out if they are relevant or not so that the end users don't need to have any knowledge about how the extension works", then that should be possible.
On the other hand, we should absolutely allow for context configuration that doesn't require all the resources of a given type to always be sent over the wire every time a hook is invoked if the user does have in-depth knowledge of the expected context and they want to design their extension in a way that it only ever expects to receive context for resources it WILL use.
I think both of those use-cases are different and also equally valuable. We shouldn't sacrifice one to fulfill the other.
In the past, a lot of the discussions around sending context through these hooks hit stalemates during PR review and a consensus was never reached which is why we abandoned the idea of Envoy Gateway tracking state and instead added controllers to our extension. It was nice that our use-case worked out with that approach, but:

Maintaining controllers for your extension is a lot of extra work
That pattern doesn't support a ton of use-cases

As a side-note, it would also be nice to be able to get the context about the GatewayAPI resource relevant to the hook. So for example, when the route level hook is invoked, sending over the HTTPRoute for that xds route so that the extension could do things like look at the config and see if it references any filters/backendrefs that are names of custom resources introduced by the extension.
To provide my own modified version of @liorokman's suggestion
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: ExtensionContextPolicy
metadata:
   name:  my-context-policy
   namespace: foo
spec:
  contextBindings:
  - targetRef:
      group: gateway.networking.k8s.io
      kind: Gateway
      name: first-gateway # optional, supports *
      namespace: first # optional, supports *
    resourcesToSend:
    - group: example.myextension.io
       kind: LuaScript
       name: my-first-lua-script # optional, supports *

Not to suggest this as the exact API we use or anything (I'm sure there are also problems with this that someone will point out), but this supports the idea of letting the extension's resources supply their own context and letting the extension get them all and figure it out, or limiting context to specific resource/target combinations.
I like something more like this because we are only associating resources together that the end-user should know about and not requiring them to know anything about the hooks or which hook gets which resources and when.
That way you could use a single ExtensionContextPolicy for all your bindings, or create multiple if you need, and it supports both use-cases of being specific about your context, or being generic. We could still support resources in the EnvoyGateway extension manager config as a way to tell Envoy Gateway,  "Hey, my extension is actually going to watch it's own resources and keep track of their state, but if you see a resource of this GVK change, then you should reconfigure and run the hooks again"
I had also initially wanted to extend the extension system to cover the infrastructure manager as well so that an extension could do things like inject sidecars to Envoy Proxy and whatnot. I think that would still be cool as a future consideration, but not sure how context fits in with that idea at the moment.
As a final note, I do think that almost all of this friction would have been eliminated if we turned Envoy Gateway into a composable library of public packages so that extension developers had all the flexibility to go with whatever approach they needed and Envoy Gateway didn't need to worry about the details and semantics of extensions, but there was also a lot of pushback on that initial idea when we were first designing the extension system and it would be a very big lift to rewrite everything to fit that model.

This API proposes to send different resources to different Gateway/Listeners. Is this level of flexibility needed?

If one Gateway belongs to one application and another Gateway belongs to a different one, then each application might require different context in the extension server.

Does this imply the extension developer needs to know what Gateway/Listeners the system has in the runtime? It seems unlikely, or at least, uncommon.

If the extension developer provides some service (e.g. attach a LuaScript to a Listener), then the developer persona responsible for a specific gateway can decide to use that service. The extension developer doesn't know in advance which gateways exist, the developer persona can attach his specific context to his specific Gateway resource.

On the other hand, should we send all the custom resources to each hook and allow the extension implementation decide what to use? Are there any specific use cases where this might not be suitable?

I think this is exactly what we want to avoid.

If the extension developer needs to choose which custom resource is relevant for which listener, it means that the extension developer needs to be aware of all the listeners and to somehow decide what to apply.
Since EG allows only one extension server, if there are multiple applications exposed via the EG this becomes a problem.

There might be a large number of instances of the custom resources, and it's better to send exactly those resources that are relevant. Just like in the HTTPRoute mechanism we allow sending a specific custom resource and not all of the custom resources of that type. See https://gateway.envoyproxy.io/contributions/design/extending-envoy-gateway/#extending-gateway-api-and-the-data-plane

@kflynn mentioned this GEP: https://gateway-api.sigs.k8s.io/geps/gep-1867 in a different discussion. @liorokman  - do you think that GW parameters can be used here as an alternative (acting like HTTPRoute filters) ?

@guydc the same CRD should be able to attach to  GatewayClass.spec.parametersRef and  Gateway.spec.parametersRef . this is the EnvoyProxy resource today.
Adding a context field for extensionManager within EnvoyProxy may be an alternate solution
another point I'm hoping we an discuss here, have we ruled out the ability to infer context from a extension CRD using Spec.TargetRef or Spec.TargetRefs field that maps to the upstream definition ?

I’m concerned about the complexity involved in implementing the ExtensionContextPolicy. While the ExtensionContextPolicy is linked to a Gateway API Custom Resource (CR), it is the extension server’s responsibility to apply it to an xDS resource. However, the mapping from CR to xDS is not always a straightforward one-to-one relationship.

In the simplest scenario, we have a one-to-one mapping (CR : xDS = 1 : 1), which is straightforward.
More complex is the one-to-many mapping (CR : xDS = 1 : N), where attaching a policy to an HTTPRoute could impact multiple xDS resources if the HTTPRoute has multiple parentRefs.
Conversely, a many-to-one mapping (CR : xDS = N : 1) occurs when a single xDS resource is affected by multiple policies applied at different levels, such as one policy on an HTTPRoute and another on a Gateway or Listener.

As an extension developer, managing these complexities is daunting. I’m uncertain if the Envoy Gateway is equipped to handle such scenarios effectively.

To share our experiences for consideration, here are our use cases involving extension hook APIs:

Integrating a customized WAF filter into an HCM
Implementing an original source listener filter to enable IP transparent TCP proxy functionality
Adding a custom TLS-PSK handshaker extension to transport sockets

Sometimes, we apply extension configurations universally across all HCMs/listeners, while in other instances, we tailor them to specific xDS resources, including listeners, filter chains, or routes.

@kflynn mentioned this GEP: https://gateway-api.sigs.k8s.io/geps/gep-1867 in a different discussion. @liorokman - do you think that GW parameters can be used here as an alternative (acting like HTTPRoute filters) ?

Yes, I think that if/when the Gateway resource has a place for implementation specific attributes, then it could be used instead of a policy - in much the same way that context for the extension server is added to HTTPRoute resources.

@guydc the same CRD should be able to attach to  GatewayClass.spec.parametersRef and  Gateway.spec.parametersRef .
this is the EnvoyProxy resource today.
Adding a context field for extensionManager within EnvoyProxy may be an alternate solution

The EnvoyProxy resource serves the same purpose as the GatewayClassInfrastructure type proposed in GEP-1867, but is not the same as the GatewayInfrastructure type proposed in GEP-1867. The difference is this:

Provide the ability to configure arbitrary (implementation specific) attributes about a specific Gateway.

Adding context in the EnvoyProxy resource is not a good design for providing configuration for a specific gateway instance.

another point I'm hoping we an discuss here, have we ruled out the ability to infer context from a extension CRD using
Spec.TargetRef or Spec.TargetRefs field that maps to the upstream definition ?

The closest thing I know of that is similar to this proposal is Cluster API's provider contracts where the contract mandates the usage of a specific struct with a specific name. For example, see points 5 and 6 here.
The example turns into this:
apiVersion: example.myextension.io/v1
kind: LuaScript
metadata:
   name: my-lua-script
spec:
   bindings:
  -  group: gateway.networking.k8s.io
     kind: Gateway
     name: first-gateway # optional, supports *
   # The rest of the information that is relevant for this context extension
   lua: # some lua script

Pros:

Only the context-relevant CRDs are needed when providing context to the extension server - resulting in fewer instances and fewer CRDs.

Cons:

Extension servers that want to provide an extension context type need to work harder to create CRDs that Envoy Gateway will support.
Since Envoy Gateway provides the types that need to be embedded, there's a tighter coupling here between the Envoy Gateway version and the extension server's version.
This mechanism provides yet another mechanism to extend gateway configuration. We already have:

Direct policy attachments GEP-2648
ExtensionRef in HTTPRouteFilter and GRPCRouteFilter resources

Not mentioned in Envoy Gateway's extension server design, as opposed to the policy attachment mechanism which is.

I’m concerned about the complexity involved in implementing the ExtensionContextPolicy. While the ExtensionContextPolicy is linked to a Gateway API Custom Resource (CR), it is the extension server’s responsibility to apply it to an xDS resource. However, the mapping from CR to xDS is not always a straightforward one-to-one relationship.

In the simplest scenario, we have a one-to-one mapping (CR : xDS = 1 : 1), which is straightforward.
More complex is the one-to-many mapping (CR : xDS = 1 : N), where attaching a policy to an HTTPRoute could impact multiple xDS resources if the HTTPRoute has multiple parentRefs.
Conversely, a many-to-one mapping (CR : xDS = N : 1) occurs when a single xDS resource is affected by multiple policies applied at different levels, such as one policy on an HTTPRoute and another on a Gateway or Listener.

As an extension developer, managing these complexities is daunting. I’m uncertain if the Envoy Gateway is equipped to handle such scenarios effectively.

I don't think that the ExtensionContextPolicy resource would be the way to link arbitrary resources to arbitrary xDS points. The mappings that I think make sense are only for Listeners. This is actually pretty straightforward to do:
If mergeGateways is not turned on then there's always a 1:1 mapping between a specific listener in a specific Gateway resource and the relevant xDS for that listener.
If mergeGateways is turned on, then there can be a 1:n mapping between an xDS listener and a set of Gateway resources, but it's easy for Envoy Gateway to keep track of this mapping.
Context for routes would still be added as an ExtensionRef on the relevant HTTPRoute or GRPCRoute - as before.

Proposal to add FilterChain level Hook.
WHY?
Giving three Gateway Listeners, and suppose Envoy has supported com.eg.filter_test HTTP filter and handshaker_test custom handshaker.
listeners:
  - name: http
    protocol: HTTP
    port: 80
  - name: https-foo
    protocol: HTTPS
    hostname: foo.eg.com
    port: 443
    tls: ...
  - name: https-bar
    protocol: HTTPS
    hostname: bar.eg.com
    port: 443
    tls: ...

If I have these goals:

Enable com.eg.filter_test HTTP filter on HCM translated by http Listener.
Enable handshaker_test custom handshaker on FilterChain translated by https-foo Listener.
Enable com.eg.filter_test HTTP filter on HCM translated by https-bar Listener.

After all of xDS translations including xDS Hook, xDS resources should archive my goals.
http Listener will be translated to xDS Listener similar like this:
default_filter_chain:
  filters:
    - http_connection_manager:
        http_filters:

          # Add this http filter via xDS Hook API
          - com.eg.filter_test

          - envoy.filters.http.router

https-foo and https-bar Listeners will be translated to xDS Listener similar like this:
filter_chains:
  - filters:
      - http_connection_manager:
          http_filters:
            - envoy.filters.http.router
    transport_socket:
      downstream_tls_context:
        common_tls_context:

          # Add this handshaker via xDS Hook API
          custom_handshaker: handshaker_test

    filter_chain_match:
      server_names:
        - foo.eg.com

  - filters:
      - http_connection_manager:
          http_filters:

            ## Add this http filter via xDS Hook API
            - com.eg.filter_test

            - envoy.filters.http.router
    transport_socket:
      downstream_tls_context:
        common_tls_context
    filter_chain_match:
      server_names:
        - bar.eg.com

In EG, HTTP Listener is translated to default_filter_chain of xDS Listener, HTTPS Listeners are translated to distinct FilterChain in filter_chains of xDS Listener. Each Gateway Listener corresponds to single FilterChain in xDS Listener.
So if I want to goals above, context indicating which FilterChain will be modified in the xDS Listener should be passed to extension server implements HTTPListener Hook.
Another way is to support FilterChain Hook, after FilterChain is translated from Gateway Listener, EG finds Policies attaching to this Gateway Listener and pass it to extension server.

Seems my last comment is not much relevant to this issue about how to pass context to extension server.
To prevent people involved in feeling confused. I will open new issue to describe my concern about how to locate specific Gateway Listener in xDS Listener.

hey @liorokman

+1 on the approach of using targetRef / targetRefs within the extension resource to be able to derive a mapping between Extension Resource and (Gateway API) Gateway resource
-1 on Envoy Gateway managing status of the Extension Resource, it has no way to knowing what good or bad or partial states looks like.

apiVersion: example.myextension.io/v1
kind: LuaScript
metadata:
   name: my-second-lua-script
spec:
   targetRefs:
   -  group: gateway.networking.k8s.io
      kind: Gateway
      name: first-gateway
   lua: # some other lua script

I like the approach @liorokman suggested above, my only open question is what do the targets mean behind the scenes?
Does kind: Gateway mean that Envoy Gateway will send over the context for this resource to all hooks for any resource relevant to that Gateway (listener down to all the routes for that Gateway), or does it correspond to sending context for only a specific hook like Gateway->ListenerHook?
For example, let's say that my resource MyCustomResource is targeting a Gateway but the kind of xDS config it produces is only relevant at the Route/VirtualHost level.
Right now, we have extension hooks at:

Listener (HTTP)
Virtual Host
Route
Post Modify (chance to modify/inject/remove clusters and secrets at the last moment)

What if we introduce at some point in the future a hook at the Filter Chains level (or really anywhere else)?
Do we need some bit of config somewhere to specify that relationship (like in the extensionManager field), or do we have enough config from the targetRef(s) to do it implicitly?

my only open question is what do the targets mean behind the scenes?

For now, I think we should only target the Listener hook, which means exclusively Gateway CRD instances. Since it's trivial, also support the SectionName in the targeting coordinates - these map to specific listeners.
There's already a different way to provide context resources to the extension server for the routes hook.
A future improvement might be to also allow targeting BackendRef resources, and send the resource instances as context to the virtual host hook - but I don't want to handle this in the current implementation.

What if we introduce at some point in the future a hook at the Filter Chains level (or really anywhere else)?
Do we need some bit of config somewhere to specify that relationship (like in the extensionManager field), or do we have enough config from the targetRef(s) to do it implicitly?

As was noted earlier in the thread, it's not trivial to create a policy that targets an Envoy Proxy configuration section. There's no Gateway-API resource that is synonymous with an xDS filter-chain. It would be very difficult to use the Gateway-API policy attachment mechanism to correctly associate CRD instances with an xDS concept.
If EG ever implements a hook for filter chains, then attaching context to it would need to be done with something along the lines of the way that envoy patches work - associating the context document with the xDS configuration name. That's definitely interesting, but I would not want to do this in the context of this issue.

-1 on Envoy Gateway managing status of the Extension Resource, it has no way to knowing what good or bad or partial states looks like.

While EG can't know what good or bad or partial functional states look like, it can and does know if a specific policy instance was picked up at all and to which Gateway it was attached. At least this information should be updated in the status.
As far as EG is concerned, a policy of this sort is Accepted if the targetRef (or refs) point to something that exists.
we've learnt the hard way in EG of not dealing with target not found cases, and simply ignoring them, more in https://github.com/envoyproxy/gateway/issues/2520

we've learnt the hard way in EG of not dealing with target not found cases, and simply ignoring them, more in #2520

In this case, then how about EG not touching the policy object's status and instead adding a condition to the object being targeted to specify that it was affected?
As described in GEP-2648.

we've learnt the hard way in EG of not dealing with target not found cases, and simply ignoring them

if we start supporting selector based targets, then the status write may explode very easily

I think it's important to have some sort of feedback for the user creating a policy object so that it's at least possible to know that the policy was picked up.
This translates to the following:

If the policy resource was correctly associated with a Gateway, update the policy resource's status section as described in the PolicyStatus structure to be Accepted: true.
In all other cases (e.g. "target not found", "invalid policy resource", ...), the policy resource is not touched.


Fix unknown-prop error

Just delete customProps.onChangeEvent;.
Also updated the package.json version and included the build files. Not sure if that's preferred or not.

All good.  Thanks!  I've published this updated version.


fix relational operators for Index and subtypes

[x] Closes #265
[x] Tests added:

test_indexes.py: test_index_relops.py
test_timefuncs.py:test_types_series_comparisons  (added tests to existing function)

Thanks @Dr-Irv


CLLE language server output issue: "Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')"

Hello, I get this error while editing a clle IFS source file.
[Error - 2:36:37 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:36:38 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:36:39 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:36:44 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:36:46 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:37:02 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:37:05 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:37:13 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:37:13 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:37:13 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:37:14 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:37:14 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:37:14 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603
[Error - 2:37:14 PM] Request textDocument/completion failed.
Message: Request textDocument/completion failed with message: Cannot read properties of undefined (reading 'map')
Code: -32603

Context
Version

Code for IBM i version
2.1.0

Visual Studio Code version
1.81.1

Operating System
win32_x64

Active extensions
CL (vscode-clle): 1.1.1
COBOL (cobol): 9.7.23
Code Coverage for IBM i (code-coverage-ibmi): 0.1.7
Code for IBM i Walkthroughs (vscode-ibmi-walkthroughs): 0.3.1
Db2 for IBM i (vscode-db2i): 0.4.0
Emmet (emmet): 1.0.0
Error Lens (errorlens): 3.13.0
Git (git): 1.0.0
Git Base (git-base): 1.0.0
GitHub (github): 0.0.1
GitHub Authentication (github-authentication): 0.0.2
IBM i Notebooks (vscode-ibmi-notebooks): 0.0.6
JSON Language Features (json-language-features): 1.0.0
Merge Conflict (merge-conflict): 1.0.0
Microsoft Account (microsoft-authentication): 0.0.1
Node Debug Auto-attach (debug-auto-launch): 1.0.0
Overtype (overtype): 0.5.0
TODO Highlight (vscode-todo-highlight): 1.0.5
TypeScript and JavaScript Language Features (typescript-language-features): 1.0.0
WSL: Recommender (remote-wsl-recommender): 0.0.19

Remote system

Setting
Value

IBM i OS
V7R5M0

Tech Refresh
n/a

CCSID
297

SQL
Enabled

Source dates
Disabled

Enabled features

/QOpenSys/pkgs/bin
/usr/bin
/QSYS.lib/DIMARCOB.lib
/QSYS.LIB
/QIBM/ProdData/IBMiDebugService/bin

bash
attr
GENCMDXML.PGM
QZDFMDB2.PGM
startDebugService.sh

chsh
iconv
GETNEWLIBL.PGM

git
setccsid

grep

ls

md5sum

sort

stat

tar

tn5250

Shell env
BUILDLIB=DIMARCO1
CURLIB=DIMARCO1
HOME=/home/DIMARCO
LIBLS=DIMARCOB GAMES400 DIMARCO2 QTEMP QGPL
LOGIN=dimarco
LOGNAME=dimarco
MAIL=/var/spool/mail/dimarco
OLDPWD=/home/DIMARCO
PASE_USRGRP_LIMITED=N
PATH=/QOpenSys/usr/bin:/usr/ccs/bin:/QOpenSys/usr/bin/X11:/usr/sbin:.:/usr/bin
PWD=/home/DIMARCO
SHELL=/QOpenSys/pkgs/bin/bash
SHLVL=1
SSH_CLIENT=<IP_ADDRESS> 36799 2222
SSH_CONNECTION=<IP_ADDRESS> 36799 <IP_ADDRESS> 2222
TZ=<UTC>0
USER=dimarco
USERNAME=DIMARCO
_=/QOpenSys/usr/bin/env

Variants
{
  "american": "#@$",
  "local": "£à$"
}

Errors
[
  {
    "command": "/usr/bin/attr \"/tmp/S         \" CCSID",
    "code": 1,
    "stderr": "attr: 001-2248 Error found getting attributes for file /tmp/S         .  No such path or directory.",
    "cwd": "/home/DIMARCO"
  },
  {
    "command": "/usr/bin/attr \"/tmp/D         \" CCSID",
    "code": 1,
    "stderr": "attr: 001-2248 Error found getting attributes for file /tmp/D         .  No such path or directory.",
    "cwd": "/home/DIMARCO"
  },
  {
    "command": "/usr/bin/attr \"/tmp/W         \" CCSID",
    "code": 1,
    "stderr": "attr: 001-2248 Error found getting attributes for file /tmp/W         .  No such path or directory.",
    "cwd": "/home/DIMARCO"
  }
]

@MarcoDeSenas Any chance you can share the source with us that was causing the issue?

@worksofliam
Just got one when typing dmpclpgm in the source below.
/--------------------------------------------------------------------------/
/*                                                                          /
/ Validity checker program for OBJCRT command.                             /
/ /
/ Dates: 2023/08/22 Creation                                               /
/ /
/--------------------------------------------------------------------------*/
PGM PARM(&TYPE &OBJECT &SOURCE)
DCL VAR(&TYPE) TYPE(*CHAR) LEN(7)
DCL VAR(&OBJECT) TYPE(*CHAR) LEN(10)
DCL VAR(&SOURCE) TYPE(*CHAR) LEN(512)
DCL VAR(&PARAM1) TYPE(*CHAR) LEN(10) VALUE('TYPE')
DCL VAR(&PARAM2) TYPE(*CHAR) LEN(10) VALUE('OBJECT')
DCL VAR(&PARAM3) TYPE(*CHAR) LEN(10) VALUE('SOURCE')
INCLUDE SRCSTMF('../../common/includes/inc_variables_declare.clle')
/--------------------------------------------------------------------------/
/*                                                                          /
/ We cannot include the standard error handling routine because system     /
/ programs which run the validity checker expect only CPF0002 escape       /
/ when they call it.                                                       /
/ So, if an unexpected error occurs we handle it just like if it was an    /
/ error from one of the checks. And a specific error handling routine      /
/ exists for validity checker programs.                                    /
/ /
/--------------------------------------------------------------------------*/
INCLUDE +
SRCSTMF('../../common/includes/inc_errorhandling_forchecker_declare.clle')
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
/--------------------------------------------------------------------------/
/*                                                                          /
/ Some initializations...                                                  /
/ /
/--------------------------------------------------------------------------*/
INCLUDE SRCSTMF('../../common/includes/inc_variables_init.clle')
CHGVAR VAR(&ERROR) VALUE(&FALSE)
CHGVAR VAR(&ERRORPARAM) VALUE(&FALSE)
/--------------------------------------------------------------------------/
/*                                                                          /
/ Checkings are the following:                                             /
/ /
/ TYPE must be *QMQRY, *QMFORM, *DSPF or PRTF                             /
/ OBJECT must not be empty.                                                /
/ SOURCE must not be empty.                                                /
/ /
/--------------------------------------------------------------------------/
IF COND(&TYPE *NE '*QMQRY' *AND &TYPE *NE '*QMFORM' +
*AND &TYPE *NE '*DSPF' *AND &TYPE *NE '*PRTF') +
THEN(DO)
CHGVAR VAR(&ERRORPARAM) VALUE(&TRUE)
CHGVAR VAR(&MSGDTA) VALUE('0000')
CHGVAR VAR(%SST(&MSGDTA 5 10)) VALUE(&PARAM1)
CHGVAR VAR(%SST(&MSGDTA 15 10)) VALUE(&TYPE)
SNDPGMMSG MSGID(CPD0084) MSGF(QCPFMSG) MSGTYPE(*DIAG) MSGDTA(&MSGDTA)
ENDDO
IF COND(&OBJECT *EQ &BLANK) THEN(DO)
CHGVAR VAR(&ERRORPARAM) VALUE(&TRUE)
CHGVAR VAR(&MSGDTA) VALUE('0000')
CHGVAR VAR(&MSGDTA) VALUE(&MSGDTA *TCAT &PARAM2)
SNDPGMMSG MSGID(CPD0071) MSGF(QCPFMSG) MSGTYPE(*DIAG) MSGDTA(&MSGDTA)
ENDDO
IF COND(&SOURCE EQ &BLANK) THEN(DO)
CHGVAR VAR(&ERRORPARAM) VALUE(&TRUE)
CHGVAR VAR(&MSGDTA) VALUE('0000')
CHGVAR VAR(&MSGDTA) VALUE(&MSGDTA TCAT &PARAM3)
SNDPGMMSG MSGID(CPD0071) MSGF(QCPFMSG) MSGTYPE(DIAG) MSGDTA(&MSGDTA)
ENDDO
dmpclpgm
/--------------------------------------------------------------------------/
/ /
/ Error hangling.                                                          /
/ /
/--------------------------------------------------------------------------*/
INCLUDE +
SRCSTMF('../../common/includes/inc_errorhandling_forchecker_routine.clle')
ENDPGM

@MarcoDeSenas Thanks, I've found the issue. It's due to the command having no parameters! A fix will be out today.

This is fixed in vscode-clle 1.1.2. For the future, CL issues go in the vscode-clle repo.


stm32: Merge chip flash memory bank regions

Merge chip flash memory bank regions
The script used for generating all the chip definitions for the stm32 port doesn't merge some regions of flash memory belonging to the same bank. Take this example from a chip definition file in embassy-rs/stm32-data-generated. These regions have to be merged into a single MemoryRegion. This patch fixes this issue.
"memory": [
    {
      "name": "BANK_1_REGION_1",         <<<<<<<<<HERE
      "kind": "flash",
      "address": 134217728,
      "size": 65536,
      "settings": {
        "erase_size": 16384,
        "write_size": 4,
        "erase_value": 255
      }
    },
    {
      "name": "BANK_1_REGION_2",        <<<<<<<<<HERE
      "kind": "flash",
      "address": 134283264,
      "size": 65536,
      "settings": {
        "erase_size": 65536,
        "write_size": 4,
        "erase_value": 255
      }
    },
    {
      "name": "BANK_1_REGION_3",        <<<<<<<<<HERE
      "kind": "flash",
      "address": 134348800,
      "size": 393216,
      "settings": {
        "erase_size": 131072,
        "write_size": 4,
        "erase_value": 255
      }
    },
    {
      "name": "CCMRAM",
      "kind": "ram",
      "address": 268435456,
      "size": 65536
    },
    {
      "name": "SRAM",
      "kind": "ram",
      "address": 536870912,
      "size": 114688
    },
    {
      "name": "SRAM2",
      "kind": "ram",
      "address": 536985600,
      "size": 16384
    }
  ],

I would rather have this merged after #259 because they conflict and merging this afterwards would make it clearer what changes belonged to this patch.


Dropdown has been removed

Fixes: #69

@Amit-Vikram-Singh-07 You need to again push the repo to your fork repo.

I guess , now my forked repo is synced to the base repo

please rephrase the issue by considering the react js technology and if you didn't joined onboarding group please do join
Developers needs to onboard to opensource community for easy information flow along with admins, please join with this link Curious Developers Community - Hacktoberfest

@thecuriousteam  Please review my #69 PR


Greatly relax dependencies for CLI

Motivation
The package is currently really hard to install in environments with other packages. The pins are too strict and use old versions that are no longer supported.
See:
https://github.com/chanzuckerberg/single-cell-curation/blob/b680cc775c5bae53c73a1a64ee21a659dea102ec/cellxgene_schema_cli/requirements.txt
Definition of Done
Please unpin as many packages as possible and reasonable. Please also ensure that the package still works with the newer version. There may be issues with Pandas.
Tasks
Detail the specific tasks that can be used to accomplish the desired changes.
If detailed steps cannot be provided at this time, please file a Tech Proposal instead.

[ ] Unpin dependencies one by one in https://github.com/chanzuckerberg/single-cell-curation/blob/b680cc775c5bae53c73a1a64ee21a659dea102ec/cellxgene_schema_cli/requirements.txt#L1
[ ] Test the package.

We generally recommend the use of venv or pipx. The CLI is primarily for use by our curators and our ingestion pipeline which accounts for the strictness.  For example we currently only accept anndata 0.8.0 datasets per the schema.
Can you tell me more about your use of the CLI?

We subclassed your Validator and implemented some of our own checks.

implemented some of our own checks.

Can you share more details?

It's a private repository. Nevertheless, we just wanted a quick and dirty Validator that checks whether specific columns are present and for those columns we only wanted to allow specific terms.
It's nothing complex.

I'm glad that you were able to reuse the code.

So you're not planning to relax the dependencies?

That is correct per me comments above.