Send sample Hepatitis-C message to ReportStream

Why should we do this?
We need to ensure that LAC can receive and use Hepatitis C test results for our pilot to be successful.
Action requested
Work with RS to send a sample Hepatitis C message (FHIR format) to CA and LAC. We should send both positive and negative, as there may be different requirements for each.
You can do this from our test environment. They may be able to do this for themselves actually, but someone needs to work with them in case they have any questions or need help setting up an Hepatitis C device. We might also need to turn on the single-entry Syphilis feature flag for the environment.
Acceptance criteria

ReportStream receives and routes Hepatitis C test results (positive and negative)
CA can receive positive and negative Hepatitis C messages and route to LAC
LAC can receive and view positive and negative sample Hepatitis C test result with all required fields
Any data or format corrections noted by CA / RS / LAC are put into tickets
We should be testing both the single entry and bulk result upload flows
add syphilis device to test (ensure test ordered loinc long name and test performed loinc long name fields are also filled out)

Additional context
CA has provided us some addresses to use to ensure test events get routed to the correct destination. The addresses should be for the patient.
For CalREDIE: 1616 Capitol Mall, Sacramento, CA  95814
For LA County: 313 North Figueroa Street, Los Angeles, CA 90012

See #7432 for syphilis equivalent
See #7425 for hep C device to add

Slack communication w/ RS here

Looks good on RS's side ✅


Questions about default config

Hi, I would like to know the thinking behind setting AllCops/DisabledByDefult to true here: https://github.com/github/rubocop-rails-accessibility/blob/main/config/default.yml#L4-L5
Since this setting will get merged and override the rubocop default: https://github.com/rubocop/rubocop/blob/master/config/default.yml#L103 I wonder if the gem should turn Enabled flag by cop and not touching AllCops settings?

@tubaxenor thank you for opening up the issue! I think you're correct and it has been removed in #7.
As background, we're doing some cleaning up and re-aligning of this repository and github/rubocop-github and I think that setting got copied over inadvertently (though we're also removing it from rubocop-github too).

Hi @tubaxenor, could you please check if the changes done in the following PR solved the issue you opened, so we can close this issue. Thanks :)

https://github.com/github/rubocop-rails-accessibility/pull/7

Yes, it's fixed, thanks 🙏


Catch Exception & Check Flask view_args

Small PR to

catch MimeRenderException and return 400 response, and
also check flask.request.view_args for override_input_key

@martinblech @wojcikstefan

added dependabot config
replace travis python3.2 with 3.8 (tests succeed)

@thomasst @jfinkels @felixonmars @ericfrederich @dbtsai @akuckartz Do any of you have permissions for this repo to merge this PR and release a new version on PyPI? Thanks!

The changes suggested in this PR are now on PyPI as https://pypi.org/project/mimerender-pr36/


New package: SuperLUDIST v0.1.0

Registering package: SuperLUDIST
Repository: https://github.com/Wimmerer/SuperLUDIST.jl
Created by: @Wimmerer
Version: v0.1.0
Commit: 46bbc103a385c38566ed9dfa2c242ec28d0f67d3
Reviewed by: @Wimmerer
Reference: https://github.com/Wimmerer/SuperLUDIST.jl/commit/46bbc103a385c38566ed9dfa2c242ec28d0f67d3#commitcomment-118651960
Description: Distributed Sparse Matrix Factorizations

[noblock] Is the "IST" part of an acronym? Wouldn't SuperLUDist be the more expected name, otherwise?

Packages that wrap external libraries or programs should be named after those libraries or programs.

[noblock] Ok... I think you may have to edit your comment to include [noblock] in order for the automatic merging to continue

[noblock] DIST could still be spelled Dist tho?

MATLAB.jl, ScaLAPACK.jl instead of ScaLAPack.jl, CuTENSOR.jl or even CUSPARSE.jl.
This isn't universally followed of course, Sundials.jl for instance.
But this will be an officially listed project on the SuperLU homepage, matching as much as possible is preferred 🤷♀.

[noblock] Just because other packages have terrible fortran style names doesnt mean you have to...


⚠ GitLab Server has degraded performance

In 33bc89d, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11244 ms

Resolved: GitLab Server performance has improved in 16735ab.


resolvedUrls is null in plugin's configureServer

Describe the bug
Hi, I am developing a plugin for my own use
and found out the resolvedUrls is still null in plugin's configureServer after server restarted, but the printrUrls working fine
Environment:
node: v21.2.0
npm: 9.5.0
this is the little hack that I use to retrieve after server listen

before server restart

after server restart

Reproduction
https://stackblitz.com/edit/vitejs-vite-5chbdo?file=custom-vite-plugin.js
Steps to reproduce

npm run dev
randomly edit the custom-vite-plugins.js, wait for server restart
after server restarted, resolvedUrls is null

System Info
System:
  OS: Linux 5.0 undefined
  CPU: (6) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
  Memory: 0 Bytes / 0 Bytes
  Shell: 1.0 - /bin/jsh
Binaries:
  Node: 18.18.0 - /usr/local/bin/node
  Yarn: 1.22.19 - /usr/local/bin/yarn
  npm: 9.4.2 - /usr/local/bin/npm
  pnpm: 8.10.5 - /usr/local/bin/pnpm
npmPackages:
  vite: ^5.0.8 => 5.0.10

Used Package Manager
pnpm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

It seems that the front and back server instances are inconsistent.
const server = { name: 'server' };
await hook(server);
const newServer = { name: 'newServer' };
newServer.resolvedUrls = {};
Object.assign(server, newServer); // server !== newServer


Extend generic channel tests

Closes #219
Package channel: Adds generic tests for testing funder, adjudicator, and subscription implementation.

After some discussion, marking this as a draft. Planning to resume work on it later.

Closed until this becomes a higher priority again.


Can't authorize last.fm

OS: Ubuntu 64-bit
Version: 4.0.1
Am trying to link GPMDP to last.fm on an Ubuntu PC, and it doesn't seem to be working - specifically, I click the LOG IN TO LAST.FM link, the text changes to "Last.fm Status: Authorization in progress" and then nothing happens. No popup window like I've seen on previous versions.
Can anyone else confirm if they're seeing this issue, or if it's just something screwy happening on my box before I dig too far into debugging it?

@chrismou Version 4.0.2 (released this morning) fixed this issue 👍

Well on top of things, as always :joy:
Cheers dude!


Upd: Small Typos.

I also had some basic questions, but I figured the Gitter might be a better place to deal with it :smile:


Feature Request: create Python bindings for this library

This library seems awesome! Just wanted to throw out the idea of creating Python bindings for it one day for easy integration into scripts.
I understand you probably won't do it, but I just wanted to create this issue as a point of discussion for anyone interested in doing it one day (so ideally, please don't close it even if it's not planned).

There is already: https://pypi.org/project/defity/


JFG-1083: Reduce default max load threads to 500 to avoid OOM

Good :+1:
Minor:
What about using the property to control default maximum number of work threads like it was done in the xml-schema time?
The property: workload.threads.maxcount

With current implementation we must pass this property through many methods, which is not elegant. But, if needed, we can do that.


🐞 [Bug]: The resource filters are not functioning as expected.

What happened?
I've been requested to filter the nodes with dome queries, the queries include the SSD unit, which was 15, and the result returned included the node 11, while the node 11 has around 26 GB, so what is the probe here??
const totalResources =<PHONE_NUMBER>92
const totalResourcesSru =<PHONE_NUMBER>92
const usedResourcesSru =<PHONE_NUMBER>52
const diff = totalResourcesSru - usedResourcesSru
diff / 1024 / 1024 / 1024
26.010093688964844

Could be related to https://github.com/threefoldtech/tfgrid-sdk-ts/issues/2750

which network/s did you face the problem on?
Dev
Twin ID/s
143
Version
No response
Node ID/s
No response
Farm ID/s
No response
Contract ID/s
No response
Relevant log output
N/A

here what i found:

if we considered the node stats as the truth point, it looks the total/used reported capacity in the node response is slimier to its capacity so no problem on the node capacity reporting.
also no problem in the filters, for example. node 11 have total_sru=512110190592 and used_sru=480436551680 so it should have free<PHONE_NUMBER>2 and that is the case https://gridproxy.dev.grid.tf/nodes?free_sru=31673638912 returns node 11
tracing the raised error from zos not enough space left in pools of this type ssd. it is the way zos spliting the ssd to pools so requesting 29gb will not cover the pool check zos.storage.pools

since it is not an issue on the proxy, i opened an issue on zos to investigate further.

https://github.com/threefoldtech/zos/issues/2351


Deploy Website Using GitHub Pages

Setting up GitHub Pages for the repository to make the website accessible to the public. Ensuring that the website is properly deployed and functioning as expected

The website is successfully deployed through GitHub pages


Updated freecodecamp dead links

Updated FreeCodeCamp deadlinks for quicksort, merge sort, bubble sort, insertion sort and selection sort

@AugustasV Good call! Thanks for the PR.

@AugustasV These links also exist in the challenge files themselves (when you click on the resource icon for each algo), I'll replace them there as well before re-deploying. Thanks again!


SessionStorage usage

Hi!
I have an issue how to load data from the session storage. Let say that after login I'm saving some data about user in the browser session, then on page reload I want to first render page on server and then check if I have data in sessionStorage object. If I will add this to componentDidMount() then I have an information that server side render has been discarded. This is because I want to change some layout things, like button label etc. Can I skip this warning or is there a way to make it in a cleaner way?

There is no sessionStorage on the server. I'd recommend using the __CLIENT__ variable with an if statement for when your code is running on the browser. That being said, React might screw at you and tell you that the diff between client and server are not the same.

@mmahalwy Yes, my question was more how to make pure client side promise. Finally I found solution:
@asyncConnect([
  {
    deferred: true, // This solved the problem!
    promise: ({store: {dispatch, getState}}) => {
      return dispatch(loadSessionStorage());
    }
  }
]);


Is the cpp JSON parser officially part of ahk_lib?

Hi thqby,
Is your cpp JSON parser officially part of this repo? If not, do you plan on including it at some point?
https://www.autohotkey.com/boards/viewtopic.php?style=1&f=83&t=100602
I've been using it for a year and it has been very reliable and fast!
Just wondering why it's not included. JSON.ahk is also great, but as your testing shows, is almost 10 times slower on stringifying operations.
Thanks,

cppJSON is a part of ahk_h, which is not required for the ahk_h I usually use. Additionally, ahk v2 and v2.1 require different dlls.

cppJSON is a part of ahk_h, which is not required for the ahk_h I usually use. Additionally, ahk v2 and v2.1 require different dlls.

Thanks for the explanation!


Add Icon component

Adds Icon component per spec.

Add <Icon />
Add support for component tokens

we could probably also remove the Placeholder component unless we need it for a bit longer


 is not working for autogenerated s

In lines 277-278 of the file DHARMA_CritEdCandrakirana.xml, two witness undergo <lacunaStart>. in the apparatus entries that follow, their sigla are not correctly displayed. See screenshot:

the two "lac. J." items should be differentiated by 1 and 3 in subscript, as defined in the teiHeader on the <abbr> for #msja and #msjc.

I see that the ver first apparatus entry generated by the two <lacunaStart>s shows the sigla correctly:

It will work now. Note that the code might need up to 24 hours to be updated depending on the activity on the servers

Done.


Android designer not rendering properly

Please see the screenshot. It says it all.

Because of this problem, I am having problems designing the UI

Sorry that the Xamarin.Android designer is having problems rendering. On thing you can try is to try a Rebuild All, and the look at the build log. Hopefully there will be an error message that explains exactly what is causing the designer errors.

Please visit the Visual Studio Developer Community and for support with the Xamarin.Android designer.


Prevent memory exhaustion

This cuts the data streams when the heap runs low on memory. In that
case a warning will be emitted.
Fixes: #147
This is still WIP as I have to find a good test case to validate this against (that's why the CI fails as well). I am not sure if emitting the warning as is will be enough either. @mcollina @AlanSl would you be so kind and have a look?

Re. Test case, you could try adapting this from Mathias's equivalent logic in Bubbleprof:
https://github.com/nearform/node-clinic-bubbleprof/commit/f3c12b202456c1921106df0b665a3942e52d2bbf#diff-85e8d7aff9e20cde0baad38dd95793dbR306

The implementation is different here. It is a controlling unit that stops the streams instead of having the control in the stream itself. In the test it's tested on the stream itself and not if the event bubbles up to the user. Therefore I can not directly reuse that part without implementing it in a like wise way.

Why is CI failing? It should not fail really as this is just adding code.
I think this approach works.

It fails because the coverage is to low.

Yea you should add the instanbul ignore statements to get it passing. See my style comment also.

How can I verify this works properly?

Running this against a http server and collecting a huge amount of trace events.

I just added a test by mocking the memory check.

PTAL

Nice!


add payment requirements in offer response

Hello @ivanvanderbyl,
Thanks for open sourcing this library.
This PR add payment_requirements to the Offer struct.

Hi @EarvinKayonga thanks for the second contribution, much appreciated. Would you mind adding another test for this?

@ivanvanderbyl, Just added some checks in the deserialization test.
Is that okay for u?

@EarvinKayonga yes, that would be great, just so that we have coverage to ensure future changes don't regress. See the existing tests for how to set this up.

top


Implementing a 'filter' option to choose which 'fields' you wish to validate or to be returned from parsing?

Hi, I've been playing around with this solution in combination with Mongoose and have been loving it so far.
One thing I'm missing though is the ability to choose which fields you either:

... want back after parsing (something similar to how mongoose does it with their fields filter)
... wish to validate (for edge cases when validating certain fields isn't necessary)

Is a way to implement this functionality already by any chance?
Thanks in advance and congrats on creating this awesome package!

You can modify parse and validate methods by extending the schema. For example:
const schema = require('schm')
const omit = require('lodash/omit')

const ignore = (...params) => prevSchema => prevSchema.merge({
  parse(values) {
    return prevSchema.parse(omit(values, prams))
  },
  validate(values) {
    return prevSchema.validate(omit(values, params))
  }
})

const mySchema = schema(
  {
    foo: String,
    bar: String,
  },
  ignore('foo'),
)

Does it work for you?

Aha, I'd already gotten a similar solution working based on lodash/pick 👍
`
import _ from 'lodash';
module.exports = (obj, schema, options = {}) => {
// Defaults
if (typeof options.fields === 'undefined') options.fields = '';
// Parse obj
let _obj = schema.parse(obj);
// # No Filter
if (options.fields === '') return _obj;
// Return cherrypicked props
const requestedKeys = options.fields.split(' ');
_obj = _.pick(_obj, requestedKeys);
return _obj;
};
`
But I didn't know I could simply extend it like this without needing the schm-methods package as well, so this will definitely help me further, thanks!

I'm still a bit confused as to how extension like in the example you provided actually works.
Does this add ignore as a callable method on the schema? (with variable arguments)
In the end result I'm looking for I'd like to be able to define extensions and call them like so:
MySchema.validateWithOptions(obj, { omit: "name.middle" }); // Ignores name.middle in validation
MySchema.parseWithOptions(obj, { fields: "name.first name.last foo bar" }); // Cherrypick fields

Is this something that's possible with your proposed solution?
also;
Can methods defined by 'schm-methods' also reference the schema they're called on itself?
Because if that's the case I could then just pass the helper/util I already wrote as method like so:
const MySchema = schema(
   { ... },
   methods(
      parseWithOptions: (obj, options) => parseWithSchemaUtil(obj, _this_, options),
   )
);

Would that be possible? Or is there another way to add a "plugin" to a schema?

@ThorrStevens
This is the interface of schema:
schema(...schemas)

Passing a literal object to schema is the same as using group (when you pass a literal object, it's passed to group under the hood):
// these are the same
schema({ foo: String })
schema(group({ foo: String }))

The implementation of group is something like this:
const group = params => prevSchema => prevSchema.merge({ params })

The result of prevSchema.merge({ params }) is the schema itself, which is an object with this structure:
{
  params: Object,
  parse: Function,
  validate: Function,
  parsers: Object,
  validators: Object,
  merge: Function,
}

That said, if you want to call MySchema.validateWithOptions you need to add the method to the object above. And you can do that the same way that group added params:
const withValidateWithOptions = prevSchema => prevSchema.merge({
  validateWithOptions(values, options) {
    return validateWithOptions(values, this, options)
  }
})

const mySchema = schema({ ... }, withValidateWithOptions)

mySchema.validateWithOptions({ ... }, options)

To clarify, schm-methods adds methods to the parsed object:
const mySchema = schema(
  { ... },
  methods({
    foo: () => {}
  })
)

const parsed = mySchema.parse({ ... })

parsed.foo()

Maybe docs aren't clear enough. If you find a better way to explain it there I'll be glad to accept a PR. :)


Write a tool to convert an iCE40 .pcf file into a VPR io.place file.

Examples of io.place files;

https://github.com/mithro/symbiflow-arch-defs/blob/4mcmaster/tests/ice40/checker/io.place
https://github.com/mithro/symbiflow-arch-defs/blob/4mcmaster/tests/ice40/iceff/io.place

The process is pretty simple.

Look up the device type.
Convert pin number into X, Y and subblk values.
Convert X / Y coordinates into VPR coordinates (currently just add +1 to each).

This is now done!


docs: Add details for pure Azure assistants

The default .env contains the line ASSISTANTS_API_KEY=user_provided. When pre-configuring Azure OpenAI models, this setting makes it impossible to use assistants due to a missing user provided key. Only by commenting the line out the Azure setup works.
Fixes #2172

This is not the intended way to use Azure Assistants. The alternative baseURL is meant for proxy access to OpenAI's implementation. You will run into errors along the way.
For full support of Azure Assistants, see my comment in your issue:
https://github.com/danny-avila/LibreChat/issues/2172#issuecomment-2016516185


Public documentation about persistence

This PR adds automatically generated documentation about persistence support to our docs.
Everything is generated from the Persistence Catalog on Notion.
A [Python script] builds a JSON file in the data folder basically collecting the available data on Notion.
This JSON file is used to build an overview table that summarizes the state of persistence support for every service (here).

Furthermore, we use Hugo taxonomies to add a persistence tag in every service page (e.g., here).

A click on the tag redirects to the overview of the persistence support.
To implement these tags, we automatically parse all the service pages and add a new entry in the YAML front matter.
The tag is only displayed for the supported services.
Similarly to the API coverage updates, we have a pipeline that periodically checks for changes (things should change in the Notion table).

Great initiative 🚀 More transparency about coverage is always welcomed.
⚠ I think it's important to raise awareness so everyone knows which data is synchronized from Notion into public user-facing documentation.
This is currently not obvious in Notion. It mainly applies to the free text field "Limitations" (which I would expect to be something internal when editing in Notion). It's good to have the PR review process as a "gatekeeper" ✔, but it also needs periodic maintenance reminders.
💡 Small idea: We could add a direct link to these coverage docs overview in the PR preview to facilitate reviewing (e.g., whether the free-text field messes up any formatting). These look predictable (apart from the PR number we probably don't know yet 😬 ): https://localstack-docs-preview-pr-1259.surge.sh/user-guide/state-management/support/

also added @MarcelStranak to add feedback from a Support perspective


merge_csvs() should be working if only one file is specified

At the moment the sanity check crashes, because at least two files need to be specified. I think it would be more convenient if it just continues without merging, when only one file is specified, i.e. return the same file.

Should be fixed, you can now specify

a list of files (same as before)
a list of one file
a string (path to a file)
Options 2 and 3 print a warning, skip the whole UNode execution process (including json-dumping etc.) and return the original input file.

The tests are working and I tested all 3 cases in a minimal working example including one downstream UNode. So it should also work with your files, can anyone confirm? In that case the issue can be closed.

I can confirm, works all fine for me as well, so I'll close it.
Thanks Lukas!


RN 0.29+ Markers broken after re-render

RN 0.29.1 + RNM 0.7.1
    render() {
        return (
            <MapView region={{
                latitude: 37.78825,
                longitude: -122.4324,
                latitudeDelta: 0.0922,
                longitudeDelta: 0.0421,
            }} style={{flex: 1}}>
                <MapView.Marker coordinate={{latitude: 37.78825, longitude: -122.4324}}>
                    <View><Text>marker 1</Text></View>
                    <MapView.Callout>
                        <Text>callout 1</Text>
                    </MapView.Callout>
                </MapView.Marker>
                {
                    this.state && this.state.showMarker2? <MapView.Marker coordinate={{latitude: 37.76825, longitude: -122.4524}}>
                        <View><Text>marker 2</Text></View>
                        <MapView.Callout>
                            <Text>callout 2</Text>
                        </MapView.Callout>
                    </MapView.Marker> : null
                }
                <Text style={{position: 'absolute', top: 10, left: 10}} onPress={() => this.setState({showMarker2: true})}>show marker2</Text>
                {
                    this.state && this.state.showMarker3? <MapView.Marker coordinate={{latitude: 37.76825, longitude: -122.4124}}>
                        <View><Text>marker 3</Text></View>
                        <MapView.Callout>
                            <Text>callout 3</Text>
                        </MapView.Callout>
                    </MapView.Marker> : null
                }
                <Text style={{position: 'absolute', top: 30, left: 10}} onPress={() => this.setState({showMarker3: true})}>show marker3</Text>
            </MapView>
        );
    }

click "show marker2",
click marker2, callout shows.
click "show marker3",
click marker2, callout does not show.
click marker3, callout shows.

I'm not a iOS developer, but I spent hours and found something maybe useful.
https://github.com/facebook/react-native/commit/46c02b6ae58f9be60affe1e2b3f0fc19646fb817
This commit added a didUpdateReactSubviews.
for (UIView *subview in self.reactSubviews) {
    [self addSubview:subview];
 }

AIRMap.addSubview(subview) re-assigns marker view to AIRMap (see screenshot below). I tried to skip addSubview if subview was a marker, then it worked as expected.

I did not test overlays.

Also having this issue.

@zelll could you share your workaround?

Had the same issue (custom marker views, callouts stop working after markers get added). I reproduced the workaround @zelll described.
Open AIRMap.m in XCode and add (override) the addSubview method:
-(void)addSubview:(UIView *)view {
    if (![view isKindOfClass:[AIRMapMarker class]]) {
        [super addSubview:(UIView *)view];
    }
}

I'm not an iOS developer so i can't tell you about potential side effects of this change ...

Trying to clean the repo, please comment or mention me to re-open the issue if is still the case. Thanks.


Auto import

Issue #, if available:
Description of changes:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

This whole thing is utterly awesome 👍


Directionality widget

Split out of https://github.com/flutter/flutter/pull/11709.
cc @abarth @apwilson


entry_id must be a string, otherwise psql will vomit. Fixes #578

Thanks! :construction_worker:

Imagining a vomiting database


Collection click - handle when no workspace selected

Resolve Issue #62

@PrashanthCorp FYI if you put Fixes #62 instead of Resolve Issue #62 in the description of the PR, then Github will automatically close the issue when you merge the PR


[BUG] @Default does not take effect

Information

Version: 6.x
Packages: @tsed/json-mapper

During deserialization, the default value set by @ Default is not applied
Example
import { deserialize } from '@tsed/json-mapper';
import { Default } from '@tsed/schema';

export class Test {
  @Default(0)
  prop: number;
}

const test = deserialize({}, { type: Test });
console.log(test);  // => {}

Acceptance criteria

{ prop: 0 }

This decorator is just for swagger documentation and has no effect on property value.
It’s totally intented.
Correct code:
export class Test {
  @Default(0)
  prop: number = 0
}


Expose validated client for extended grant

Preivously the extended grant function only had access the client credentials in the body, which could be different to the actual authenticated client. This fix exposes the authenticated credentials in req.oauth.client
Should fix #139

LGTM


How to attach additional LSP client?

I want to attach javascript lsp to *.templ files, because .*templ files is a mix of html, go and javascript. It must work alongside already attached LSPs. By default, this is not happening. How to do it?

I want to attach javascript lsp to *.templ files

This is possible but there is no guarantee the javascript language server will work.
You have to add all the filetypes to lspconfig setup function. For example, with ts_ls you would do this.
require('lspconfig').ts_ls.setup({
  filetypes = {
    'javascript',
    'javascriptreact',
    'javascript.jsx',
    'typescript',
    'typescriptreact',
    'typescript.tsx',
    'templ',
  },
})

Thanks for the help!
Yep, I managed to attach ts_ls (which what I wanted)
But it doesn't really work xDDD
Thanks anyway


chore(ci): collect diagnostics in release workflow

What this PR does / why we need it:
Collect diagnostics in the reusable release workflow so we can investigate failing tests.

Why was go.mod updated with no update on go code? Is it because apimachinery get bumped in this PR?

It's because in the meantime (between last PR merged and now) there was an update to k8s libraries. Our updater script keeps them up-to-date and is also run in CI in the verify step. Because of that, I had to run it and commit changes to pass the verify step in CI.


Nav 47 refactor raptor algorithm

Hi @clukas1 and @Brunner246,
A PR for the refactoring of the Raptor algorithm we started together.
Summary:

Rename Raptor components to be more consistent.
Factor out classes according to SRP:

Route scanner
Footpath relaxer
Label postprocessor
Objective class to hold the progress of the Raptor

Extract interfaces for the Raptor algorithm
Remove redundant Same Stop Transfer Generator
Bugfix, where departure time was doubled when starting with location

This PR goes across the project, so avoid starting new branches at the moment. Let's finish the refactoring first. I think it would make sense to discuss the changes in a short meeting.

Eventually we could move the marked stops also into the Objective class?

Very nice work, now I can follow my own code better :)

@clukas1, thanks for the review and feedback!

Although, I don't see any deal breaking issues with this PR, which prevent approval. Some comments to discuss.

Connection - Comparable. I would not implement comparable for connections, I believe comparing them by arrival time does not make any sense, or at least comparisons by departure time, travel time or number of transfers are just as likely.

My rationale behind using Comparable is to enforce a consistent order, rather than relying on potentially non-deterministic or algorithm-specific internals. However, I agree that comparing by arrival time might not be the most logical choice. We could consider alternatives like comparing by departure time, travel time, or number of transfers. But I think enforcing comparable in the interface is good, to ensure those toughts are made.

Raptor / Objective: I like having this objective container for handling query specific attributes. And I agree that the markedStops should be managed by the spawnFromStop method. However, maybe we should rename the Raptor class to Router or RaptorRouter (which implements the RaptorAlgorithm) and the Objective to Request (because in my opinion it's not only a objective container). The idea behind is, that we can accept requests via the interface through the raptor algorithm and keep all constant raptor relevant data in this class, however move all of the request processing to the request class instance (which will only keep data relevant to the request), this could reduce the argument passing around even more. As a result, spawnFromStops would also be moved to Request.

Agree to renaming Raptor to RaptorRouter, see 91b0772.
However I vote against renaming Objective to Request since the Objective is something internal, which is not even used outside of the spawnFromStops method. In naming it, I have borrowed this term from the field of algorithmics. Because the objective (function) should be minimized. In our case, the arrival time and the number of transfers. I think this fits the terminology quite well, but perhaps there is a better term? From my point of view, a Request is something that is sent to the RaptorRouter from outside and answered with a Response object.
I may not fully understand the suggestion to move the spawnFromStops method. But I like the separation of the main loop in the method spawnFromStops and the objective which is optimized. So the main logic of the process is still in the RaptorRaptor router. This allows us to separate the control flow cleanly from the complex details, which are then handled by the RouteScanner, FootpathRelaxer and the Objective.

Impl: I now know why I like having interface names starting with i (or some other convention). Can we rename the raptor Interfaces to RaptorLeg / RaptorConnection and the implementations to Leg/Connection?

Can you further elaborate on this? LegImpl should never be visible outside of the Raptor package. So only ch.naviqore.raptor.Leg should be visible from the outside, which is quite clear that it belongs to the Raptor. The user does not need to know if it is an interface or a concrete class. If I use a class with Impl postfix outside the package, then it triggers a weird feeling. That's why I like it somehow 😄
But you are also right about the Impl postfix, see this artice: https://www.baeldung.com/java-interface-naming-conventions

Another widespread pattern in enterprise Java applications comes from the Hungarian Notation. In this section, we’ll briefly talk about the preceding I and the Impl suffix patterns and why we should avoid them.

The preceding I pattern suggests that any interface name starts with the capital letter I, an abbreviation for Interface. This is more common in C# code, where we don’t have a keyword to differentiate interface implementation from inheritance. However, this wouldn’t be necessary in Java since we can differentiate implementation from inheritance by looking at the keywords implements and extends.

The Impl suffix pattern suggests naming the interface’s implementations instead of the interface itself. Hence, all implementation names end with Impl. This usually appears when we create an interface with a single implementation and we can’t find a name that truly represents its specialization. However, the word Impl doesn’t add anything since the class signature shows it’s implementing something.

Therefore, we must avoid naming interfaces and classes using the I or Impl patterns, for example, UserImpl, IUser, IIdentifiable, and IdentifiableImpl.

We should discuss this in more detail at our meeting on Wednesday.

My rationale behind using Comparable is to enforce a consistent order, rather than relying on potentially non-deterministic or algorithm-specific internals. However, I agree that comparing by arrival time might not be the most logical choice. We could consider alternatives like comparing by departure time, travel time, or number of transfers. But I think enforcing comparable in the interface is good, to ensure those toughts are made.

I would still prefer not to implement it, the problem is that by implementing it, in my opinion it has to be 100% clear why and how it is intended or at least easy to explain. In this case here, I think there are many logical ways to implement it and none over weighs the other, hence I think it's cleaner not to implement it to make it explicit that one has to define how one wants to sort / compare the connections.

Agree to renaming Raptor to RaptorRouter, see 91b0772.

Thanks

However I vote against renaming Objective to Request since the Objective is something internal, which is not even used outside of the spawnFromStops method. In naming it, I have borrowed this term from the field of algorithmics. Because the objective (function) should be minimized. In our case, the arrival time and the number of transfers. I think this fits the terminology quite well, but perhaps there is a better term? From my point of view, a Request is something that is sent to the RaptorRouter from outside and answered with a Response object.

I may not fully understand the suggestion to move the spawnFromStops method. But I like the separation of the main loop in the method spawnFromStops and the objective which is optimized. So the main logic of the process is still in the RaptorRaptor router. This allows us to separate the control flow cleanly from the complex details, which are then handled by the RouteScanner, FootpathRelaxer and the Objective. To implement the range query, we can just reuse the same Objective and spawn from the stops again at the next later departures at the given stops.

I get why you want to name it Objective, however I disagree since the objective is implemented in the algorithm (minimize arrivalTime/maximize departureTime) and can not really be changed by replacing the Objective, except for the TimeType (which by this logic would have to carry the name objective). Therefore, I would name the object containing all the route request specific details something like Request or Query since it will hold all details relevant to the specific request and this is also the reason why I would move spawnFromStops to this object. I regard the RaptorRouter something like a service, that holds all schedule relevant data to query and accept requests. The processing of the request can then be done by a temporary processing instance (Query, Request, or at the moment Objective).

Can you further elaborate on this? LegImpl should never be visible outside of the Raptor package. So only ch.naviqore.raptor.Leg should be visible from the outside, which is quite clear that it belongs to the Raptor. The user does not need to know if it is an interface or a concrete class. If I use a class with Impl postfix outside the package, then it triggers a weird feeling. That's why I like it somehow 😄

I agree, that I wouldn't want to see a Impl postfix outside of the package. But I also get a cold shiver down my back if I see Impl inside the package, so thanks for renaming. The reason I would also like to name the Interfaces RaptorLeg/RaptorConnection instead of Leg/Connection is that we would prevent working with two implementations of Leg/Connection on the service level, resulting in Type Annotations specifying the full definition (e.g. ch.naviqore.raptor.Leg instead of simply RaptorLeg. Java should introduce alias imports, that would also resolve this issue...

@clukas1, thanks for the feedback! I tried to address most of it, feel free to continue. I will not work on the refactoring until our meeting on Wednesday to avoid conflicts.

I get why you want to name it Objective, however I disagree since the objective is implemented in the algorithm (minimize arrivalTime/maximize departureTime) and can not really be changed by replacing the Objective, except for the TimeType (which by this logic would have to carry the name objective). Therefore, I would name the object containing all the route request specific details something like Request or Query since it will hold all details relevant to the specific request and this is also the reason why I would move spawnFromStops to this object. I regard the RaptorRouter something like a service, that holds all schedule relevant data to query and accept requests. The processing of the request can then be done by a temporary processing instance (Query, Request, or at the moment Objective).

I did my best to move the main routing logic from the RaptorRouter to the Query object and encapsulate access to the Labels in the Objective object. I also introduced an internal RaptorData interface for access to the raptor data structures (interface segregation).
Additionally, I have discovered a strange issue in the getBestTime method: https://github.com/naviqore/public-transit-service/blob/92e2ab091ca5ed4d66126e6c5df16a92e303e420/src/main/java/ch/naviqore/raptor/router/Objective.java#L65, where I suspect that we are not updating the global best time when relaxing footpaths. To reproduce the issue, remove the _REMOVE prefix here: https://github.com/naviqore/public-transit-service/blob/92e2ab091ca5ed4d66126e6c5df16a92e303e420/src/main/java/ch/naviqore/raptor/router/Query.java#L189 and run all tests.
My interpretation is that we can remove this method and directly use getBestTime if we track the global best times correctly?

@munterfi some final touches from my side. Good to merge in my opinion.
Summary of changes:

My interpretation is that we can remove this method and directly use getBestTime if we track the global best times correctly?

Actually both methods are needed (one of the reasons I introduced the transfer only test). The problem if you use the comparableBestTime as cut-off value all transfer legs will be removed at the end of the round. While writing this now, I just realized that the best way would have been to make add/subtract the same transfer time to route arrivals/departures instead of subtracting/adding them to transfers. Which would have solved this (improvement for a later issue)... However, I've renamed the methods and added a docstring to clarify when which one should be used in e2ce8f4.

This is exactly the problem that I try to explain, we don't use it, but we should.
We should sort all our returned connections in RaptorAlgorithm / Router, by calling sort before return in the LabelProcessor:
return connections.stream().sorted().toList();
Which will then implicitly call the compareTo required by the Comparable Interface.
If we do this now, most of our tests fail. This is not because the Raptor is not working, but simply due to sorting issues. The problem is that the way we implement the Raptor currently influences the order of the results, which is not very stable. Additionally, if we implement further versions (native or mcRaptor), this instability will cause further issues.
In my opinion, the necessity to sort connections is an essential property. Otherwise, the order is not transparent for the user.

Actually, they are sorted by default by the number of rounds (route trip legs) and arrival/departure time in descending/ascending order. I've reworded the docstring return value in the RaptorAlgorithm interface to be more explicit about this in c17df10

I did my best to move the main routing logic from the RaptorRouter to the Query object and encapsulate access to the Labels in the Objective object (you can rename this if you don't like the name, important for me is that the access to the labels and best times is encapsulated, which makes it a lot easier to track the routing algo in the debugger). Also introduced an internal RaptorData interface for access to the raptor data structures (interface segregation).

As you might have guessed, I disagreed with the Objective name. I've renamed it to StopLabelsAndTimes to be explicit about what it contains. Hope you can also live with that name. Like the RaptorData to end with a positive comment.


Create a UI5 Integration Card that Displays Data from the SAP Gateway Demo System

Tutorials: https://developers.sap.com/tutorials/appstudio-sapui5-integrationcard-create.html
Hi,
In step 2.6 I don't see  the card displays only static data.

thanks

Hi
I moved on to step 3 the application don't displays dynamic data loaded from the SAP Gateway Demo System (ES5).

thanks


[Bugfix] Modify the logic of obtaining image ref when deleting snapshots

In some cases, such as a user-defined label in the upper layer, the snapshot label is not empty, but does not contain
"containerd.io/snapshot/cri.image-ref", the function should continue to execute normally instead of returning an error.
Signed-off-by: zhaoshang<EMAIL_ADDRESS>

Codecov Report
Base: 30.25% // Head: 30.25% // No change to project coverage :thumbsup:

Coverage data is based on head (b3313f4) compared to base (8af7157).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #170   +/-   ##
=======================================
  Coverage   30.25%   30.25%
=======================================
  Files          20       20
  Lines        1626     1626
=======================================
  Hits          492      492
  Misses       1069     1069
  Partials       65       65

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

LGTM


Add timestamps to load test logs

Added timestamps to the load test results so that load can be plotted against time taken as well as numbers of PVs that exist.

/assign @kispaljr @JamesMcDermott @kushnaidu


[PKG-4126] 0.5.2 ❄

s3path 0.5.2 :snowflake:
Destination channel: Snowflake
Links

PKG-4126
Upstream repository
Upstream changelog/diff

Explanation of changes:

Minimal changes from conda-forge

Linter check found the following problems:
ERROR conda.cli.main_run:execute(124): `conda run conda-lint /tmp/abs_9dx0u6hzud/clone` failed. (See above for error)
The following problems have been found:
===== ERRORS =====

clone/recipe/meta.yaml:31: missing_pip_check: For pypi packages, pip check should be present in the test commands
===== Final Report: =====
1 Error and 0 Warnings were found


kconfig: drivers: serial: Remove redundant dependencies

One of these is from sourceing a file within an if SERIAL, and then
adding another depends on SERIAL within it.
if FOO is just shorthand for adding depends on FOO to each item
within the if. There are no "conditional includes" in Kconfig, so
if FOO has no special meaning around a source. Conditional includes
wouldn't be possible, because an if condition could include (directly
or indirectly) forward references to symbols not defined yet.
Tip: When adding a symbol, check its dependencies in the menuconfig
(ninja menuconfig, then / to jump to the symbol). The menuconfig also
shows how the file with the symbol got included, so if you see
duplicated dependencies, it's easy to hunt down where they come from.

Codecov Report

Merging #14214 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #14214   +/-   ##
=======================================
  Coverage   52.68%   52.68%
=======================================
  Files         307      307
  Lines       45473    45473
  Branches    10530    10530
=======================================
  Hits        23956    23956
  Misses      16640    16640
  Partials     4877     4877

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d7ae2a8...fc01895. Read the comment docs.


4D vectors and quaternions

The current size of Variable takes 24 bytes. This is because of RustObject and Result<Box<Variable>, Box<Error>> takes 16 bytes each.
It is possible to reduce the size of Variable to 16 bytes, but there is little performance gain:
24 bytes:
test tests::bench_add    ... bench:  44,400,761 ns/iter (+/- 8,135,966)
test tests::bench_add_n  ... bench:  16,062,670 ns/iter (+/- 3,626,578)
test tests::bench_array  ... bench:  18,056,946 ns/iter (+/- 2,723,787)
test tests::bench_call   ... bench:  16,998,256 ns/iter (+/- 3,153,922)
test tests::bench_len    ... bench:   3,175,400 ns/iter (+/- 165,141)
test tests::bench_main   ... bench:   2,022,940 ns/iter (+/- 205,091)
test tests::bench_n_body ... bench: 212,196,636 ns/iter (+/- 12,960,952)
test tests::bench_object ... bench:  27,209,689 ns/iter (+/- 4,189,969)
test tests::bench_sum    ... bench:   6,710,868 ns/iter (+/- 561,631)

16 bytes:
test tests::bench_add    ... bench:  42,593,998 ns/iter (+/- 6,324,724)
test tests::bench_add_n  ... bench:  15,714,274 ns/iter (+/- 2,906,590)
test tests::bench_array  ... bench:  17,976,067 ns/iter (+/- 2,897,692)
test tests::bench_call   ... bench:  17,438,250 ns/iter (+/- 3,088,261)
test tests::bench_len    ... bench:   3,184,736 ns/iter (+/- 125,076)
test tests::bench_main   ... bench:   1,950,572 ns/iter (+/- 95,575)
test tests::bench_n_body ... bench: 202,664,316 ns/iter (+/- 9,448,252)
test tests::bench_object ... bench:  26,567,412 ns/iter (+/- 3,930,720)
test tests::bench_sum    ... bench:   6,574,368 ns/iter (+/- 404,440)

For the n_body benchmark, there is a 5% improvement by reducing to 16 bytes. This might become greater after doing other optimizations.
However, if we keep 24 bytes, we can pack a [f32; 4] in Variable. This gives some interesting opportunities that might improve performance for game development.
Motivation
4D vectors can be used for physical space-time and homogeneous coordinates. It is very nice to use for 3D programming.
A quaternion is a superset of complex numbers, with 3 complex dimensions instead of 1. They are commonly used to describe 3D rotations.
A matrix can be represented as [vec4; 4] and perform faster transformations because each operation requires less type checking.
Axis notation
Complex numbers are very useful in many algorithms, and in mathematics this is the most commonly used notation:
a + b i

For quaternions, you have i, j, k:
a + b i + c j + d k

The variables a, b, c, d must be scalar numbers. a is the scalar component, and b, c, d are the vector components.
We could use the above notation to represent both complex numbers and quaternions (as quaternions).
However, i, j, k are often used as counters and this might reduce readability. Instead, we could use ei, ej, ek, borrowing from Clifford algebra:
a + b ei + c ej + d ek

For 4D vectors, we could use ex, ey, ez, ew:
a ex + b ey + c ez + d ew

When using number literals, you can type without space between the number and the axis:
1ex + 2ey + 3ez + 4ew

Just like with scientific notation, except the e means an axis instead of exponent. If you want 5*10^-3 along the x axis, you can type:
5e-3ex

You can not use ex and ei in the same expression, to separate 4D vectors from quaternions.
Example:
A point at (4, 3, 0, 0):
fn main() {
    a := 4ex + 3ey
    println(a.x)
}

Complex number 2 + 4ei + 0ej + 0ek:
fn main() {
    a := 2 + 4ei
    println(a) // prints `2 + 4ei`
}

Tuple notation
This returns 4D vector, setting the remaining to 0.
a := (1, 2) // (1, 2, 0, 0)
a := (1, 2, 3) // (1, 2, 3, 0)
a := (1, 2, 3, 4)

These must be numbers.
Dyon is dynamically typed, and therefore uses [1, 2, 3, 4] where Rust would use tuples.
Example:
Change from 4D vector to 4D point in homogeneous coordinates:
fn main() {
    a := (0, 1, 2)
    a.w = 1
}

Swizzling
When using two or more characters after ., e.g. a.yx it returns a 4D vector with values in the specified order.
Example:
fn main() {
    a := (1, 2, 3)
    b := a.zxy
    println(b) // prints `(3, 1, 2)`
}

Indexing
For quaternion:
fn main() {
    q := 0 + 1ei + 2ej + 3k
    for i 4 {
        println(q[i]) // prints 0, 1, 2, 3
    }
}

For 4D vector:
fn main() {
    v := 0ex + 1ey + 2ez + 3ew
    for i 4 {
        println(v[i]) // prints 0, 1, 2, 3
    }
}

Algebra
Common mathematical operators are built directly into the syntax of Dyon.
Addition
Quaternion addition:
c := (1 + 2ei + 3ej + 4ek) + (5 + 6ei + 7ej + 8ek)
println(c) // prints `6 + 8ei + 10ej + 12ek`

4D vector addition:
c := (1, 2, 3, 4) + (5, 6, 7, 8)
println(c) // prints `(6, 8, 10, 12)`

Per-component multiplication
Uses * as for normal numbers.
Quaternions:
a := 1 + 2ei + 3ej + 4ek
b := 5 + 6ei + 7ej + 8ek
c := a * b
println(c) // prints `5 + 12ei + 21ej + 32ek`

4D vectors:
a := (1, 2, 3, 4)
b := (5, 6, 7, 8)
c := a * b
println(c) // prints `(5, 12, 21, 32)`

Norm
The norm is the same for both quaternions and 4D vectors, using | on each side:
a := (1, 2, 3, 4)
length := |a|
println(length)

Dyon does not use | so this works with the meta syntax.
Cross product
The cross product uses × or x.
Ignores the last component for 4D vectors:
a := (1, 2, 3)
b := (4, 5, 6)
c := a × b
println(c) // prints `(_, _, _)`, because the last component is 0

Ignores the scalar component for quaternions:
a := 1ei + 2ej + 3ek
b := 4ei + 5ej + 6ek
c := a × b
println(c) // printlns `_ei + _ej + _ek`, because the scalar component is 0

Dot product
Use · or *. to get the dot product of two 4D vectors:
a := (1, 2, 3)
b := (4, 5, 6)
c := a · b

Scalar multiplication
a := 2 * (3ei + 4ej + 5ek) // quaternion
b := 2 * (3, 4, 5) // 4D vector

Division by scalar
Only allowed on the right side:
a := (1, 2, 3) / 4

Unary -
This is per component and follows same rule as for numbers.
Conjugate
Quaternions use ~ to flip the sign complex dimensions:
a := ~(1+2ei+3ej+4ek)
println(a) // prints `1-2ei-3ej-4ek`

Division by quaternion
Computes the reciprocal of right side and then performs a scalar multiplication with the left side:
a := 1+2ei+3ej+4ek
b := 1 / a
println(a * b) prints `1`

To multiply a quaternion with the reciprocal, use parenthesis (1/q):
c := a * (1/b)

Example: Reciprocal of a quaternion
a := 1+2ei+3ej+4ek
b := ~a / |a|^2
println(a * b) // prints `1`
println(b == 1/a) // prints `true`

Example: Flip y component
a := (1, 2, 3)
a = a - 2*a.y ey
println(a) // prints `(1, -2, 3)`

Here are some mathematical unicode alternatives: 𝒾𝒿𝓀𝓍𝓎𝓏𝓉𝑤

I don't think the axis notation is a good idea now, considering it overlaps quite a bit with addition.
The tuple notation together with swizzle notation makes the order much clearer:
(1, yz v) == (1, y(v), z(v), 0)

The indexing part suggested here is hard to do without adding run-time overhead, so I added a s(v, ind) intrinsic.
Neither is the swizzle notation suggested here easy to do without run-time overhead.
A better swizzle notation is to only allow it when creating a vector or calling a function. This makes it easier to put in other arguments, and write mathematical functions with numbers to get f64 precision.
The quaternion stuff seems like adding a lot more complexity. I want to keep the language small. Could just use vec4 and the scalar/vector representation of quaternions.
Closing since there are no more ideas here to explore.


Support http_proxy env flag

When doing a custom module build I get stopped by the corporate proxy:
fetch http://alpine.gliderlabs.com/alpine/v3.1/main/x86_64/APKINDEX.tar.gz
ERROR: http://alpine.gliderlabs.com/alpine/v3.1/main: IO ERROR
WARNING: Ignoring APKINDEX.104533ab.tar.gz: No such file or directory
I tested pasting the url in a browser and it downloaded. So my guess is that git/mercurial needs the proxy address (only setting http_proxy won't do it). So maybe script so the http_proxy env variable will be copied to git/mercurial settings?

I was able to get around this with build args:
--build-arg=http_proxy=http://
--build-arg=https_proxy=https://


okcoin streaming not reconnecting

Hi,
it would seem that com.xeiam.xchange.okcoin.service.streaming.WebSocketBase should automatically handle reconnects of the websockets.
How is it suggested to  handel certain exceptions such as hostnotfound in the event the connectivity is lost, or if the channel is not alive, nor do those exceptions seem to be bubbled up as call backs to the calling thread, so the main application cannot handel them by resubmitting another thread until connectivity is restored.
Quick simulation is to add a static route to okcoin.com once the streaming service has processed a set of events.
route -n add <IP_ADDRESS>/24 <IP_ADDRESS>
route -n delete <IP_ADDRESS>

Seems like we are getting hit by the gem in the timer class is it has an exeception it stops all further execution.
Javadoc of timer “If any execution of the task encounters an exception, subsequent executions are suppressed.”.
Should we move to ScheduledExecutorService
so we have a future and can resubmit.

Seems like we are getting hit by the gem in the timer class is it has an exeception it stops all further execution.
Javadoc of timer “If any execution of the task encounters an exception, subsequent executions are suppressed.”.
Should we move to ScheduledExecutorService
so we have a future and can resubmit.

With regards to websocketbase in okcoin.service.streaming.
Should all the reconnect and thread submission sit in xchange.core to avoid issues with other markets?

@douggie Let's keep it in the okcoin package for now -- streaming is handled so differently in each xchange implementation that it will take more work to unify / provide common tools.
OkCoin streaming is definitely hacked together, would be good if someone with Netty knowledge improved WebSocketBase a bit, especially making it more robust to exceptions / reconnects as you mentioned.

Sounds like a plan. Get something robust here then refactor the others.
Do not know netty but will have a go at making the current impl a bit more robust

Great :+1:

I think Netty is the way to go in the future as well. A pretty major refactor would be necessary.
@douggie Can you  look into why the TravisCI build is failing?


Refactor completing-read-function rebinding for selectrum-read-file-name

Currently we rebind completing-read-function in the next selectrum-read call but this is a bit cleaner because the handling can be moved into selectrum-read-file-name itself. The binding of completing-read-function gets now reset there to the previous value as soon as possible.
No user visible change so no changelog needed.

Makes sense. That said, it seems like our current scheme with dynamically bound variables is not working out well, given the number of these kinds of fixes that are needed. I wonder if there is some other approach we could try out?

For this particular case I experimented with a buffer local variable first but thought the current approach would be cleaner because it was a bit difficult to cleanly reset completing-read-function to its old value for all possible cases (the variable might have been local before, although it would be certainly uncommon to bind completing-read-function buffer locally). But I think some variables bound by selectrum--save-global-statecould be converted to by default buffer local variables without issues.

Buffer-local to the minibuffer? That seems like a really good idea, actually. Based on a quick test I just did, it seems like the minibuffer is destroyed and recreated each time. So we don't even need to worry about cleanup. What's wrong with (setq-local completing-read-function ...) in the minibuffer?

Buffer-local to the minibuffer? That seems like a really good idea, actually. Based on a quick test I just did, it seems like the minibuffer is destroyed and recreated each time. So we don't even need to worry about cleanup.

Yes, when you exit the minibuffer the local variables are gone, which is nice.

What's wrong with (setq-local completing-read-function ...) in the minibuffer?

In this case it would be to late, because it would need to be set before the minibuffer got invoked.

I understand; that makes sense. In light of this, I think your approach in this pull request is the best that can be done!


Allow custom sorting in clue window

Contributing guidelines

[X] I have read CONTRIBUTING.md
[X] I have read CODE_OF_CONDUCT.md

Module(s)
mini.clue
Description
Think about the best way to allow custom sorting of clue window content.

Hello @echasnovski,
Thanks for creating this feature-request!
I think the current alphabetic sorting is just fine. However, group-items("git", "search") are in the same sorted list as items that directly execute an action("Harpoon UI") .
In LazyVim, when pressing the leader key, items that directly execute an action are added first, sorted alphabetically. Then, the group items are added, also sorted alphabetically.
For me personally, those two "virtual" blocks are easier to scan, as the most important keys will be on top.
Best regards!

I think the current alphabetic sorting is just fine. However, group-items("git", "search") are in the same sorted list as items that directly execute an action("Harpoon UI") .
In LazyVim, when pressing the leader key, items that directly execute an action are added first, sorted alphabetically. Then, the group items are added, also sorted alphabetically. For me personally, those two "virtual" blocks are easier to scan, as the most important keys will be on top.

To me direct alphabetic sorting adds the smallest amount of mental overhead when trying to read clue window content. As groups and non-groups have different highlighting, this seems to be the best compromise here.
But, in order to achieve the sorting you describe (a valid one, I agree), there also needs to be information about that passed into custom sorter function. So not only key and description fields, but also is_group and, possibly, has_postkeys. This makes it more complicated, though :(

After debating this for a while, I don't see that benefits here outweigh increase in complexity (not only implementation, but also documentation of proper API and testing). Sorry @abeldekat.
Closing as not planned.

I understand. Thanks for the consideration!

@echasnovski,
After using the plugin for a while, I am glad you decided not to implement the request.

To me direct alphabetic sorting adds the smallest amount of mental overhead when trying to read clue window content. As groups and non-groups have different highlighting, this seems to be the best compromise here.

Thanks for the plugin!


Publisher Logos: Add and leverage custom REST endpoint

Context

We want to:

Enable all users who can create stories to retrieve all publisher logos in the editor.
This is not possible with the web-stories/v1/settings endpoint, which only works for admins
Allow adding new publisher logos to the list in the editor, regardless of user role.

This PR unblocks further work on #8989, as originally outlined in #9007.
Summary

This PR creates a new /web-stories/v1/publisher-logos REST endpoint for managing publisher logos.
A publisher logo has the following fields:

id
url
title (for alt text)
active (whether it's the current default publisher logo)

The following methods are possible:

GET /web-stories/v1/publisher-logos - retrieve all publisher logo. available for everyone who can create stories.
POST /web-stories/v1/publisher-logos - takes an attachment ID to add a new publisher logo to the list. available for everyone who can create stories.
DELETE /web-stories/v1/publisher-logos/<id> - remove a publisher logo from the list. available for everyone who can create stories.
POST /web-stories/v1/publisher-logos/<id> - allows setting an existing logo as the new default. available for admins only.

This PR updates the dashboard to leverage this new dedicated endpoint as some sort of proof-of-concept, while the main goal is actually unblocking #8989.
Some benefits:

We can potentially open up publisher logo management in the dashboard to non-admins in the future
Avoids multiple HTTP requests (one to retrieve list of publisher logo IDs, one to retrieve the actual attachments to get the URLs)
Makes implementation more platform-agnostic, maintainable, future-proof
Adopting this endpoint in the dashboard validates that it works as expected and meets requirements

Relevant Technical Choices

Custom REST API endpoint to have better control
Moves some of the client-side logic to the server to ensure the list of publisher logos is always valid
Adds a new usePublisherLogosApi hook with a custom reducer to the dashboard to facilitate working with publisher logos.

To-do

N/A
User-facing changes

N/A
Testing Instructions

[ ] This is a non-user-facing change and requires no QA

This PR can be tested by following these steps:

As an admin, verify that managing publisher logos on the dashboard still works as expected (adding, removing, setting as default)

Reviews
Does this PR have a security-related impact?

No
Does this PR change what data or activity we track or use?

No
Does this PR have a legal-related impact?

No
Checklist

[x] This PR addresses an existing issue and I have linked this PR to it in ZenHub
[x] I have tested this code to the best of my abilities
[x] I have verified accessibility to the best of my abilities (docs)
[x] I have verified i18n and l10n (translation, right-to-left layout) to the best of my abilities
[x] This code is covered by automated tests (unit, integration, and/or e2e) to verify it works as intended (docs)
[x] I have added documentation where necessary
[x] I have added a matching Type: XYZ label to the PR

Fixes #9007

Couple of nicpic / improvements to PHP, javascript is looking fine.
Will defer to @BrittanyIRL for javascript review here.

Is it intentional that the default logo is now not moved to the front of the grouping? Personally, I think it's still just as clear.

Good point. I'll update the PHP code to sort them on the server side.


pictures in readme

Hi, I think it would help a lot to have pictures in the README of the various components provided.

@kmagiera Any eta on the new docs? I'm really struggling to understand the basics of this project seemingly because of the lack of proper documentation etc.


wis2box-ui display issue after ingesting CSV data

Hello,
We are currently experiencing issues with displaying observation data in CSV format for three parameters: temperature, humidity, and precipitation. While the conversion of humidity and precipitation parameters to BUFR format is functioning properly on the display interface, we are encountering a specific problem with displaying temperature data, as shown in the attached screenshot. I am also sending you the data-mappings.yml and input-csv files for your review
data-mappings.txt

WIGOS_0-854-0-105-ADCON_2024-14-02T1200.csv

Hi Chems,
I'm not sure I can reproduce the issue as the input csv and the screenshot appear to refer to different stations.
Can provide you the input-data for the station in the screenshot 0-854-1-11NATWC014 ?

Hello Maaike,
Please find attached the CSV file for the station indicated in the screenshot.
WIGOS_0-854-1-11NATWC0144-BF_AMBSOUYA_2024-2-15T85.csv

Thanks you Chems, I have been able to reproduce the issue and I suspect the issue is in csv2bufr, I will ask my colleague Dave for help

OK, upon closer inspection I found this error:
WARNING - #1#airTemperature: Value (0.7) out of valid range (193.15 - 333.15).; Element set to missing
The aws-template expects temperature to be reported in Kelvin and it will surpress values of the expected range for that variable.

@celgarrai please ensure the input CSV use Kelvin when using 'aws-template' as the temlate for csv2bufr.


[WIP] Move to trait based version Expect

I very much think it's getting nicer than it was internally.
Just wanted to let you @tmpfs know what I meant when I said it will be pretty hard to switch to trait based version.
It's almost finished sync version. But yet there a small ride to do.
And yes if you still interested you can send a PR with a logger improvement.

Thanks for the heads up @zhiburt and good luck with the trait refactor. It was actually quite urgent for me so I forked and made the changes I needed.
Great work with this library!

Seems like I am done;
You can check it out @tmpfs;
Please let me know your thoughts.
And one more
I've used a new compiler feature with async trait.
Which works;
But if we drop-in replace it with async-trait it does not compiles.
Do you have an opinion here?
Take care


Support comments like jsdoc style

Description
I opened an issue on terraform repository about generate documents from comments like jsdoc style (https://github.com/hashicorp/terraform/issues/21135).
Is it this project support for ?

Hi @hendrixroa! I've been able to observe in the ticket above that you already found a solution. Anyways, we do already support document generation from comments, albeit not from jsdoc. I am not sure if jsdoc is widely accepted in the Terraform space, at least I haven't made that observation yet. Want to share your perspective?

My perspective was generating documentation from inline comments, but for not reinvent the wheel I used this https://github.com/Gufran/terraform-docs to generate markdown docs from comments.


Use QtSerialPort (not PySerial) to find ports

This resolves issue #21, and removes a dependency from the package.

:tada:


Minimize the size of near-api-js

Looks like our naj releases contain lots of redundant files like configs and tests. We should exclude them and reduce the size of the library.
Nice to have, but can be a separate issue: examine dependencies deletion and other ways to reduce the size of the library.

@volovyk-s may I help you in this ?

I need to make some additional tests on this issue. I will assign it to myself for now.
Consider this issues: https://github.com/near/near-cli/issues/317
And this one: https://github.com/near/near-cli/issues/762
The second one is only if you have a Ledger hardware wallet and willing to dig deep into C and JS code.

Ok..no problem.
Are you working on issue #317.
No I don't have any ledger hardware right now

@Rishabhraghwendra18  Please, leave a comment in  https://github.com/near/near-cli/issues/317, I can not assign you until then.


Refactor sha3pow to make it more testable

Description of proposed changes:
Refactors things a bit so that we don't require a whole Client, just something that can provide the difficulty.
Practical tips for PR review & merge:

[ ] All GitHub Actions report PASS
[ ] Newly added code/functions have unit tests

[ ] Coverage tools report all newly added lines as covered
[ ] The positive scenario is exercised
[ ] Negative scenarios are exercised, e.g. assert on all possible errors
[ ] Assert on events triggered if applicable
[ ] Assert on changes made to storage if applicable

[ ] Modified behavior/functions - try to make sure above test items are covered
[ ] Integration tests are added if applicable/needed

Codecov Report

Merging #437 (04b0412) into dev (93481ea) will increase coverage by 0.21%.
The diff coverage is 41.66%.

@@            Coverage Diff             @@
##              dev     #437      +/-   ##
==========================================
+ Coverage   73.70%   73.92%   +0.21%
==========================================
  Files          43       43
  Lines        8003     8027      +24
==========================================
+ Hits         5899     5934      +35
+ Misses       2104     2093      -11

Impacted Files
Coverage Δ

sha3pow/src/lib.rs
46.15% <41.66%> (+44.30%)
:arrow_up:

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


python command: added interactive console

Changes to the python command:
-added a interactive console (started when not called with "-c","-m" or file argument)
-changed the way the command-line arguments are handled.
-changed the help-paramters to be more like CPython
-fixed a bug allowing to pass both "-c" and "-d" (it now prints an error-message)
-converted spaces to tabs (i edited this file in pythonista, it is annoying to see a mixture of tabs and spaces)

Thanks for the pull request.


Tooltip Spelling correction

Tool tips from the Backup summary panel need a minor spelling correction :
"The number of OneDrive backups our of the maximum defined"
"The number of Local backups our of the maximum defined"
In both cases "our" should be "out".

Thanks :)

fixed in 2.3.1


Script does not create directories in /var/www

I did a fresh install after today's update on a clean test system (a Lubuntu VM). Selected dump1090-mutability and Web portal. Dump1090 went fine (incl. heywhatsthat range graphs) but web portal failed to install properly. Here are the relevant messages:
Installing homepage...

Placing homepage HTML file in Lighttpd's www root directory...

cp: cannot create regular file ‘/var/www/html/’: Not a directory

Installing map container...

Placing map HTML file in Lighttpd's www root directory...

mkdir: cannot create directory ‘/var/www/html/map’: No such file or directory
cp: cannot create regular file ‘/var/www/html/map/’: No such file or directory

Installing performance graphs...

Backing up and replacing the current collectd.conf file...

Reloading collectd so the new configuration is used...

 * Restarting statistics collection and monitoring daemon collectd                                                                          [ OK ]

Placing performance graph HTML file in Lighttpd's www root directory...

mkdir: cannot create directory ‘/var/www/html/collectd’: No such file or directory
mkdir: cannot create directory ‘/var/www/html/graphs’: No such file or directory
cp: cannot create regular file ‘/var/www/html/graphs/’: No such file or directory

Manually created the html directory:
sudo mkdir /var/www/html
Then re-ran the script and it installed fine this time.

This ties into issue #33 and will be addressed once that issue is addressed.

Lighttpd's document root setting is now used as the path to the Lighttpd document root. This was added in commit 74197645c88f8fcc82d58617077e2f79e681c4bd.


pyproject.toml file erased after UnicodeError on WIndows

bump-my-version version: 0.18.3
Python version: 3.12
Operating System: Windows 10

Description
With the following configuration:
[tool.bumpversion]
current_version = "1.0.0-b3"
parse = """(?x)
    (?P<major>0|[1-9]\\d*)\\.
    (?P<minor>0|[1-9]\\d*)\\.
    (?P<patch>0|[1-9]\\d*)
    (?:
        -                             # dash seperator for pre-release section
        (?P<pre_l>[a-zA-Z-]+)         # pre-release label
        (?P<pre_n>0|[1-9]\\d*)        # pre-release version number
    )?                                # pre-release section is optional
"""
serialize = [
    "{major}.{minor}.{patch}-{pre_l}{pre_n}",
    "{major}.{minor}.{patch}",
]
search = "{current_version}"
replace = "{new_version}"
regex = false
ignore_missing_version = false
tag = true
sign_tags = false
tag_name = "v{new_version}"
tag_message = "Bump version: {current_version} → {new_version}"
allow_dirty = false
commit = true
message = "Bump version: {current_version} → {new_version}"
commit_args = "--no-verify"

[tool.bumpversion.parts.pre_l]
values = ["dev", "a", "b", "rc", "final"]
optional_value = "final"

[[tool.bumpversion.files]]
filename = "bsb_hdf5/__init__.py"

My pyproject.toml file gets erased when I run bump-my-version bump pre_n:
PS C:\Users\pwd06\git\bsb-hdf5> bump-my-version bump pre_n
  Specified version (1.0.0-b3) does not match last tagged version (1.0.0)
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Python312\Scripts\bump-my-version.exe\__main__.py", line 7, in <module>
  File "C:\Python312\Lib\site-packages\click\core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python312\Lib\site-packages\rich_click\rich_command.py", line 126, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "C:\Python312\Lib\site-packages\click\core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python312\Lib\site-packages\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python312\Lib\site-packages\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python312\Lib\site-packages\bumpversion\cli.py", line 326, in bump
    do_bump(version_part, new_version, config, found_config_file, dry_run)
  File "C:\Python312\Lib\site-packages\bumpversion\bump.py", line 101, in do_bump
    update_config_file(config_file, config, version, next_version, ctx, dry_run)
  File "C:\Python312\Lib\site-packages\bumpversion\config\files.py", line 150, in update_config_file
    updater.update_file(current_version, new_version, context, dry_run)
  File "C:\Python312\Lib\site-packages\bumpversion\files.py", line 335, in update_file
    self._update_toml_file(search_for, raw_search_pattern, replace_with, dry_run)
  File "C:\Python312\Lib\site-packages\bumpversion\files.py", line 362, in _update_toml_file
    self.path.write_text(tomlkit.dumps(toml_data))
  File "C:\Python312\Lib\pathlib.py", line 1048, in write_text
    return f.write(data)
           ^^^^^^^^^^^^^
  File "C:\Python312\Lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeEncodeError: 'charmap' codec can't encode character '\u2192' in position 1394: character maps to <undefined>

Using WSL2 the command thinks every file in my git repository is modified, but if I add --allow-dirty then the command is executed and leads to the desired outcome.

@Helveg I may need some help from you on this one, since my primary dev machine is a Mac (even though tests run on Windows). I'd love to write a test for this, but I'm not sure how.
The Unicode right arrows (unicode 2192 →) in the tag_message and message configurations is the source of this (I believe). The problem appears that it is writing the configuration file using Windows encoding (CP-1252) instead of UTF-8.
I'll force the output to use UTF-8, but I'm not sure how to properly test this. Any ideas?

I'm not familiar with the test suite of this repository, but wouldn't it suffice to call do_bump or update_config_file on a valid configuration file that contains that arrow character?


Msal-Angular multi-tenant - switching between tenants yields unexpected results

Core Library
MSAL.js (@azure/msal-browser)
Core Library Version
^3.0.2
Wrapper Library
MSAL Angular (@azure/msal-angular)
Wrapper Library Version
^3.0.2
Public or Confidential Client?
Public
Description
I have an application that allows the user to choose one of four tenants to login to in an 'unguarded' login page (loginComponent).  Once the user chooses a tenant, I use loginRedirect() to sign the user in.  The redirect routes back to the login component, which detects that they're now logged in and re-routes them into a 'guarded' dashboard page, protected by MsalGuard (guardedComponent).  Inside the 'guarded' dashboard page, I have a dropdown available to allow the user to switch between tenants.
This behaviour works at first, but when switching back to a tenant that was already previously logged in, the MsalService's active account's tenantId property doesn't seem to update properly to the new tenantId.
The issue occurs when the user FIRST logs into Tenant A, then in the dashboard switches to Tenant B (this works), but when switching back to Tenant A again, their 'tenantId' property is STILL set to Tenant B.
I have a 'tenantService' which keeps track of the available tenants, by name and ID.  I have an 'authService' which holds the msalService instance, listens on msal events, and updates its state accordingly using angular signals.
Error Message
No response
Msal Logs
No response
MSAL Configuration
{
    auth: {
        clientId: appRegistrationClientId,
        authority: `https://login.microsoftonline.com/${tenantId}/`,
        redirectUri: "/login"
    },
    cache: {
        cacheLocation: BrowserCacheLocation.LocalStorage,
        storeAuthStateInCookie: true
    },
    system: {
        allowNativeBroker: false, // Disables WAM Broker
        loggerOptions: {
            loggerCallback: loggerCallback,
            logLevel: LogLevel.Warning,
            piiLoggingEnabled: false
        }
    }
}

Relevant Code Snippets
public async login(tenantId: string) {
    this.msalService.instance = createMsalInstance(tenantId);
    await this.msalService.initialize();
    this.msalService.loginRedirect();
}

constructor() {
    this.msalInstance.enableAccountStorageEvents();
    this.updateAuthStatus();

    this.msalBroadcastService.msalSubject$
    .pipe(
      filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_SUCCESS),
    )
    .subscribe((result: EventMessage) => {
      const payload = result.payload as AuthenticationResult;
      this.msalInstance.setActiveAccount(payload.account);
      this.updateAuthStatus();
    });

    this.msalBroadcastService.msalSubject$
    .pipe(
      filter((msg: EventMessage) => msg.eventType === EventType.ACCOUNT_ADDED || msg.eventType === EventType.ACCOUNT_REMOVED),
    )
    .subscribe((result: EventMessage) => {
      if (result.eventType === EventType.ACCOUNT_ADDED) {
        const payload = result.payload as AccountInfo;
        this.msalInstance.setActiveAccount(payload);
      }

      this.updateAuthStatus();
    });

    this.msalBroadcastService.inProgress$
    .pipe(
      filter((status: InteractionStatus) => status === InteractionStatus.None)
    )
    .subscribe(() => {
      this.updateAuthStatus();
    });
}

private updateAuthStatus() {
    let activeAccount = this.msalInstance.getActiveAccount();

    if (!activeAccount && this.msalInstance.getAllAccounts().length > 0) {
      activeAccount = this.msalInstance.getAllAccounts()[0];
      this.msalInstance.setActiveAccount(activeAccount);
    }

    const loggedIn = activeAccount ? this.tenantService.AllTenants.some(t => t.id === activeAccount?.tenantId) : false;
    const userName = loggedIn ? activeAccount?.name ?? '' : '';
    const tenantId = loggedIn ? activeAccount?.tenantId ?? '' : '';
    const tenantName = loggedIn ? this.tenantService.getById(tenantId)?.friendlyName ?? '' : '';

    this.setState({
      isLoggedIn: loggedIn,
      userName: userName,
      tenantId: tenantId,
      tenantName: tenantName
    } as AuthServiceState);
}

Reproduction Steps

Log into Tenant A
Observe the active account's "tenantId" is set to Tenant A
Log into Tenant B
Observe the active account's "tenantId" is set to Tenant B
Log back into Tenant A
Observe the active account's "tenantId" is still set to Tenant B

Expected Behavior

Log into Tenant A
Observe the active account's "tenantId" is set to Tenant A
Log into Tenant B
Observe the active account's "tenantId" is set to Tenant B
Log back into Tenant A
EXPECTED the active account's "tenantId" to be set to Tenant A again

Identity Provider
Azure AD / MSA
Browsers Affected (Select all that apply)
Chrome
Regression
No response
Source
Internal (Microsoft)

@HarrisonMulder There is an active PR to fix this on our end, supporting multi-tenanted behavior (some gaps like above). Please track it here: #6396. We expect this to be available in the next MSAL release.

@sameerag thank you, will keep an eye on that!


Dependencies should be verbosely enumerated or automated

We need to either explicitly list the jar file dependencies needed by the transform or possibly bundle them up with the release.  Currently installation requires downloading dependencies manually and copying them into the Kafka libs directory.  This needs to either be documented or automated.  The main dependencies are : avro and confluent avro (which depends on 6 other confluent jars).  For example currently to install this transform I download confluent community edition and copy jars:
wget http://packages.confluent.io/archive/7.1/confluent-community-7.1.1.zip
unzip -d /opt/confluent confluent-community-7.1.1.zip
cd /opt/confluent
mv confluent-7.1.1 7.1.1
cp /opt/confluent/7.1.1/share/java/confluent-common/common-utils-7.1.1.jar /opt/kafka/libs/
cp /opt/confluent/7.1.1/share/java/confluent-common/common-config-7.1.1.jar /opt/kafka/libs/
cp /opt/confluent/7.1.1/share/java/kafka-serde-tools/kafka-avro-serializer-7.1.1.jar /opt/kafka/libs/
cp /opt/confluent/7.1.1/share/java/kafka-serde-tools/kafka-connect-avro-data-7.1.1.jar /opt/kafka/libs
cp /opt/confluent/7.1.1/share/java/kafka-serde-tools/kafka-connect-avro-converter-7.1.1.jar /opt/kafka/libs
cp /opt/confluent/7.1.1/share/java/kafka-serde-tools/kafka-schema-serializer-7.1.1.jar /opt/kafka/libs
cp /opt/confluent/7.1.1/share/java/kafka-serde-tools/kafka-schema-registry-client-7.1.1.jar /opt/kafka/libs
cp /opt/confluent/7.1.1/share/java/kafka-serde-tools/avro-1.11.0.jar /opt/kafka/libs

README updated, plus java-library-distribution plugin now in use by Gradle build, which automatically accumulates dependencies.

Re-opening because this still isn't working as expected.   First I was under the impression that dependencies could be included with the plugin, but this isn't reliable.  It turns out that shared dependencies (dependencies used by Kafka itself, or other plugins) cause issues if found in the plugin directory as mentioned in the Debezium Dockerfile.  We need to re-visit the README instructions to indicate the cleanest path is to do as mentioned initially and simply copy files from confluent community edition directly into Kafka libs dir. We may want to revisit the distribution plugin configuration to isolate the plugin jar and possibly any direct dependencies not found in Kafka libs.


Error on convert only one file

When you have only one file to convert on folder the app crash.
It's a easy bug to reproduce.

Hi @terasadi, Thank you for your feedback. This is generated by sklearn.model_selection.train_test_split.
ValueError: With n_samples=1, test_size=0.25 and train_size=None, the resulting train set will be empty. Adjust any of the aforementioned parameters.

We will implement train_test_split manually.


[MCLOUD-4910] Escape UC names during data prep

JIRA. This PR aims to get past an issue that occurs when specifying a delta table for training data that has a valid name with hyphens/special characters.
We now escape the table names with backticks.
Testing: test_format_tablename
Manual testing: When submitting fine-tuning runs with custom YAMLs pointing to this branch, the logs indicate that delta tables are read without [INVALID_IDENTIFIER] errors - even when hyphenated.

Thanks! Addressing these comments:

Fixed and verified manually with a custom YAML!
It seems like users cannot provide their own escaped UC paths due to validation checks being performed elsewhere. We will not handle names with backticks/escaped names in general.
The expected delta table name is of the form catalog.schema.tablename. We escape the catalog, schema and tablename with backticks (i.e. we now do catalog.schema.tablename -> `catalog`.`schema`.`tablename`).

Was able to get through data prep with main.streaming.random_large_table.


Accessibility-related HTML isn't whitelisted

It would be very useful to allow accessibility-related HTML to be whitelisted. Specifically:

The <caption> element for tables
The aria-labelledby, aria-label, and aria-describedby attributes.

Allowing these will help improve the accessibility of documents to meet some of the WCAG 2.0 requirements around text-alternatives, information and relationships, and names, roles, and values.

Similar <figure> and <figcaption> would be helpful.

:+1: Please also consider aria-hidden as allowed.

Of course! Sorry to see that this wasn't addressed earlier.

@gjtorikian Does that mean it will be addressed by you now or should I (non-ruby dev) create a PR for it ?

This is now out at 2.8.3.

@gjtorikian Thank you *so much! Your quick response to this is much appreciated.

No worries. I love accessibility.


apiv2(ticdc):  list captures

What problem does this PR solve?

Issue Number: ref #8019
What is changed and how it works?
list capture api v2
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
`None`.

/run-all-tests

/merge

/run-integration-tests
/run-verify-tests

/run-dm-integration-tests

/run-kafka-integration-tests


java.lang.IllegalArgumentException: The initial value must have an associated anchor.

Library information:
compose_version = '1.4.7'
id 'org.jetbrains.kotlin.android' version '1.8.21' apply false

def new_calendar = "2.0.3"
implementation "com.kizitonwose.calendar:compose:$new_calendar"
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2'

Question:
When i sync this library and use this calendar(HorizontalCalendar, WeekCalendar), there is error.
Specifically, after syncing this library to my project, the view structure of the screen with the calendar has changed. In particular, the location of the FAB has changed, and errors occur when you click FAB to perform any function, or when an event occurs by clicking day.
Even if I search for this error by Googling, the only related symptoms are BottomSheet contents, so I register issue.

error
java.lang.IllegalArgumentException: The initial value must have an associated anchor.

Hi, can you please add some repro steps?

here is my project repo
https://github.com/Pond-Lotus/lotus_aos
and this is the recording when i run this app
untitled.zip

actually when i changed the previous other library to this library, the corresponding screen design structure is totally changed, twisted. So, i'm very confused now.

Hi, the provided sample requires login and is in a language I do not understand.

oh its login screen.
The first input is for 'id' and second input is for 'password'
I'll give you my account
id<EMAIL_ADDRESS>pw: whdwnsdk2!

Clicking the button does nothing
https://github.com/kizitonwose/Calendar/assets/15170090/7b9ec5d2-ad3b-49ee-ade2-d4913187270f

I have removed all the calendar code from the project but it is still crashing with the same error so I think the issue is not from the library.
https://github.com/kizitonwose/Calendar/assets/15170090/d690deed-5238-4b03-8224-5ff17869436e

No, since I used this library, the view structure of the calendar screen has been completely distorted, and there has been an issue.
The particular point is the FAB position. After adding this library, the FAB, which should be in its original position, has been slammed down the screen and is out of range of the screen. This is the biggest issue.
Secondly, BottomSheet's Sheet ContentHeight is not applicable. I originally declared 0.dp as the default and used it, but after adding this library, the value for 0.dp became unavailable.

I do not think I can help with this, unfortunately.


[Request] nav brand-logo center option for large screens

I'm trying to make the desktop-size navbar similar to the ones in mobile devices wherein the logo centers automatically. the 'center' class currently available can't seem to do that. Maybe a new 'center-logo' class or something?

It would be great indeed :)

class="center" on brand-logo
Added in 591a8e70c2b9ab7775df3292601dbb595bf7e56e


app.UseStaticFiles(); before  app.UseResponseCaching(); - is it right?

Under Conditions section it says:
"Terminal middleware, such as Static File Middleware, must not process the response prior to the Response Caching Middleware."
In the Configuration you do this:
...
app.UseHttpsRedirection();
app.UseStaticFiles();   // static comes before caching?
app.UseCookiePolicy();
app.UseResponseCaching(); // caching.

Shouldn't UseResponseCaching come before UseStaticFiles - or am I misreading the Conditions?

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

ID: 10cda0f9-e2c7-015d-4fbf-d361f6c67d9f
Version Independent ID: 13154131-c2b6-2c72-fb0e-1d83bca4e21a
Content: Response Caching Middleware in ASP.NET Core
Content Source: aspnetcore/performance/caching/middleware.md
Product: aspnet-core
GitHub Login: @guardrex
Microsoft Alias: riande

The "conditions" are just saying what has to be true in order for the Response Caching Middleware to work. It's not saying that any particular middleware should or shouldn't be allowed to cache, including the Static File Middleware. I think the best thing to do is just remove that example. I'll just make it say what is obviously true ...

Terminal middleware must not process the response prior to the Response Caching Middleware.

... and leave it at that. Thanks for commenting on this.

Okay, I am not sure I get your response correctly - I am unsure if the order matter?
Is this order correct?
app.UseStaticFiles();
app.UseResponseCaching();

Or this one? - or it does not matter?
app.UseResponseCaching();
app.UseStaticFiles();

When a terminal middleware (for example, Static File Middleware) processes a request, it terminates the middleware processing pipeline and no middleware that comes after it will execute.
In order for Response Caching Middleware to work, it must process the request.
There's no "correct" order, per se. It just depends on whether or not you want responses from terminal middleware to be cachable.
Response Caching Middleware after Static File Middleware
If Response Caching Middleware comes after Static File Middleware and Static File Middleware handles a request, Response Caching Middleware won't run (it won't be reached ... the response will have already been sent), and the response can't be cached.
app.UseStaticFiles();
app.UseResponseCaching();

Response Caching Middleware before Static File Middleware
If Response Caching Middleware comes before Static File Middleware and Static File Middleware handles a request, Response Caching Middleware will have already run, and the response can be cached (if all of the other caching conditions are met).
app.UseResponseCaching();
app.UseStaticFiles();

For more info on middleware processing order, see the Middleware topic.

Thanks for clarifying this @guardrex.  This is very helpful and perhaps this info added to the docs would be beneficial for others too.
On a side note, I love what Microsoft teams are doing these days - the docs.microsoft.com are so much better than the old msdn, and ASP.NET Core just rocks due to its simplicity and speed!
Keep up the good work and thanks again for delivering great products :)

Thanks for those kind words.
I'm not too concerned about the ordering remark itself ...

Terminal middleware must not process the response prior to the Response Caching Middleware.

What I am concerned about is that "terminal middleware" is used in the middleware topic but not defined where "short-circuiting" is explained. It should be. Then, this line can link over to that topic to explain what a "terminal middleware" is.
I don't want this to get very specific to Static File Middleware. There are other terminal middlewares, including ones that the developer might create, so the remark should stay generic ... it applies to any terminal (short-circuiting) middleware.
I'll add an update for this on a new PR to improve it further.

That makes very good sense to elaborate more on 'terminal middleware' 👍
Thanks again for responding quickly.


Latest release, Build Error

The latest commits , has build error (on clean install ubuntu 16)
but older commits are ok.
[ 59%] Building CXX object CMakeFiles/btcpool.dir/src/bitcoin/StratumServerBitcoin.cc.o /work/btcpool.btc/src/bitcoin/JobMakerBitcoin.cc: In member function ‘virtual bool JobMakerHandlerBitcoin::initConsumerHandlers(const string&, std::vector<JobMakerConsumerHandler>&)’: /work/btcpool.btc/src/bitcoin/JobMakerBitcoin.cc:91:35: error: converting to ‘std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>’ from initializer list would use explicit constructor ‘constexpr std::tuple<_T1, _T2>::tuple(_U1&&, _U2&&) [with _U1 = const std::__cxx11::basic_string<char>&; _U2 = int; <template-parameter-2-3> = void; _T1 = std::__cxx11::basic_string<char>; _T2 = int]’        {def()->vcashRawGwTopic_, 0}};                                    ^ compilation terminated due to -Wfatal-errors. CMakeFiles/btcpool.dir/build.make:1791: recipe for target 'CMakeFiles/btcpool.dir/src/bitcoin/JobMakerBitcoin.cc.o' failed make[2]: *** [CMakeFiles/btcpool.dir/src/bitcoin/JobMakerBitcoin.cc.o] Error 1 make[2]: *** Waiting for unfinished jobs.... CMakeFiles/Makefile2:956: recipe for target 'CMakeFiles/btcpool.dir/all' failed make[1]: *** [CMakeFiles/btcpool.dir/all] Error 2 Makefile:160: recipe for target 'all' failed make: *** [all] Error 2

The last commit that i can build without error is
32eb021aa8fc47c03dd005b7005e08002f2f14f7

We have used some post-C++14 features (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387) which is not yet supported in GCC 5.3. This is obviously a mistake and we will fix it (we did not discover it as we are using a newer compiler version).

It shall be fixed by 08fa2b86deb4c6c7e0948123b98cdd8be732906d.


Make it easier to create presentation-only .components

In the PMO guide, we create a few components that do not need a view model (or styles really), like this one:

We can either explain in the guide what pieces to remove, or make it easier to generate components that only need a template.

@phillipskevin In my opinion this shouldn't block the donejs 1.0 release. Are you ok with removing this from the 1.0 Epic?

Yes, that's totally fine.

We don't use this particular template in PMO any more. However there are still presentation-only templates. I wonder if we should start to just make .stache template and not create a component. Just an idea.


overhaul musl support

As discussed in Zulip, there are numerous opportunities to simplify the musl support crate (almost everything is actually not arch-specific in musl, so there is a ton of DRY violations).
@workingjubilee observed that we should layer things like musl does, e.g. everything that is common goes in the common part, and then everything that is in the arch/$arch/bits headers goes in arch-specific crates.
I think we should also take this opportunity to finish the time64 migration for 32-bit hosts and assume musl 1.2.x as baseline.

Could you provide the Zulip stream link?

Could you provide the Zulip stream link?

https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/bootstrapping.20on.20s390x.2Fmips.20for.20musl/near/227979341