Migration of keras-team/keras-contrib to tensorflow/addon

Hello all,
Keras-contrib host many good features. We'd like to keep them. Since we're focusing on tensorflow, and will deprecate the multi-backend Keras, we need to think about what will happen to other keras-related projets.
The goal of keras-contrib and tensorflow/addons are very similar, but tensorflow/addons benefits from a better support (read workforce) from google. With many processes already in place to make the maintenance easier.
As such, we'll deprecate keras-contrib. People who would like to keep a feature and are ready to maintain it should do a pull request to tensorflow/addons.
We don't have a timeline yet as of when we get this repository out of github.com/keras-team but it will happen eventually.
If you have any questions concerning the migration or if you need help with it, feel free to comment below.

hi, I would like to be able to do this: "from keras_contrib.layers import CRF", as before.

The CRF is available in tf.addons. See https://github.com/tensorflow/addons/pull/314

Hi, @gabrieldemarmiesse, why doesn't it have a CRF layer implementation in tf.addons.text. The original one has this, as you can see: https://github.com/keras-team/keras-contrib/blob/master/keras_contrib/layers/crf.py

Hi @lingvisa we currently have CRF layer under review:
https://github.com/tensorflow/addons/pull/377/files but as I mentioned in the other thread the under review implementation seems overly complicated due to using ported tf.contrib CRF functions. I've made a note in that PR to consider using keras-contrib version.
Separately,  TF Addons is happy to review any keras-contrib functionality that has proved useful and well tested as it should most likely align with our API formats.  Looking forward to merging a lot of the great functionality of this repo with the ability to write custom TF ops/kernels in our library.

@gabrieldemarmiesse That would be great, if the layer can be added. Thanks.

@lingvisa We would need to find a maintainer for the CRF layer in tf addons to add the layer. I'm too busy with keras to do that at the moment. Hopefully, someone else will volunteer to do it.

@gabrieldemarmiesse Is there a list of features in keras-contrib that should be moved to tensorflow/addons? Can dedicate some time to migrate stuff over the next few weeks

I think the problem is that none of knows exactly which functions/classes are in keras-contrib and which functions/classes are in tensorflow-addons. I didn't have the time to look into it. If we had two lists we could compare easily and then know what to migrate. That's not super fun to do sadly :(

Generated components using the __init__ files of each repo:
TensorFlow Addons:
activations.gelu
activations.hardshrink
activations.lisht
activations.softshrink
activations.sparsemax
activations.tanhshrink
activations.rrelu

image.dense_image_warp
image.interpolate_bilinear
image.euclidean_dist_transform
image.adjust_hsv_in_yiq
image.random_hsv_in_yiq
image.mean_filter2d
image.median_filter2d
image.rotate
image.transform
image.sparse_image_warp
image.interpolate_spline
image.translate
image.connected_components

layers.GeLU
layers.Maxout
layers.GroupNormalization
layers.InstanceNormalization
layers.CorrelationCost
layers.PoincareNormalize
layers.Sparsemax
layers.WeightNormalization

losses.ContrastiveLoss
losses.SigmoidFocalCrossEntropy
losses.LiftedStructLoss
losses.NpairsLoss
losses.NpairsMultilabelLoss
losses.SparsemaxLoss
losses.TripletSemiHardLoss

metrics.CohenKappa
metrics.F1Score
metrics.FBetaScore
metrics.RSquare
metrics.MultiLabelConfusionMatrix

optimizers.ConditionalGradient
optimizers.LazyAdam
optimizers.Lookahead
optimizers.MovingAverage
optimizers.RectifiedAdam
optimizers.AdamW
optimizers.SGDW

rnn.LayerNormLSTMCell
rnn.NASCell

seq2seq.AttentionMechanism
seq2seq.AttentionWrapper
seq2seq.AttentionWrapperState
seq2seq.BahdanauAttention
seq2seq.BahdanauMonotonicAttention
seq2seq.LuongAttention
seq2seq.LuongMonotonicAttention
seq2seq.hardmax
seq2seq.monotonic_attention
seq2seq.safe_cumprod
seq2seq.BasicDecoder
seq2seq.BasicDecoderOutput
seq2seq.BeamSearchDecoder
seq2seq.BeamSearchDecoderOutput
seq2seq.BeamSearchDecoderState
seq2seq.FinalBeamSearchDecoderOutput
seq2seq.gather_tree
seq2seq.gather_tree_from_array
seq2seq.tile_batch
seq2seq.BaseDecoder
seq2seq.Decoder
seq2seq.dynamic_decode
seq2seq.SequenceLoss
seq2seq.sequence_loss
seq2seq.CustomSampler
seq2seq.GreedyEmbeddingSampler
seq2seq.InferenceSampler
seq2seq.SampleEmbeddingSampler
seq2seq.Sampler
seq2seq.ScheduledEmbeddingTrainingSampler
seq2seq.ScheduledOutputTrainingSampler
seq2seq.TrainingSampler

text.crf_binary_score
text.crf_decode
text.crf_decode_backward
text.crf_decode_forward
text.crf_forward
text.crf_log_likelihood
text.crf_log_norm
text.crf_multitag_sequence_score
text.crf_sequence_score
text.crf_unary_score
text.viterbi_decode
text.skip_gram_sample
text.skip_gram_sample_with_text_vocab
text.parse_time

Keras-Contrib
activations.squash

applications.DenseNet
applications.ResNet
applications.ResNet18
applications.ResNet34
applications.ResNet50
applications.ResNet101
applications.ResNet152
applications.WideResidualNetwork
applications.NASNet
applications.NASNetLarge
applications.NASNetMobile

callbacks.SnapshotCallbackBuilder
callbacks.SnapshotModelCheckpoint
callbacks.DeadReluDetector
callbacks.CyclicLR
callbacks.TensorBoardGrouped

contraints.Clip

initializers.ConvolutionAware

layers.PELU
layers.SReLU
layers.Swish
layers.SineReLU
layers.CosineConv2D
layers.CosineConvolution2D
layers.SubPixelUpscaling
layers.CosineDense
layers.CRF
layers.Capsule
layers.InstanceNormalization
layers.GroupNormalization

losses.DSSIMObjective
losses.jaccard_distance
losses.crf_loss
losses.crf_nll

metrics.crf_accuracy
metrics.crf_marginal_accuracy
metrics.crf_viterbi_accuracy

optimizers.FTML
optimizers.Padam
optimizers.Yogi
optimizers.LARS

Thanks a bunch @seanpmorgan, I'll go over each of the items and then make a list with a proposition of what is relevant. Also since there are a lot of classes in keras-contrib that are not relevant anymore (e.g. TensorboardGrouped).

@gabrieldemarmiesse imo, CyclicLR shouldn't be migrated as a callback, but rather as a LearningRateScheduler. Could also be split into different schedulers to avoid the mode argument. What's your opinion on this?

Yup, I agree with the splitting. Seem good.

@seanpmorgan do you want to make a selection? What do we do about features without maintainers?

Probably would be best that we create an issue for each maintained piece so the community can comment. In general though those all look pretty useful so if the maintainers are willing to maintain on TF Addons then I see no reason we can't move them.
For the ones without maintainers maybe we can open an issue to see if there is anyone interested in maintaining provided there is a community need for them

Doesn't it make sense to freeze the main Keras repo and evaluate Keras issue migration and decoupling with TF.keras ticket on TF repore before migrating contrib to add-on?
See also the governante thread at https://github.com/keras-team/governance/issues/2

@bhack I agree that Keras repo needs to decouple where tickets are going... but I'm not sure that's preventing existing functionality in contrib to be migrated? Could you further explain that point?

Here you have in the list on addon side activations.gelu.
It was in addon now It Is entering in Keras but through Tensorflow (TF.keras) PR but we have issue in Keras and refused PR in Keras or in comment suggesting to forward to contrib and so on..
So It Is really a mess and very very confusing for newcomers:
Just as as an example https://github.com/tensorflow/addons/issues/550#issuecomment-551586660

We are still having  tripled bugs with a risk to have fourfold cases:
https://github.com/keras-team/keras/issues/13443
https://github.com/tensorflow/addons/issues/179
https://github.com/tensorflow/tensorflow/issues/24387

@rajveershringi did you solve this problem?

@soumayan unfortunately not.

@rajveershringi did you follow this link?
https://libraries.io/pypi/tf-crf-layer
Here it is mentioned that some versions of tensorflow will not support this

Hi,
I will migrate the SineRelu activation function this week.
Cheers,
Wilder

Will we have again a keras-contrib repo or something similar? /cc @qlzh727 @fchollet

I think tf/addons is probably my preference, to reduce the overhead of management. A lot of component in tf/addons is already based on keras classes like layers. @fchollet, what's your throught?

We need to careful think about this as we also have a new threshold in Addons about accepting new contributions (>50 citatons).
So It Is not anymore "what It Is too experimental will go in addons":
https://github.com/tensorflow/addons/blob/master/CONTRIBUTING.md#requirements-for-new-contributions-to-the-repository
As we highly depend on keras we could have overlaps/duplicates with components that your maintain in the new keras standalone repo or keras-cv/keras-nlp (also if currently they ate just a model garden sub-mirror).
About the custom ops I hope that we could reduce the numbers of custom ops we are maintaing cause they have a quite large maintainership overhead and a restricted HW compatibility.
/cc @seanpmorgan @yarri-oss @thealamkin

hi, any plans to migrate ftml?


Series title obfuscates the chart line

Lightweight Charts™ Version: 4.1.6
Steps/code to reproduce:
Set the title of a right series, with fixRightEdge: true
Actual behavior:
The title for the right series is on top of the line at the default scale
Expected behavior:
The title shouldn't overlap the actual line. Alternatively an option to have the title always be on the left hand side even for a right series
Screenshots:

You could try increasing the rightOffset value on the time scale options so that the chart will leave more space on the right edge.
This value is specified in 'number of bars' (data points) and not a normal length like pixels. So the amount of space that you need to leave is dependent on the zoom level (barSpacing). More details in this answer: https://github.com/tradingview/lightweight-charts/issues/1622#issuecomment-2186508182

Thanks @SlicedSilver - I think I found the issue. If fixRightEdge: true, then the rightOffset isn't obeyed


FOR LOOP

The README doesn't include FOR loop statements.
I tried the one from AQA guide but it gives me an error

Hey sorry about that. I don't have much time at all to implement a for loop like i promised. If you can just stick with while loops for now, that would work, until i get the time to do it.

Ok no problem. Thank you


fix: remove undefined ViewPropTypes references

Platforms affected
Google Chrome on Windows
What does this PR do?
Fix propTypes issues on browsers
What testing has been done on this change?
Launched the app in the Expo Client

If somebody is willing to provide a better solution, flow types should be used instead

Hello, why not?
containerStyle: ViewPropTypes ? ViewPropTypes.style : null,

Hello, why not?
containerStyle: ViewPropTypes ? ViewPropTypes.style : null,

React expects propTypes to be functions:
index.js:1 Warning: Failed prop type: Carousel: prop type `slideStyle` is invalid; it must be a function, usually from the `prop-types` package, but received `object`.

Using null instead of a null-returning function would raise warnings in development mode

Merging this would be very much appreciated. I'd like to avoid any  of the post install hacks. being able to run the same codebase on every mobile platform and also the web is incredibly useful, especially in the development stage.

I was having the same issue as described when running a React Native app on the web. With the changes the slider loads OK; but sliding (in de web variant) only works with the keyboard; not with the mouse. Am I doing something wrong?

Hello, I started getting this error in Expo SDK version 51. When will this PR be merged?

The PR has been open for 3 years now. I'd say this repository is not maintained unfortunately.

thanks for answer . By the way, this PR has also been improved. PR has been waiting for 2 weeks. https://github.com/meliorence/react-native-snap-carousel/pull/1015


Audit and improves the link component.

Fixes #1108

Description
Fixes the issues with the link and it's popover component.
Screenshots
Before

After

Checklist

[ ] ~I have made corresponding changes to the documentation.~
[ ] ~I have updated the types definition of modified exports.~
[x] I have verified the functionality in some of the neeto web-apps.
[ ] ~I have added the necessary label (patch/minor/major - If package publish
is required).~

Reviewers

@praveen-murali-ind  _a please review.

@sreeram-venkitesh _a Could you please check the deployment?

Health check was failing, I've fixed it and redeployed both the NeetoEditor PRs.

@AbhayVAshokan _a please review.


Add non-generic Operation base class

It looks good, but we should touch base with Krzysztof and the Management Plane folks about the name conflicts with their Operation classes.

Sounds good. I've sent them a link to this PR but I'll start a thread.


Implement OCamlDesc for some missing primitive types

Will re-open from another source branch, need to land more changes into main branch of my fork, otherwise they will pollute this PR.


Fix issue #5: Type 'number' is not assignable to type 'string'

Fix the issue #5
Use typescript in index file

Use Typescript in Components
Redesign Fork on Github & Join Discord button


In 1225 - Policy Feature Work

This is is most of the Policy feature work from tickets IN-1225 - IN-1229. There is likely some touch-ups necessary after testing.

Looks good!


No screenshot

is this tested ? @saiy2k  @i5hi

Yes. Tested in my mobile.
Added routes of sensitive screens, which are not be screenshotted/recordede in main.dartL126.
If any more screen is missing, route of that screen can be added in that array.

Just tested. LGTM.


Add files via upload

@billie-jean-droid I am sorry, the domain mymail.tstc.edu is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


UI updated

Updated UI for hacktoberfest tribute

Proposed Changes:-
New UI for the frontend bento styled

@JayShukla8 Please review my PR
Consider My PR under hacktoberfest


Support nested structures

This is a container to group all issues that finish nested structures support:

[x] #225 - repeated fields
[x] #227 - nested non-repeated structures
[ ] #228 - repeated fields in nested structures

old parked issues: #187, #188

Will a MAP be considered a nested structure?  If not, I'll open a request for it.    We need to serialize a string, string dictionary that are customer defined attributes that can change on each entry.

@akatz0813 sorry no, it will be an embedded type as per https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#maps. I've raised #255 however we don't have any estimates when this will be done. Always happy to get help ;)
As a workaround you can always use a json document serialised into a string.

@aloneguid is there a guide or primer to implementing new types? Or even a list of areas that require changes. I believe I can get someone ok my team to contribute.

This is working now, still testing for compatibility with Impala and Spark though.

@aloneguid we are eagerly waiting for nested structure support, is it released or soon to be realeased, please guide. Thanks


Can't use AWS self-hosted machine for _pystats job

While we only added an AWS self-hosted machine and try to run the workflow, _pystats job was stuck and waiting forever for a machine to pick up.
The reason probably is that there is a azure tag in the template of  _pystats.yml. Can we replace this with cloud? https://github.com/faster-cpython/bench_runner/blob/1592e16a6921a6428a7b2812aa2e0245a806342c/bench_runner/templates/_pystats.src.yml#L49

cc @mdboom

Sorry for the delay -- just getting back from vacation.
Yes, this was just a bad choice of tag name, and probably should have been cloud.
For others who see this bug, they will need to add the cloud label to their existing pystats runner following this guide: https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners


Thank you - this works perfectly.

You've made my Christmas!

You're welcome,
Most credits go to the authors of vscode-lldb,
without that plugin, there is no rust debugging


Why pallet-evm requires serde

Question
Hi, I want to ask why from polkadot-v1.0.0 you've added the serde feature here: https://github.com/polkadot-evm/frontier/blob/polkadot-v1.0.0/frame/evm/Cargo.toml#L34
This addition makes internally compile sp-runtime with serde, and the MaybeSerializeDeserialize and MaybeSerialize traits now force always to be Serialize. This means that all types in our project now require to be Serialize when it was not required before. It seems like a big change, and I would want to know the reason behind this.
Compiling pallet-evm removing the above requirement compiles without failures. Could that addition be a typo?
Thanks so much!

https://github.com/polkadot-evm/frontier/blob/18aa99b365d32a1524b4e7591f3797378c11fb0f/frame/evm/src/lib.rs#L622
https://paritytech.github.io/polkadot-sdk/master/frame_support/traits/trait.BuildGenesisConfig.html
Because GenesisConfig needs to be Serialize. And we can use JSON to setup the genesis in the chainspec easily.


Improve airgap workflow

Description

Airgap workflow is currently cumbersome, this is an attempt to improve it
This combines 4 scripts for saving & loading images and policies into one.
Also adding defaults for parameters that can be guessed from other files.
New Workflow:
# Generate list of dependencies required by airgap. Save in file for other commands:
airgap list | tee file.json

# Pull images and policies and save them to archives in current directory:
airgap pull --list file.json

# Push images and policies from created archives to local registry. Run in DRY mode:
airgap push --list file.json --registry=localhost:5123 --dry --insecure

# Helm install charts from local files. Registry is used for recommendedPolicies setup:
airgap install --list file.json --registry <IP_ADDRESS>:5000 --insecure

Just as a heads up, given that it will change the workflow, this PR should be together with one that updates the docs (analogous to https://github.com/kubewarden/docs/pull/150) and one that updates the blogpost (analogous to https://github.com/kubewarden/kubewarden.io/pull/153).

Closing, we will revisit that later as discussed with @kravciak


Use a common gating script for gating host prep

Rather than repeat the preparation of apt sources
and the installation of python/python-yaml in
several locations, we consolidate the necessary
preparation into a common script.
Part of this includes ensuring that we use the
Rackspace apt mirrors. This is a necessary change
specifically for MNAIO tests where they are setup
to use archive.ubuntu.com which is slow and fails
often due to there being more hops to it.
JIRA: RE-1730
(cherry picked from commit c3674b33ec550fa21dc5d248a2bc4f15a70898ab)
Issue: RE-1730

recheck_container_ansible_lint_tox_test

recheck_container_ansible-lint_tox-test
recheck_container_ansible-syntax_tox-test
recheck_container_bashate_tox-test
recheck_container_pep8_tox-test
recheck_container_releasenotes_tox-test


Fix cert check test cases.

The error messages from alexa-verifier were changed in mreinstein/alexa-verifier@cde450b90078b52eb45a5e865f3083d30fa382da causing integration tests to fail.

Good catch! When it's all fixed, I'll merge soon.

Travis-CI isn't picking up the new version, possibly because the .travis.yml file caches the node_modules folder.

I deleted caches and restarted the build, which passed mostly, but not for 0.12. Can you please look at that one?
There's probably a way to lock the dependency for dev purposes only via devDependencies?

I've rebased the PR to resolve the CHANGELOG conflict.
alexa-verifier does not appear to support Node 0.12 any longer (its tests fail when run with 0.12 and the package.json requires node >= 1).

If alexa-verifier doesn't support node v0.12, then this library shouldn't support it as well. I'll make a PR.

Ah I see, I missed a red thing somehow. Mind taking it out of .travis.yml please in a PR?

See #220.


program exits with 137

When trying to use sqlite3 in my application its being terminated with exit code 137.
Build with Jetbrains GoLand
go build -o /Users/**/Library/Caches/JetBrains/GoLand2024.2/tmp/GoLand/___go_build_testsqlite3 testsqlite3 #gosetup
/Users/**/Library/Caches/JetBrains/GoLand2024.2/tmp/GoLand/___go_build_testsqlite3

Process finished with the exit code 137 (interrupted by signal 9:SIGKILL)

Build in terminal
~/tmp/testsqlite3
go build && ./testsqlite3
zsh: killed     ./testsqlite3 Exit code 137

source:
package main

import (
	"database/sql"

	_ "github.com/mattn/go-sqlite3"
)

func main() {
	dbconn, err := sql.Open("sqlite3", "./test.db")
	if err != nil {
		panic(err)
	}
	if err = dbconn.Ping(); err != nil {
		panic(err)
	}
	defer dbconn.Close()
}

Run on MacBook Air
MacOS Version 15.0 Beta

I am also having the same issue:
> go build && ./sqlx
[1]    52826 killed     ./sqlx

But it works fine if I just run using go run main.go.
OS: macOS 15.0 Beta

It's possible that CGO is disabled. Try using CGO_ENABLED=1, e.g., CGO_ENABLED=1 go build && ./sqlx. This worked for us when we would find bins built in github would not work (fail on db.Ping) while our local dev env would.
Mentioned on the sqlite3 readme as well: https://github.com/mattn/go-sqlite3?tab=readme-ov-file#installation

@dabdine This is not the issue, with CGO_ENABLED=0 the program doesn't even compile.
As it was mentioned before go run main.go works fine, it is the compiled version that crashes.
Just fixed it by upgrading the go binary.
This bug is specific to go 1.22.5 possibly other 1.22.* versions.
No issues with 1.23 and 1.22.7
@arikchakma can you confirm ?

Yes, I am using go 1.23 it's working fine now.

@dabdine This is not the issue, with CGO_ENABLED=0 the program doesn't even compile.
As it was mentioned before go run main.go works fine, it is the compiled version that crashes.

Compiles fine here (go 1.22) using exactly what I wrote above, obviously missing the CGO bits that make sqlite work though.
We may have unrelated problems then.

No issues with 1.23 and 1.22.7
Glad you found a solution.


feat(errors): update generated errors based on latest Katapult API schema

Right now the error generation uses the latest Katapult API schema, this is not
ideal as our CI will break sometimes when Katapult is updated.
Tracking a specific version of the Katapult API schema would solve this, but the
API only provides the latest version for a given major version.
We will need to address this at some point soon to avoid annoyance, but right
now it's a "later" problem.

Annoyingly the code generation stuff will cause code coverage failures, as we don't generate tests for it yet.


Option to cause window to automatically scroll to bottom when new output is received

Description of the new feature/enhancement

Add a profileoOption to cause window to automatically scroll to bottom when new output is received
When I am working on ASP.NET with Entity Framework, I have a dotnet watch run pane active.
EF Core is particularly verbose with its stack traces, so often the root error message is so far up the trace that I have to scroll then window up to see it.
Once I've fixed the error and recompiled, it would be great if the pane auto-scrolled back to the bottom so that I can see the output from the current compilation. As it stands at the moment, I have to scroll back down manually each time, which is slow and often I forget and think that I'm looking at a new error when in actual fact I'm still staring at the old one.
Proposed technical implementation details (optional)

I would like to be able to set a flag on panes like this so that they always scroll the most recent output into view.

Alright, well color me surprised. We discussed making this a setting in #2529, and implemented in #6062, also related are #980 and #3863.
Looks like we decided against making this a setting, because

No other terminal emulators had a similar setting
The user can just press a key and leverage the snapOnInput behavior to snap to the bottom
We couldn't find a good way of expressing a setting for this

So I guess now that there's a request for a setting, do we need to re-open that discussion?

Alright, well color me surprised. We discussed making this a setting in #2529, and implemented in #6062, also related are #980 and #3863.
Looks like we decided against making this a setting, because

No other terminal emulators had a similar setting
The user can just press a key and leverage the snapOnInput behavior to snap to the bottom
We couldn't find a good way of expressing a setting for this

So I guess now that there's a request for a setting, do we need to re-open that discussion?

@zadjii-msft Thanks for considering this. I would say that your reason 2 doesn't reflect all the actions that my particular scenario requires as a workaround. I have a multi-monitor setup with this terminal window on a secondary display. So I have to:

Move mouse over to the window & pane.
Click the mouse.
Hit a key.
Alt-Tab back to VS Code.
Move mouse across monitors and back into the VS Code window.

1 & 2 could be done with Alt-Tab, but there is no telling how deep the required window will be in the stack so there is a bit of a visual recognition delay while hunting for the correct image to Tab, Tab, Tab to.

@zadjii-msft Thanks for considering this. I would say that your reason 2 doesn't reflect all the actions that my particular scenario requires as a workaround. I have a multi-monitor setup with this terminal window on a secondary display. So I have to:

Move mouse over to the window & pane.
Click the mouse.
Hit a key.
Alt-Tab back to VS Code.
Move mouse across monitors and back into the VS Code window.

1 & 2 could be done with Alt-Tab, but there is no telling how deep the required window will be in the stack so there is a bit of a visual recognition delay while hunting for the correct image to Tab, Tab, Tab to.

Having recently moved to using Windows Terminal, I'm finding the same issue (that it doesn't play nicely with "dotnet watch", and long stack traces where I need to scroll up to see what failed).

So I guess now that there's a request for a setting, do we need to re-open that discussion?

Has the discussion be re-opened?


What's New Notes April 19 Release

The Link behind Check out the latest version of the release notes should be updated to https://docs.microsoft.com/en-us/business-applications-release-notes/April19/dynamics365-business-central/.

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

ID: 3243448c-df56-cb7d-2e08-9084ca24a330
Version Independent ID: 9e1799ac-14f6-4c70-6032-a9f41cc1d749
Content: What's New in Business Central - Business Central
Content Source: business-central/product-news.md
Service: dynamics365-business-central
GitHub Login: @edupont04
Microsoft Alias: edupont

Hi Daniel,
Good catch! This will be updated in the update on Monday.

Done :-)


Crash with Config

Having problems when starting a fresh server world. I had this issue before, and could resolve it, but this time it does not work, so i would like to know what causes it.
Log: http://pastebin.com/mNZa5e7n

This again... #27, #28, #34, #39 etc.
I have no idea why this happens, but I last time I got report about it, it was fixed by removing liteloader from server.

Ah ok lets see if that fixes it, i think it might be the problem. The last time i removed something else. I report back in some seconds.

I can give you a list of the mods i am currently using, if you know wich one it is that would be good :)

And no it did not fix it, its most likely another client side mod on the server or so. https://docs.google.com/spreadsheets/d/1pl0CRzaulUByRIeLfaWJ0sNTkpkOvxTXr1MWe25BGVA/edit#gid=0

Here the FTP list:

Ok i think i am getting it to work. I report back soon.

Ok i forgot to switch back to Forge 1448, and then it worked. Also i of course removed LiteLoader and some other client mods.


Invite user who is not registered

From a cursory glance, I couldn't find anything in the code that deals with inviting someone who is not already registered to use the site. I just wanted to confirm whether that functionality is not in this package or I just missed it?
Thanks!

You can invite other users who aren't registered to your application yet using this code:
Teamwork::inviteToTeam( $email, $team, function( $invite )
{
    // Send email to user / let them know that they got invited
});

Here's the documentation: https://github.com/mpociot/teamwork#inviting-others


fix job import of project with whitespace

fix job import with a name containing whitespace by properly encode the url

display the HTTP error code in case of the import failed to help debugging

Good job! How did you test that?

I have tested it during a migration of jobs that contains space at my office.  Adding a test is not simple because for the moment, the function ImportJob has no test. I think that the commit is small enough to be checked without adding a test.
What do you think?

I think it's a quite cool contribution, thank you! @mlabouardy would you like to merge this?


Translation of translator

I think we should go with a translation of the word "translator", otherwise it will break with the flow, and it looks awkward with an English word on the page. It's not like we're translating "Facebook" into Ansiktsbok". (Although some people actually call it "Fjesboka"! :)

Makes sense.
In terms of capitalization, I know book titles etc generally only capitalize the first word in Norwegian, whereas newspapers and companies usually have each word of their name capitalized.
What about in this case? Should "oversetter" be capitalized or not? It looks a bit odd to me in lowercase but I'm not sure what the convention would be.

Jeg viste faktisk ikke at aviser og bedrifter bruker store bokstaver!
Titler og bøker bruker ikke det. Så liten bokstav. Se her:
https://no.wikipedia.org/wiki/Jens_Bjørneboe#Bibliografi
E
On 16 October 2015 at 22:02, dohliam<EMAIL_ADDRESS>wrote:

Makes sense.
In terms of capitalization, I know book titles etc generally only
capitalize the first word in Norwegian, whereas newspapers
https://no.wikipedia.org/wiki/Liste_over_norske_aviser and companies
https://no.wikipedia.org/wiki/Liste_over_Norges_500_største_selskaper_i_2006
usually have each word of their name capitalized.
What about in this case? Should "oversetter" be capitalized or not? It
looks a bit odd to me in lowercase but I'm not sure what the convention
would be.
—
Reply to this email directly or view it on GitHub
https://github.com/dohliam/gasp-translator/issues/10#issuecomment-148886174
.

Fixed!


getLinkSuggestions() sometimes has alias property

It never seems to be an array, despite the metadata editor enforcing the type of value to be an array. It always seems to be the first alias (if any) that's present.

@unxok thanks for your PR. I updated the tsdoc regarding multiple aliases

@mnaoumov I also wanted to contribute to MarkdownPreviewRenderer as it has a couple things I found you don't have documented yet (namley the  codeBlockPostProcessors property and unregisterCodeBlockPostProcessors() method), but in my testing locally, I couldn't get the TS compiler to recognize it when I merge it onto the singleton class through interface typing. Happy to DM on discord too :)

@unxok DM'd in you Discord


running ctests

Its common to run ctest-based tests as part of continuous integration builds. My attempt to run the built tests after a build was:
- script: 'ctest -j 1 --interactive-debug-mode 0 --output-on-failure -R "in_memory"'
    workingDirectory: '$(Build.ArtifactStagingDirectory/<config-name'
    displayName: 'Run Ctest'

But it always failed to discover the tests. My assumption here is that I am missing the right parameter to specify the build directory.

Looks like I needed workingDirectory: '$(Build.ArtifactStagingDirectory)'


Switch to task::spawn_blocking.

Instead of blocking the current thread, we perform this I/O to an I/O thread.

What you are doing is basically reverting #15 which does not make sense.

What's the point of blocking the thread?

I ended up running into a similar problem, and made a separate (admittedly still work-in-progress) crate for this feature: https://github.com/oxidecomputer/async-bb8-diesel
I attempted to describe the pros / cons of using spawn_blocking vs block_in_place in the README - I don't think one is inherently better than the other, but usage of block_in_place does cause some non-intuitive behavior when interacting with other asynchronous tasks.
The example I showed there was as follows:
tokio::select! {
  // Calls "tokio::block_in_place", doing a synchronous Diesel operation
  // on the calling thread...
  _ = perform_database_operation() => {},
  // ... meaning this asynchronous timeout cannot complete!
  _ = sleep_until(timeout) = {},
}

If database operations are interleaved with other async tasks - like this example - the behavior of block_in_place can have unintended consequences by blocking the executor.


Repo oddskool/paiss_deeprl does not exist

I cannot neither clone it nor find it with my internet browser at the provided link .

I guess there is new link

I thought it was an additional repo. Thanks!

thx, yes the repo url was fixed.


Mapped all Pixel Point grey shades for theme adaptive presentation

e.g. bg-shade-0 will display background color of white (for light mode) or black for (dark mode).

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


Cl/fix poll list result 0.3

see test in https://github.com/dbt-labs/dbt-rpc/pull/138

This is looking good to me! Thank you!


Proposed fix for Issue 53 - use bool OnDataReceived signal to avoid i…

This may resolve Issue #53 . Since PollingXHR.Create's Task.Run may never finish due to recursive calls due to incoming data, this tries to use bool OnDataReceived as a signal to the DoPoll function, limiting recursion.

Will also likely fix occurrences of #44 since it may eliminate the multiple exceptions related to failure upon too many threads

@mattqs within issue #53 I commented on how you could recreate the bug and how this proposed change fixes it. If this merge is acceptable by you, I would appreciate if you could do a release, so I can pull it down via nuget.

Next release will be on 16 April 2018.

Yes, but then we have to figure out another way to stop the indefinite recursion that's going on. I haven't looked at the tests - maybe they need to be reviewed.


Find and install Kendo examples.css file

Several samples (line charts - date axis for example) use additional UI like:

These radio button use classes like <div class="box-col"> defined in the Telerik's examples.css file which seems hard to find :-). Here is Michael Graham's experience
http://www.telerik.com/forums/diagram-sample---box-col-style

http://demos.telerik.com/kendo-ui/content/shared/styles/examples.css

Darn - I searched the whole internet - and this reference did not show anywhere. As this is a file that is specific to our sample app I am not sure where to stuff it so it does not get lost.
Any idea?

I would put this in the styles folder of the sample app here. That way, it's copied when updating our demo site.

Done - and the UI controls are layed out correctly


Copying Master Database

The master .sql file will need to be copied to container; unsure if container maintains data after shutdown.
If so, we will need to create a script that will also execute this in mySQL so data is loaded prior to classes querying data.

This will be done with the docker file
Docker container can maintain data after shut down using volume mounting


feat: Release automatic indexing and updated instructions

Removed feature flags for indexing and instructions. These options are now forced on by default and their predecessors removed where appropriate.

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

v0.33.0
GitHub release

Your semantic-release bot :package::rocket:


errors/warnings on docs building

I tried to build the docs in cloned repository.
When I hit make html in the docs directory, bunch of errors and warnings are printed (as pasted at the bottom).
Can these be fixed?
And is there a URL where I can browse the compiled html documentation?
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/hahnechodelaysweep.py:docstring of qickdawg.nvpulsing.hahnechodelaysweep.HahnEchoDelaySweep:8: ERROR: Unexpected indentation.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/hahnechodelaysweep.py:docstring of qickdawg.nvpulsing.hahnechodelaysweep.HahnEchoDelaySweep:10: ERROR: Unexpected indentation.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/hahnechodelaysweep.py:docstring of qickdawg.nvpulsing.hahnechodelaysweep.HahnEchoDelaySweep:11: WARNING: Block quote ends without a blank line; unexpected unindent.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/hahnechodelaysweep.py:docstring of qickdawg.nvpulsing.hahnechodelaysweep.HahnEchoDelaySweep:36: ERROR: Unexpected indentation.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/lockinodmr.py:docstring of qickdawg.nvpulsing.lockinodmr.LockinODMR:10: ERROR: Unexpected indentation.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/lockinodmr.py:docstring of qickdawg.nvpulsing.lockinodmr.LockinODMR.analyze_results:10: WARNING: Inline emphasis start-string without end-string.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/lockinodmr.py:docstring of qickdawg.nvpulsing.lockinodmr.LockinODMR.body:4: ERROR: Unexpected indentation.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/lockinodmr.py:docstring of qickdawg.nvpulsing.lockinodmr.LockinODMR.body:5: WARNING: Block quote ends without a blank line; unexpected unindent.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/rabisweep.py:docstring of qickdawg.nvpulsing.rabisweep.RabiSweep:11: ERROR: Unexpected indentation.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/rabisweep.py:docstring of qickdawg.nvpulsing.rabisweep.RabiSweep:32: WARNING: Definition list ends without a blank line; unexpected unindent.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/ramsey.py:docstring of qickdawg.nvpulsing.ramsey.Ramsey:8: ERROR: Unexpected indentation.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/ramsey.py:docstring of qickdawg.nvpulsing.ramsey.Ramsey:10: ERROR: Unexpected indentation.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/ramsey.py:docstring of qickdawg.nvpulsing.ramsey.Ramsey:11: WARNING: Block quote ends without a blank line; unexpected unindent.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/ramsey.py:docstring of qickdawg.nvpulsing.ramsey.Ramsey:36: ERROR: Unexpected indentation.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/readoutwindow.py:docstring of qickdawg.nvpulsing.readoutwindow.ReadoutWindow:12: ERROR: Unexpected indentation.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/readoutwindow.py:docstring of qickdawg.nvpulsing.readoutwindow.ReadoutWindow:33: WARNING: Definition list ends without a blank line; unexpected unindent.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/t1delaysweep.py:docstring of qickdawg.nvpulsing.t1delaysweep.T1DelaySweep:11: ERROR: Unexpected indentation.
/home/ktaha/dev/qick-dawg/qickdawg/nvpulsing/t1delaysweep.py:docstring of qickdawg.nvpulsing.t1delaysweep.T1DelaySweep:32: WARNING: Definition list ends without a blank line; unexpected unindent.
WARNING: unsupported theme option 'logo-only' given
/home/ktaha/dev/qick-dawg/docs/source/thebasics/ReadMe.md:77: WARNING: 'myst' cross-reference target not found: 'CINT' [myst.xref_missing]
/home/ktaha/dev/qick-dawg/docs/source/thebasics/ReadMe.md:77: WARNING: 'myst' cross-reference target not found: 'CINT' [myst.xref_missing]
/home/ktaha/dev/qick-dawg/docs/source/thebasics/ReadMe.md:77: WARNING: 'myst' cross-reference target not found: 'Hav' [myst.xref_missing]

https://github.com/openjournals/joss-reviews/issues/6380

Maybe related to #7


Removing support of node.js 0.6, 0.8 and iojs_v1

node.js 0.6 and 0.8 support is rather time consuming. Many modules we rely on do not support them. Thus, we won't support old technologies as well.
If someone need node 0.6 support then please submit a PR and make sure it's running against Travis.

:+1:

I'm removing node.js 0.6 and 0.8 support.

:+1:


Remove the invalid declaration of is_a object property

Hi!
This PR removes the invalid declaration of is_a as an object property: this is probably coming from a wrong export of the Relationship Ontology (RO), because contrary to the other relationships is_a is directly translated into an OWL SubClassOf axiom and shouldn't be declared as an object property.
By the way, have you been editing the OWL files manually instead of editing the aro-edit.owl file? I was wondering how to do an update of the imported RO object properties, which would probably be feasible with a rebuild with the latest RO release, but then I figured the edit version was not in sync with the actual files.

Thanks for the video reminder @luispedro :wink:


[QUESTION] Default capture keys?

I would like to have a list of "cards" on a page be selectable simply by using the arrow keys (left/right). I have other pages where I have a text-box which makes capturing the keys simple and intuitive with this library (thank you).
So the idea would be you arrive at "Page" and there are a series of cards.  You tap the right arrow key and the first card highlights, tap again, the second, etc... hit enter, card is "clicked"
The main thing I don't get at the moment is how to have the focus travel with the card.  Meaning, if I press down it also scrolls my browser screen (not a behavior I want).  But, if I go down far enough the focus is on an card that I can no longer see, so I'm hoping someone here will know the best practice for handling such cases.
Again, thanks so much for this awesome library!

Hi @zeg-io,
I can point you in the direction of the (new) Preventing default browser behaviour section of the Readme, that you can use to stop the browser scrolling when you press the down key. I'd also recommend you check out the Managing focus in the browser section, to ensure your cards can be programmatically focused. You may also want to check out the scrollIntoView method, to ensure the focused card is always visible - check if the browser support matches your target browsers.
Alternatively, it sounds like your use case is an ideal one for another library I have authored called react-ref-manager. It is much less well known, and less mature/maintained than react-hotkeys - but it may be exactly what you need. I built  react-ref-manager to work well with react-hotkeys and use them together.
An example of using them together is as follows:
import React, { Component } from 'react';
import { GlobalHotKeys } from 'react-hotkeys';

import RefManager, { FocusDirection } from 'react-ref-manager';

class MyComponent extends Component {
  constructor(props, context) {
    super(props, context);

    this.refManager = new RefManager(this);
  }

  render() {
    return (
      <GlobalHotKeys
        keyMap={ {
          FOCUS_RIGHT: 'right',
          FOCUS_LEFT: 'left',
          FOCUS_UP: 'up',
          FOCUS_DOWN: 'down',
        } }

        handlers={ {
          FOCUS_UP: () => this.focusNextCard(FocusDirection.UP),
          FOCUS_DOWN: () => this.focusNextCard(FocusDirection.DOWN),
          FOCUS_LEFT: () => this.focusNextCard(FocusDirection.LEFT),
          FOCUS_RIGHT: () => this.focusNextCard(FocusDirection.RIGHT),
        }}
      >
        { this.renderCards() }
      </GlobalHotKeys>
    );
  }

  renderCards() {
    const { cards } = this.props;

    cards.map((card) => (
      <div
        tabIndex={ -1 }
        key={card.id}
        ref={ (c) => this.refManager.set('cards', card.id, c) }
      >
        Title: { card.title }
      </div>
    ));
  }

  focusNextCard(direction) {
    const { cards }  = this.props;

    const firstCardRef = this.refManager.get('cards', cards[0].id);

    if (firstCardRef) {
      const collectionWidth =
        Math.floor(window.innerWidth / firstCardRef.getBoundingClientRect().width);

      const cardRefs = this.refManager.get('cards');

      this.refManager.focusNext(cardRefs, {
        direction,
        indexes: cards.map(({id}) => id),
        collectionWidth,
        xWrap: true,
      });
    }
  }
}


Update waf-front-door-custom-rules-powershell.md

Updated Default Rule Set command and value to match GA values

@teresayao : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign off

#hold-off The author or another authorized Microsoft employee must sign off on the updates.

#sign-off


crypto/rand: Documentation for errors

The 3 exported funcs Int, Prime, Read return an error, but the current documentation doesn't say why and when errors might occur. Also their is no guidance about how to deal with a non-nil error: would a caller-side retry policy make sense?
I suggest we write a short explanation about why errors are part of the API at all, what such errors would look like, and how to deal with them.

Prime does mention that its errors comes from rand.Read.
It may be confusing to figure out if we're likely to have errors "because CSPRNGs inherently use system calls that may fail", or "because we're accepting any custom io.Reader in Int and Prime", or if "Reader cannot return errors, but we still want to stick to the io.Reader interface".

would a caller-side retry policy make sense?

In general, there is no safe non-nil error result from rand.Reader or rand.Read.

I would be in favour of having crypto/rand.[Reader.]Read never return an error, and completely fill the provided slice. (And have it panic if the underlying system call errors.)


Allow upgrade to Ruby 2.4 and JSON 2

json 2 is pretty much required now for full JSON RFC compliance and compatibility with ruby 2.4.
Most rails gems now support either 1.8 or 2.0.
Keeping the ceiling at 1.8 is preventing us from upgrading other gems and to ruby 2.4/2.5 versions. Can we be bit more generous with json dependency? This is similar to: https://github.com/Azure/autorest/issues/476
Ruby 2.5 ships with json 2.1 and, Ruby 2.4 ships with json 2.0.x.
It would be better to skip the dependency altogether or support higher versions.

Yes I believe some gems don't even require the dependency as it also causes on other platforms like Windows. I've seen this change go into libraries like Sidekiq. An update to allow json 1.8 or 2.0 would be greatly appreciated.

The 1.8 branch of the JSON gem added support for Ruby 2.4+ in version 1.8.5.

Even though it works as-is, I think it's a good idea to bump the JSON gem version!

THIS. Absolutely this. I'd love to be able to actually install/use square connect, but when it has dependencies that preclude running up to date versions of ruby, or having to run older versions of other gems, it's a complete non-starter. Is there some particular reason the JSON dependency is locked at an out of date version?

Any update on this?

Hello, There are at least two PRs referencing this and including my issue, 3. There is no reason to have 1.8.3 dependency. It makes upgrading to ruby 2.4, many of the rails ecosystem gems impossible. Can we get an update please?

@v-kumar Hi! Apologies for the delay on this. The JSON gem version will be bumped in an upcoming release.

@havenwood thanks! That would be most helpful. 😄

Closed by d5bcdca14e52fc2a3f8ac747572eabc82ab99400.

This is awesome. Thanks @havenwood.


deeplake adds significantly more dependencies in default installation

I noticed installing langchain using pip install langchain adds many more packages recently.
Here is the dependency map shown by johnnydep:
name                                             summary
-----------------------------------------------  -------------------------------------------------------------------------------------------------------
langchain                                        Building applications with LLMs through composability
├── PyYAML<7,>=6                                 YAML parser and emitter for Python
├── SQLAlchemy<2,>=1                             Database Abstraction Library
│   └── greenlet!=0.4.17                         Lightweight in-process concurrent programming
├── aiohttp<4.0.0,>=3.8.3                        Async http client/server framework (asyncio)
│   ├── aiosignal>=1.1.2                         aiosignal: a list of registered asynchronous callbacks
│   │   └── frozenlist>=1.1.0                    A list-like structure which implements collections.abc.MutableSequence
│   ├── async-timeout<5.0,>=4.0.0a3              Timeout context manager for asyncio programs
│   ├── attrs>=17.3.0                            Classes Without Boilerplate
│   ├── charset-normalizer<4.0,>=2.0             The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
│   ├── frozenlist>=1.1.1                        A list-like structure which implements collections.abc.MutableSequence
│   ├── multidict<7.0,>=4.5                      multidict implementation
│   └── yarl<2.0,>=1.0                           Yet another URL library
│       ├── idna>=2.0                            Internationalized Domain Names in Applications (IDNA)
│       └── multidict>=4.0                       multidict implementation
├── aleph-alpha-client<3.0.0,>=2.15.0            python client to interact with Aleph Alpha api endpoints
│   ├── aiodns>=3.0.0                            Simple DNS resolver for asyncio
│   │   └── pycares>=4.0.0                       Python interface for c-ares
│   │       └── cffi>=1.5.0                      Foreign Function Interface for Python calling C code.
│   │           └── pycparser                    C parser in Python
│   ├── aiohttp-retry>=2.8.3                     Simple retry client for aiohttp
│   │   └── aiohttp                              Async http client/server framework (asyncio)
│   │       ├── aiosignal>=1.1.2                 aiosignal: a list of registered asynchronous callbacks
│   │       │   └── frozenlist>=1.1.0            A list-like structure which implements collections.abc.MutableSequence
│   │       ├── async-timeout<5.0,>=4.0.0a3      Timeout context manager for asyncio programs
│   │       ├── attrs>=17.3.0                    Classes Without Boilerplate
│   │       ├── charset-normalizer<4.0,>=2.0     The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
│   │       ├── frozenlist>=1.1.1                A list-like structure which implements collections.abc.MutableSequence
│   │       ├── multidict<7.0,>=4.5              multidict implementation
│   │       └── yarl<2.0,>=1.0                   Yet another URL library
│   │           ├── idna>=2.0                    Internationalized Domain Names in Applications (IDNA)
│   │           └── multidict>=4.0               multidict implementation
│   ├── aiohttp>=3.8.3                           Async http client/server framework (asyncio)
│   │   ├── aiosignal>=1.1.2                     aiosignal: a list of registered asynchronous callbacks
│   │   │   └── frozenlist>=1.1.0                A list-like structure which implements collections.abc.MutableSequence
│   │   ├── async-timeout<5.0,>=4.0.0a3          Timeout context manager for asyncio programs
│   │   ├── attrs>=17.3.0                        Classes Without Boilerplate
│   │   ├── charset-normalizer<4.0,>=2.0         The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
│   │   ├── frozenlist>=1.1.1                    A list-like structure which implements collections.abc.MutableSequence
│   │   ├── multidict<7.0,>=4.5                  multidict implementation
│   │   └── yarl<2.0,>=1.0                       Yet another URL library
│   │       ├── idna>=2.0                        Internationalized Domain Names in Applications (IDNA)
│   │       └── multidict>=4.0                   multidict implementation
│   ├── requests>=2.28                           Python HTTP for Humans.
│   │   ├── certifi>=2017.4.17                   Python package for providing Mozilla's CA Bundle.
│   │   ├── charset-normalizer<4,>=2             The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
│   │   ├── idna<4,>=2.5                         Internationalized Domain Names in Applications (IDNA)
│   │   └── urllib3<1.27,>=1.21.1                HTTP library with thread-safe connection pooling, file post, and more.
│   ├── tokenizers>=0.13.2                       Fast and Customizable Tokenizers
│   └── urllib3>=1.26                            HTTP library with thread-safe connection pooling, file post, and more.
├── dataclasses-json<0.6.0,>=0.5.7               Easily serialize dataclasses to and from JSON
│   ├── marshmallow-enum<2.0.0,>=1.5.1           Enum field for Marshmallow
│   │   └── marshmallow>=2.0.0                   A lightweight library for converting complex datatypes to and from native Python datatypes.
│   │       └── packaging>=17.0                  Core utilities for Python packages
│   ├── marshmallow<4.0.0,>=3.3.0                A lightweight library for converting complex datatypes to and from native Python datatypes.
│   │   └── packaging>=17.0                      Core utilities for Python packages
│   └── typing-inspect>=0.4.0                    Runtime inspection utilities for typing module.
│       ├── mypy-extensions>=0.3.0               Type system extensions for programs checked with the mypy type checker.
│       └── typing-extensions>=3.7.4             Backported and Experimental Type Hints for Python 3.7+
├── deeplake<4.0.0,>=3.2.9                       Activeloop Deep Lake
│   ├── boto3                                    The AWS SDK for Python
│   │   ├── botocore<1.30.0,>=1.29.82            Low-level, data-driven core of boto 3.
│   │   │   ├── jmespath<2.0.0,>=0.7.1           JSON Matching Expressions
│   │   │   ├── python-dateutil<3.0.0,>=2.1      Extensions to the standard Python datetime module
│   │   │   │   └── six>=1.5                     Python 2 and 3 compatibility utilities
│   │   │   └── urllib3<1.27,>=1.25.4            HTTP library with thread-safe connection pooling, file post, and more.
│   │   ├── jmespath<2.0.0,>=0.7.1               JSON Matching Expressions
│   │   └── s3transfer<0.7.0,>=0.6.0             An Amazon S3 Transfer Manager
│   │       └── botocore<2.0a.0,>=1.12.36        Low-level, data-driven core of boto 3.
│   │           ├── jmespath<2.0.0,>=0.7.1       JSON Matching Expressions
│   │           ├── python-dateutil<3.0.0,>=2.1  Extensions to the standard Python datetime module
│   │           │   └── six>=1.5                 Python 2 and 3 compatibility utilities
│   │           └── urllib3<1.27,>=1.25.4        HTTP library with thread-safe connection pooling, file post, and more.
│   ├── click                                    Composable command line interface toolkit
│   ├── hub>=2.8.7                               Activeloop Deep Lake
│   │   └── deeplake                             Activeloop Deep Lake
│   │       └── ...                              ... <circular dependency marker for deeplake -> hub -> deeplake>
│   ├── humbug>=0.2.6                            Humbug: Do you build developer tools? Humbug helps you know your users.
│   │   └── requests                             Python HTTP for Humans.
│   │       ├── certifi>=2017.4.17               Python package for providing Mozilla's CA Bundle.
│   │       ├── charset-normalizer<4,>=2         The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
│   │       ├── idna<4,>=2.5                     Internationalized Domain Names in Applications (IDNA)
│   │       └── urllib3<1.27,>=1.21.1            HTTP library with thread-safe connection pooling, file post, and more.
│   ├── numcodecs                                A Python package providing buffer compression and transformation codecs for use
│   │   ├── entrypoints                          Discover and load entry points from installed packages.
│   │   └── numpy>=1.7                           Fundamental package for array computing in Python
│   ├── numpy                                    Fundamental package for array computing in Python
│   ├── pathos                                   parallel graph management and execution in heterogeneous computing
│   │   ├── dill>=0.3.6                          serialize all of python
│   │   ├── multiprocess>=0.70.14                better multiprocessing and multithreading in python
│   │   │   └── dill>=0.3.6                      serialize all of python
│   │   ├── pox>=0.3.2                           utilities for filesystem exploration and automated builds
│   │   └── ppft>=<IP_ADDRESS>                        distributed and parallel python
│   ├── pillow                                   Python Imaging Library (Fork)
│   ├── pyjwt                                    JSON Web Token implementation in Python
│   └── tqdm                                     Fast, Extensible Progress Meter
├── numpy<2,>=1                                  Fundamental package for array computing in Python
├── pydantic<2,>=1                               Data validation and settings management using python type hints
│   └── typing-extensions>=4.2.0                 Backported and Experimental Type Hints for Python 3.7+
├── requests<3,>=2                               Python HTTP for Humans.
│   ├── certifi>=2017.4.17                       Python package for providing Mozilla's CA Bundle.
│   ├── charset-normalizer<4,>=2                 The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
│   ├── idna<4,>=2.5                             Internationalized Domain Names in Applications (IDNA)
│   └── urllib3<1.27,>=1.21.1                    HTTP library with thread-safe connection pooling, file post, and more.
└── tenacity<9.0.0,>=8.1.0                       Retry code until it succeeds

deeplake brings in many packages, although it's marked as optional in pyproject.toml.

+1 I don't think everything should be included by default.

@hwchase17 FYI , deeplake also brings in cyclic dependency, which i have raised here https://github.com/activeloopai/deeplake/issues/2220

+1 this should be documented somewhere, in particular since deeplake pulls in humbug for automatic usability tracking (by default presuming user content). That is by installing langchain[all] one automatically participates in deeplake usage tracking, even if you don't actively use it. https://github.com/activeloopai/deeplake/issues/1754

@miraculixx I really don't think this is the case. If that's the case we should look into this - looping in @istranic.

@mikayelh Unfortunately yes:
Langchain attempts to import all supported vectorstores, including deeplake. If it is installed, it will import deeplake.
upon import deeplake, a HumbugReporter is set up and an exception hook added. That is any future exception triggers a reporter.publish() call to https://spire.bugout.dev.

Hi @miraculixx Thx for digging into this. Yesterday we disabled reporting upon importing deeplake for an unrelated reason. We'll get rid of the exception hood, and that will eliminate all reporting that happens by virtue of only importing deeplake.

@istranic Great news, much appreciated!

Hi @miraculixx This PR was merged.


Create Non-Namespaced CRD when trying to apply the Kyma CRD during SKR Installation so that only one Kyma can be created in a managed SKR

As per https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#create-a-customresourcedefinition it is possible to create namespaced CustomResources when the spec.scope field is set correctly. This causes a CR to be applied Cluster-Wide. For dual-cluster mode, we need to apply our CRD by default as Namespaced in KCP (as this allows us to maintain N Kyma CRs for N Clusters). However, in SKR the managed Cluster itself is not able to have multiple Kymas. Thus it would make sense to have the Kyma non-namespaced during the Sync.
AC:

[ ] This can be achieved in the installation logic in https://github.com/kyma-project/lifecycle-manager/blob/969fde1656abec7f9c626eabb81da2e8540b13ba/operator/pkg/remote/kyma_synchronization_context.go#L156-L158 by also overriding the scope field.
[ ] In addition the Fetch Logic in https://github.com/kyma-project/lifecycle-manager/blob/969fde1656abec7f9c626eabb81da2e8540b13ba/operator/pkg/remote/kyma_synchronization_context.go#L183 has to be adjusted to fetch a globally scoped Kyma from the Runtime
[ ] Tests have to be adjusted accordingly

Requirement is especially useful for busola as it can then display the Kyma in SKR much easier.

I would not say it's a hard requirement, but the Resource Creation will show off in every Namespace.
I would actually say that this is misleading in a way, the user thinks that he can create CR instances in it's own Namespace.

What do you mean with show off in every Namespace. What exactly is misleading? They would not be able to create multiple CRs of Kyma in SKR if its globally scoped like suggested in the ticket.

IMO, If the main purpose for cluster-scoped Kyma is not misleading users to create Kyma CR in different namespace, I think it's a miss use for cluster-scoped resource. To me, to decide if a CR should be cluster-scoped or not should come from the direction how is this resource being used or managed. For example, PV designed as cluster-scoped because it can be used for Pod from different namespace. ClusterRole is used for managing permission for resources across clusters.
Our Kyma CR is only designed to manage all Kyma related module CRs, which will be deployed under same namespace I believe, e.g: kyma-system. so I think make it cluster-scoped is not follow this concept.
Back to the point that users can create Kyma CR under different namespace, although we can't prevent it, but we can restrict our lifecycle manager only operate Kyma CR under defined namespace, simply ignore all other CR created in different namespaces. And this role can be mentioned in Kyma document to guide users how to treat Kyma CR properly.

I disagree in this scenario. Imo the Kyma CR has only one purpose, which is managing the installation of resources of a Kyma Cluster. In SKR there is never a scenario where you would be able to run more than one Kyma CR. The entire setup is managed so I think there is no point in namespacing it.

This feature request has been rejected by @kyma-project/jellyfish
There are x reasons:

When going for this, we remove the capability in the future of using an SKR as a control-plane (we call this concept "Kymaception" as it uses a Kyma CR in local mode to spin up its own module requirements
It will be confusing for maintainers and users alike to have some clusters with non-namespaced Kyma and some with namespaced Kyma (control-plane)
It is maintenance effort in managing CRD migration and there are certain scenarios during migration of non-namespaced CRDs that have to be handled differently in regards to RBAC handling

Thus we are closing this issue


"label_l" and "label_r" parameters are weird, let's replace it with one "logo" image

Since we need to load the club icon anyway, how about replacing the entire logo in the bottom right corner with a picture? I think it would be easier for us instead of using the cryptic "label_l" and "r" params. We can limit their width or height and resize the logo image based on that.

With label parts you can either make the icon be left or right from the text (by omitting label_l or label_r), or between.
Or you can omit the labels entirely and use the icon only. Though the icon must be a square for now because the size options aren't exported.
It could also be done either by:

Using one logo picture with text or whatever on it. Than its width should be auto and height is specified in the preview.Options.
Exporting icon size options in the URL and use them together with icon param alone since label params are already optional.

Option 2 looks even more complicated to me. Option 1 is simple and even more customizable, so I would go with it!


Display Protect RPC url under add protect button

now display Protect RPC URL under the button as well
Need @zeroXbrock to first merge this PR: https://github.com/zeroXbrock/protect-button/pull/7

Actually would need to update the package versioning for protect-button after @zeroXbrock merge the change to make the build work properly

@zeroXbrock just updated protect button version in package.json. Tested and works locally.

looks good, nice work @odysseus0!


issue in downloading a url

http://blogs-images.forbes.com/kristintablang/files/2016/03/Bugatti-Chiron-2016-1200x675.jpg
issue in downloading this url
content-length -1

There are all information in the message of FileDownloadGiveUpRetryException which thrown when you try to download this resource:
can't know the size of the download file, and its Transfer-Encoding is not Chunked either.
you can ignore such exception by add http.lenient=true to the filedownloader.properties

It means there is no content-length in the response header and also it isn't Chunked resource which declared in the Transfer-Encoding key, what isn't follow HTTP rules.
But you can add http.lenient=true to the filedownloader.properties to prevent such exception, and deal with it as the case of chunked resource.

Response header:
0 = "Server"
1 = "Apache"
2 = "Last-Modified"
3 = "Fri, 04 Mar 2016 23:58:48 GMT"
4 = "Vary"
5 = "Accept-Encoding"
6 = "Content-Type"
7 = "image/jpeg"
8 = "Backend"
9 = "blogs"
10 = "x-url"
11 = "/kristintablang/files/2016/03/Bugatti-Chiron-2016-1200x675.jpg"
12 = "x-host"
13 = "blogs.forbes.com"
14 = "Accept-Ranges"
15 = "bytes"
16 = "X-Frame-Options"
17 = "SAMEORIGIN"
18 = "Cache-Control"
19 = "public, max-age=2591990"
20 = "Expires"
21 = "Wed, 12 Oct 2016 10:20:13 GMT"
22 = "Date"
23 = "Mon, 12 Sep 2016 10:20:23 GMT"
24 = "Connection"
25 = "keep-alive"


ARROW-5581: [Java] Provide interfaces and initial implementations for vector sorting

Data sorting is an important and common feature. For this issue, we provide the basic interfaces for vector sorting. Users can implement customized sorting algorithms by extending our interfaces. In addition, we also give initial sorting implementations for both fixed-width and variable-width vectors.

Codecov Report

Merging #4542 into master will increase coverage by 0.98%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #4542      +/-   ##
==========================================
+ Coverage   88.55%   89.53%   +0.98%
==========================================
  Files         796      646     -150
  Lines      103239    91405   -11834
  Branches     1253        0    -1253
==========================================
- Hits        91425    81841    -9584
+ Misses      11569     9564    -2005
+ Partials      245        0     -245

Impacted Files
Coverage Δ

cpp/src/arrow/util/thread-pool-test.cc
97.66% <0%> (-0.94%)
:arrow_down:

go/arrow/ipc/writer.go

go/arrow/math/uint64_amd64.go

go/arrow/memory/memory_avx2_amd64.go

go/arrow/ipc/file_reader.go

js/src/enum.ts

go/arrow/array/builder.go

js/src/Arrow.node.ts

js/src/schema.ts

go/arrow/type_traits_boolean.go

... and 144 more

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 25b4a46...f675c78. Read the comment docs.

Thank you for doing this. A few high level comments that I think are worth discussing (changes might not be necessary).
Also, I'm considering if we should maybe make a separate mavan package for manipulation utilities (or at least maybe staring something like "org.apache.arrow.vector.processing.sort" or "org.apache.arrow.vector.compute.sort" or something similar so that other types of manipulation can be added and be more easily discoverable. Do you have any thoughts on this?

Good suggestion.
It makes the code structure much clearer to separate the code for data structures (vectors) and the algorithms (sorters) on them.
In the new commits, I have placed the sort related code into a separate maven package named "algorithm".

Note we use "ARROW-5581: " instead of "[ARROW-5581]"

I think this is mostly looking OK with a few comments.. I think the last question is how to expose newVector that @praveenbingo raised.

I think the problem has been resolved by moving the method for creating new vectors to the sorter interface.

Thank you for doing this. A few high level comments that I think are worth discussing (changes might not be necessary).
Also, I'm considering if we should maybe make a separate mavan package for manipulation utilities (or at least maybe staring something like "org.apache.arrow.vector.processing.sort" or "org.apache.arrow.vector.compute.sort" or something similar so that other types of manipulation can be added and be more easily discoverable. Do you have any thoughts on this?

More thoughts about this:
If we choose to move the logic to a separate maven package, in the future, we may need to move other code to this package as well.
For example, the code for dictionary encoding may rely on the sorting logic in the future, so we may need to move it to the "algorithm" package too. Otherwise, a cyclic dependency would be resulted.

@liyafan82 Thanks a ton for this.
@emkornfield Looks good to me, please review and go ahead if it looks good to you.

Note we use "ARROW-5581: " instead of "[ARROW-5581]"

Sure. Thanks for the kind reminder. I need to be more careful next time.

If we choose to move the logic to a separate maven package, in the future, we may need to move other code to this package as well.
For example, the code for dictionary encoding may rely on the sorting logic in the future, so we may need to move it to the "algorithm" package too. Otherwise, a cyclic dependency would be resulted.

Sorry I missed this initially, hopefully that won't be the case.  I'm also fine with keeping it in the Vector module but under its own package naming.

Mostly style at this point. Please look at the naming for all the source files which looks strange.

Thanks for the kind reminder. The problem with the source file paths has been resolved.

If we choose to move the logic to a separate maven package, in the future, we may need to move other code to this package as well.
For example, the code for dictionary encoding may rely on the sorting logic in the future, so we may need to move it to the "algorithm" package too. Otherwise, a cyclic dependency would be resulted.

Sorry I missed this initially, hopefully that won't be the case. I'm also fine with keeping it in the Vector module but under its own package naming.

No problem. Thanks for the comments.
Generally speak, I'd prefer opening a separate maven package, and hopefully more algorithms will be added there. In the long run, it will make the code structure clearer.

+1 LGTM, thank you for addressing all the feedback.

@emkornfield @praveenbingo thanks a lot for your valuable comments and suggestions.
Your contributions have made this feature much better.


Bug 2087032: make run bundle(-upgrade) follow OCP proxy configurations.

Description of the change:
Currently the registry pod that is created when running run bundle(-upgrade) does not respect proxy configurations when running on OCP. This change adds and uses a utility function that:

Checks if the config.openshift.io/v1 API exists on a cluster

If it exists it attempts to retrieve the Proxy resource with the name cluster and no namespace. It then uses the Status field from this Proxy resource to create and return a list of core/v1 EnvVar that are applied to the registry pod's environment variables.
If it does not exist an empty list of core/v1 EnvVar is returned.

For more information on the OCP Proxy configuration, see: https://docs.openshift.com/container-platform/4.10/networking/enable-cluster-wide-proxy.html
Motivation for the change:
Fix BugZilla bug: https://bugzilla.redhat.com/show_bug.cgi?id=2087032 by making the registry pod created by run bundle(-upgrade) adhere to proxy configurations on OCP.
Checklist
If the pull request includes user-facing changes, extra documentation is required:

[ ] Add a new changelog fragment in changelog/fragments (see changelog/fragments/00-template.yaml)
[ ] Add or update relevant sections of the docs website in website/content/en/docs

/cc @rashmigottipati @jmrodri

@joelanford

This seems like it introduces some downstream-specific logic to what's otherwise a vendor-agnostic upstream tool.
This was the only way that we could determine we would be able to have run bundle(-upgrade) adhere to the proxy that is defined via the Proxy api in OCP. I tried to look for a more vendor-agnostic approach but wasn't able to find something that would be reliable.

I personally agree that adding downstream-specific logic is not great but I wasn't able to find any other logic to support this. We even noticed in OLM that this same kind of logic exists for the downstream Proxy api when running an operator on cluster.

We've always said (not sure we've documented) that the bundle image used in run bundle must be pullable by the cluster. For OCP use cases, are ICSP's potential workarounds? If so, it seems reasonable to ask OCP users to configure ICSPs to ensure the bundle image can be pulled by the cluster without the use of a proxy.
This may be a better approach in general. With the current approach we are already saying that if the registry pod is not running on an OCP cluster we expect that a cluster admin handles any proxy setup and assume they have done something to make sure the image pull goes through the proxy specified for the cluster.

Another option: perhaps we just extend the CLI with a flag that allows the user to pass a list of proxies the registry pod should use to pull the bundle image?
This is similar to something that we considered. We were thinking we could use a ConfigMap in the namespace to get the proxy environment variables to set on the registry pod. I opened an issue for it here: https://github.com/operator-framework/operator-sdk/issues/5916

Lastly, this is only applicable in sqlite cases, correct? In FBC cases, all of the bundle image pulling happens on the local machine, and never on the cluster. Since sqlite is deprecated and this issue doesn't affect FBC (right?), could we just say WONTFIX on the downstream bug?
This is a good point, I didn't think of this scenario where it wouldn't matter in the FBC case because the bundle is rendered on the local machine. I think marking it as WONTFIX in this case makes sense and just updating the documentation to state this.

Thanks for bringing up all these good points!

@everettraven I completely agree with @joelanford. I missed the fact that this won't effect FBC index at all and it's only the SQLite index images. So I think marking it as WONTFIX makes sense and clarifying the the documentation to state this would be helpful.
Also, as Joe mentioned, one of the assumptions for run bundle is that the bundle image must be pullable by the cluster. This is clarified in the EP but probably good to add a note in SDK docs as well.


Hard coded values in add_campaign_draft code example

Hello,
I just spotted that there are two hard coded values that should not be in the add_campaign_draft code example:
https://github.com/googleads/google-ads-ruby/blob/2ef08fa7c7396f70391b11a6060efd021f5f823e/examples/campaign_management/add_campaign_draft.rb#L86
Thanks,

Thanks! Fixed.


Fix starting /camera/get_settings Service

Fixes Issue: #66
Changes proposed in this pull request:

Properly enable /camera/get_settings service
Added a new GetSettingsService Test

This looks pretty straight forward.  Approved. :+1:


Fix Broker plugin build in CI

:notebook_with_decorative_cover: Description
This fixes the Broker plugin setup in CI.
:memo: Checklist

[x] All user-facing changes have changelog entries.
[x] The changes are reflected on docs.tenzir.com/vast, if necessary.
[x] The PR description contains instructions for the reviewer, if necessary.

:dart: Review Instructions
Check if CI runs through.

[ch27043]

The static-binary build with a bundled broker plugin also doesn't work yet, we can fix that later.

The static-binary build with a bundled broker plugin also doesn't work yet, we can fix that later.

I've created a story for this deficiency.

The static-binary build with a bundled broker plugin also doesn't work yet, we can fix that later.

I've created a story for this deficiency.

I already have a fix, but I don't want to delay CI again.

I already have a fix, but I don't want to delay CI again.

Feel free to push again, the merge can wait a bit.


[Feature Request] Make The Scroll to top button a little smaller and transparent.

Description
Currently, the 'scroll to top' button occupies a considerable amount of space and overlaps BID images, especially on mobile devices it looks a bit off. Reducing its size and making it more transparent would give it a sleeker appearance and improve the user interface.
Screenshots
Now

After some small changes

Checklist

[X] I have checked for duplicate issues
[X] I have read the Contribution Guidelines
[X] I am willing to work on this issue (optional)

This makes sense as a valuable addition @MeetThakur and this issue is all yours to develop and create a pull request!


Support for Data.Text.Lazy

Is there some way to use your library with Data.Text.Lazy?

Sure! The class methods of Show all return Builders, so they can be converted easily to either strict or lazy Text. The Text.Show.Text module defines a showLazy function which converts a Show instance to a lazy Text.

Glad to hear! Thank you, I think I should close the issue.


[Bug]: 400 Invalid type for 'max_tokens': expected an integer, but got a string instead.

Opencommit Version
3.1.2
Node Version
22.5.1
NPM Version
10.8.2
What OS are you seeing the problem on?
Mac
What happened?
Default undefined value for OCO_TOKENS_MAX_OUTPUT is throwing error.
Expected Behavior
some default value for it.
Current Behavior
expected an integer, but got a string instead.
Possible Solution
Adjusting the default value to an integer
Steps to Reproduce
I just tried to use after updating.
Relevant log output
oco -y
(node:13357) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
┌  open-commit
│
◇  1 staged files:
  *****
│
◇  📝 Commit message generated
│
└  ✖ 400 Invalid type for 'max_tokens': expected an integer, but got a string instead.

I get the same error after updating to 3.1.0.
Reverting to 3.0.20 works fine.

there is a bug that will be fixed with the next release, which most likely happens today.
for now run: oco config set OCO_TOKENS_MAX_INPUT=10000 OCO_TOKENS_MAX_OUTPUT=10000, should heal it

gonna be fixed when this is merged https://github.com/di-sukharev/opencommit/pull/408

Same error here. Waiting for the merge.

latest version just merged https://github.com/di-sukharev/opencommit/pull/412
run npm i -g opencommit@latest


zero

zero

What does this do exactly?

this is just an animation for stylesheet :) css

This makes no sense. If you can provide some description and example, we can discuss it.
Closing it.


Replace wxSnapshot submodule with copy of wxWidgets sources

Description:

Initially, the wxSnapshot repository was created to use with both wxUiEditor and roughly a dozen internal tools. All of the internal tools have now been merged into just two tools, and being internal, they could easily just use the wxSnapshot in wxUiEditor instead of using the wxSnapshot submodule.
Building with other versions of wxWidgets (3.3, forked version, UTF8 build) is not really a viable option for anyone else since it requires a custom and hidden CMakeLists.txt and wxWidgets.cmake file to truly integrate with wxUiEditor. Even verifying that newer versions of wxWidgets 3.2 work with wxUiEditor is a bit of a pain, since the submodule has to be changed, and then the branch with the change tested with wxUiEditor, and then if the tests pass, it has to be updated and then the submodule in wxUiEditor needs to be synced. That's all doable, but does require anyone cloning or forking the wxUiEditor repository to also sync their wxSnapshot submodule.
There are already external libraries that we use copies of in wxUiEditor without using submodule (pugixml and ttLib). Doing the same with wxSnapshot would not only making cloning/forking simpler, but would also enable some additional options:

create version of CMakeList.txt, wxWidgets.cmake and setup.h that works with the current wxWidgets branch (currently 3.3)
create version of CMakeList.txt, wxWidgets.cmake and setup.h that works with the UTF8 wxWidgets build (currently 3.3)
synchronize CMake options between wxUiEditor and wxWidgets modules
build wxWidgets directly into wxUiEditor instead of an external library
build fork, utf8, 3.3 libraries directly into our own directory structure
tweak specific wxWidgets files if needed

Essentially, if it's not a submodule, we have a lot more options of how to build the wxWidgets component.

This work has been completed. The submodule has been removed, and instead there is a wxWidgets/ directory with wx_3_2, wx_3_3andwx_customcan allow for three different build/locations for wxWidgets. Thewx_3_2`  directory contains a copy of the wxWidgets 3.2.0 sources -- the other two folders only contain the necessary commands for CMake, with the actually location of the files specified by the user via CMake.


Fix warning of uninitialized instance variable

Fix the following warning caused by an uninitialized instance variable:
lib/asciimath/parser.rb:76: warning: instance variable @push_back not initialized

This shows up when running the main Asciidoctor test suite.

Resolve by ecb9954d1fb31df58988692c4196de5635ef54d0

I see this is resolved, but it doesn't seem to be included in the 1.0.1 release on RubyGems.org. Perhaps cut a 1.0.2 release, then close.

I'm looking at the commit log and shell history and can't figure out how this went wrong... Weird.
Anyway a 1.0.2 release will be the easiest fix. I'll double check everything and do that right away.

1.0.2 has been published

Thanks!!


Update to Chromium 125.0.6422.76

This PR updates to Chromium 125.0.6422.76
There were no notable changes needed on our end.

Change log
Blog post

There's a bug between Chromium and KDE Plasma 6 when using wayland that causes input (except for the scrollwheel) to hang after something has been dragged.  This has been fixed in [5539621] but doesn't land until 126.  I've adjusted the patch to work for 125 since I've encountered this issue a few times, and I figured I'd share the changes if its useful to anyone else:
diff
# From d0f2e2e872e8fc67fbaacb14626e0bc30759dd31 Mon Sep 17 00:00:00 2001
# From: Nick Diego Yamane<EMAIL_ADDRESS># Date: Wed, 15 May 2024 16:36:17 +0000
# Subject: [PATCH] wayland: factor HandleDragEnd out of Reset in data drag controller
#
# The nested message loop used for outgoing drag sessions should be tied
# to the dnd_drop_performed event rather than the whole underlying drag
# flow, which includes async wl_data_source events, such as, dnd_finished
# and cancelled. Further details can be found at analysis [1].
#
# Another effect of this change is that it works as a mitigation to
# prevent browser process from hanging, ie: stopping to respond to input
# events caused by an never ending drag-and-drop loop when dealing with
# misbehaving/buggy or malicious Wayland compositors. A real case of this
# was found in the wild with some versions of Kwin 6, as described in the
# linked crbugs.
#
# [1] https://notes.nickdiego.dev/chromium/wayland-events-during-drag
#
# Bug: 329479345, 336449364, 325741108
# Change-Id: Ib4757223ce9e490c2a65999da77bf1257f7fc3ae
# Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5539621
# Commit-Queue: Nick Yamane<EMAIL_ADDRESS># Reviewed-by: Max Ihlenfeldt<EMAIL_ADDRESS># Reviewed-by: Orko Garai<EMAIL_ADDRESS># Cr-Commit-Position: refs/heads/main@{#1301363}
--- a/ui/ozone/platform/wayland/host/wayland_data_drag_controller.cc
+++ b/ui/ozone/platform/wayland/host/wayland_data_drag_controller.cc
@@ -125,9 +125,13 @@ WaylandDataDragController::~WaylandDataD
 bool WaylandDataDragController::StartSession(const OSExchangeData& data,
                                              int operations,
                                              DragEventSource source) {
-  DCHECK_EQ(state_, State::kIdle);
-  DCHECK(!origin_window_);
-  DCHECK(!icon_surface_);
+  // TODO(crbug.com/340398746): Should be DCHECK'ed instead, though due to buggy
+  // compositors, eg: KWin 6, which do not send data_source.dnd_finish|cancelled
+  // in some cases, it was temporarily turned into this conditional avoid
+  // browser crashes. Revert once it stabilizes at compositors side.
+  if (state_ != State::kIdle) {
+    Reset();
+  }

   auto* origin_window = source == DragEventSource::kTouch
                             ? window_manager_->GetCurrentTouchFocusedWindow()
@@ -213,7 +217,8 @@ void WaylandDataDragController::CancelSe
   // deferring the reset (e.g. until we receive wl_data_device.leave) in turn
   // might lead to issues for real users if the compositor implements the spec
   // incorrectly or just in a way we didn't foresee.
-  Reset(DragResult::kCancelled, ui::EventTimeForNow());
+  HandleDragEnd(DragResult::kCancelled, ui::EventTimeForNow());
+  Reset();
 }

 void WaylandDataDragController::UpdateDragImage(const gfx::ImageSkia& image,
@@ -507,8 +512,25 @@ void WaylandDataDragController::OnDataSo
           << " origin=" << !!origin_window_
           << " nested_dispatcher=" << !!nested_dispatcher_;

-  auto result = completed ? DragResult::kCompleted : DragResult::kCancelled;
-  Reset(result, timestamp);
+  // HandleDragEnd below is likely no-op, though is called to protect against
+  // buggy/malicious compositors, where no prior dnd_drop_performed was
+  // received, for example. In which case, it could result in UI hangs where
+  // input events would stop being processed because the nested drag message
+  // loop would keep running indefinitely.
+  HandleDragEnd(completed ? DragResult::kCompleted : DragResult::kCancelled,
+                timestamp);
+  Reset();
+}
+
+void WaylandDataDragController::OnDataSourceDropPerformed(
+    WaylandDataSource* source,
+    base::TimeTicks timestamp) {
+  CHECK_EQ(data_source_.get(), source);
+  VLOG(1) << __FUNCTION__ << " window=" << !!window_
+          << " origin=" << !!origin_window_
+          << " nested_dispatcher=" << !!nested_dispatcher_;
+
+  HandleDragEnd(DragResult::kCompleted, timestamp);
 }

 const WaylandWindow* WaylandDataDragController::GetDragTarget() const {
@@ -654,12 +676,29 @@ void WaylandDataDragController::CancelDa
   }
 }

-void WaylandDataDragController::Reset(DragResult result,
-                                      base::TimeTicks timestamp) {
+void WaylandDataDragController::Reset() {
   if (state_ == State::kIdle) {
     return;
   }

+  data_source_.reset();
+  data_offer_.reset();
+  icon_buffer_.reset();
+  icon_surface_.reset();
+  icon_surface_buffer_scale_ = 1.0f;
+  icon_image_ = gfx::ImageSkia();
+  icon_frame_callback_.reset();
+  offered_exchange_data_provider_.reset();
+  data_device_->ResetDragDelegate();
+  has_received_enter_ = false;
+  state_ = State::kIdle;
+}
+
+// TODO(crbug.com/329479345): Drop DragResult in favor of intermediary states
+// `kDropping` and `kCancelling`, move `Reset` back into this function, called
+// conditionally depending on the state it would be transitioning to.
+void WaylandDataDragController::HandleDragEnd(DragResult result,
+                                              base::TimeTicks timestamp) {
   if (origin_window_) {
     DragOperation operation =
         (result == DragResult::kCompleted)
@@ -684,18 +723,6 @@ void WaylandDataDragController::Reset(Dr
   if (pointer_grabber_for_window_drag_) {
     DispatchPointerRelease(timestamp);
   }
-
-  data_source_.reset();
-  data_offer_.reset();
-  icon_buffer_.reset();
-  icon_surface_.reset();
-  icon_surface_buffer_scale_ = 1.0f;
-  icon_image_ = gfx::ImageSkia();
-  icon_frame_callback_.reset();
-  offered_exchange_data_provider_.reset();
-  data_device_->ResetDragDelegate();
-  has_received_enter_ = false;
-  state_ = State::kIdle;
 }

 std::optional<wl::Serial>
@@ -782,7 +809,8 @@ uint32_t WaylandDataDragController::Disp
   // once.
   if (event->type() == ET_MOUSE_RELEASED) {
     if (!has_received_enter_) {
-      Reset(DragResult::kCancelled, event->time_stamp());
+      HandleDragEnd(DragResult::kCancelled, event->time_stamp());
+      Reset();
     } else {
       return POST_DISPATCH_STOP_PROPAGATION;
     }
--- a/ui/ozone/platform/wayland/host/wayland_data_drag_controller.h
+++ b/ui/ozone/platform/wayland/host/wayland_data_drag_controller.h
@@ -140,6 +140,8 @@ class WaylandDataDragController : public
                            SuppressPointerButtonReleasesAfterEnter);
   FRIEND_TEST_ALL_PREFIXES(WaylandDataDragControllerTest,
                            StartDragWithWrongMimeType);
+  FRIEND_TEST_ALL_PREFIXES(WaylandDataDragControllerTest,
+                           OutgoingSessionWithoutDndFinished);

   enum class DragResult {
     kCancelled,
@@ -164,6 +166,8 @@ class WaylandDataDragController : public
   void OnDataSourceFinish(WaylandDataSource* source,
                           base::TimeTicks timestamp,
                           bool completed) override;
+  void OnDataSourceDropPerformed(WaylandDataSource* source,
+                                 base::TimeTicks timestamp) override;
   void OnDataSourceSend(WaylandDataSource* source,
                         const std::string& mime_type,
                         std::string* contents) override;
@@ -184,9 +188,14 @@ class WaylandDataDragController : public
       std::unique_ptr<ui::OSExchangeData> received_data);
   void CancelDataFetchingIfNeeded();

-  // Completes/cancels the drag session and resets everything to idle state.
-  // Does nothing if the current state is already `kIdle`.
-  void Reset(DragResult result, base::TimeTicks timestamp);
+  // Resets everything to idle state. Does nothing if the current state is
+  // already `kIdle`.
+  void Reset();
+
+  // Perform steps required when ending a drag session. e.g: quit the nested
+  // drag loop (if any), remove the event dispatcher override, and notify the
+  // drag/drop handlers based on `result`.
+  void HandleDragEnd(DragResult result, base::TimeTicks timestamp);

   std::optional<wl::Serial> GetAndValidateSerialForDrag(
       mojom::DragEventSource source);
--- a/ui/ozone/platform/wayland/host/wayland_data_source.cc
+++ b/ui/ozone/platform/wayland/host/wayland_data_source.cc
@@ -37,6 +37,13 @@ DataSource<T>::~DataSource() {
 }

 template <typename T>
+void DataSource<T>::HandleDropEvent() {
+  VLOG(1) << "OnDataSourceDropPerformed in WaylandDataSource";
+  // No timestamp for these events. Use EventTimeForNow(), for now.
+  delegate_->OnDataSourceDropPerformed(this, ui::EventTimeForNow());
+}
+
+template <typename T>
 void DataSource<T>::HandleFinishEvent(bool completed) {
   VLOG(1) << "OnDataSourceFinish in WaylandDataSource";
   // No timestamp for these events. Use EventTimeForNow(), for now.
@@ -108,7 +115,8 @@ void DataSource<T>::OnTarget(void* data,

 template <typename T>
 void DataSource<T>::OnDndDropPerformed(void* data, T* source) {
-  NOTIMPLEMENTED_LOG_ONCE();
+  auto* self = static_cast<DataSource<T>*>(data);
+  self->HandleDropEvent();
 }

 //////////////////////////////////////////////////////////////////////////////
--- a/ui/ozone/platform/wayland/host/wayland_data_source.h
+++ b/ui/ozone/platform/wayland/host/wayland_data_source.h
@@ -11,6 +11,7 @@

 #include "base/memory/raw_ptr.h"
 #include "base/notreached.h"
+#include "base/time/time.h"
 #include "ui/ozone/platform/wayland/common/wayland_object.h"

 struct wl_data_source;
@@ -64,6 +65,10 @@ class DataSource {
     virtual void OnDataSourceSend(DataSource<T>* source,
                                   const std::string& mime_type,
                                   std::string* contents) = 0;
+    // Optional callback intended to be implemented only by dnd-capable delegate
+    // implementations.
+    virtual void OnDataSourceDropPerformed(DataSource<T>* source,
+                                           base::TimeTicks timestamp) {}

    protected:
     virtual ~Delegate() = default;
@@ -86,6 +91,7 @@ class DataSource {

  private:
   void HandleFinishEvent(bool completed);
+  void HandleDropEvent();
   void HandleSendEvent(const std::string& mime_type, int32_t fd);

   // {T}_listener callbacks:

portable linux builds fine and runs at least on manjaro and ubuntu 20.04/24.04


Using hard-coded namespaces in TTML parser

Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
master
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from master?
Yes
Are you using the demo app or your own custom app?
Demo
What browser and OS are you using?
ChromeOS stable 84
What are the manifest and license server URIs?
Not available (pointed out by a partner, confirmed by reading source)
What did you do?
The TTML parser uses hard-coded namespaces in some places.  For example:

tts:extent
xml:space
xml:id
smpte:backgroundImage

This prevents someone from using different namespace names in their XML.  For example, this would be typical:
<tt xmlns="http://www.w3.org/ns/ttml"
    xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <head>
    <styling>
      <style xml:id="backgroundStyle"
          tts:fontFamily="proportionalSansSerif"
          tts:fontSize="1.5c"
          tts:textAlign="center"
          tts:origin="5% 70%"
          tts:extent="95% 28%"/>

But this should also be valid:
<tt xmlns="http://www.w3.org/ns/ttml"
    xmlns:s="http://www.w3.org/ns/ttml#styling">
  <head>
    <styling>
      <style xml:id="backgroundStyle"
          s:fontFamily="proportionalSansSerif"
          s:fontSize="1.5c"
          s:textAlign="center"
          s:origin="5% 70%"
          s:extent="95% 28%"/>

In some cases, we use getAttribute directly with a hard-coded namespace name in the attribute name:
extent = tt.getAttribute('tts:extent');

Instead, we should match by namespace URL, as we do in most other cases.
const ttsNs = TtmlTextParser.styleNs_;  // "http://www.w3.org/ns/ttml#styling"
extent = XmlUtils.getAttributeNS(tt, ttsNs, 'extent');

It's possible that we could write a compiler conformance rule or linter rule to ban the direct use of getAttribute() with a hard-coded namespace name.

Hi Joey,
Is this fix due to be backported to the 2.5.x branch as well?
Many thanks,
Alex

Fixed with commit 7e4280fab4bb29f346cac1a6da5120236a61457b .

There are still instances of hard-coded namespaces in the parser.  For example, smpte:backgroundImage.

Got it. Working on a fix.


[42] created NSHMInversionRunner

implements #42 apart from python wrapper

Hi @voj Were you going to add the python gateway interface - of leave that for me to do?

@chrisbc I was going to leave that to you since I can't really test it. But I can also give it a whirl

@chrisbc python gateway is done


esmBot error

Command that caused the error
/ancient
Image that caused the error
No response
Steps to reproduce

use /ancient command
See error

(It seems to happen pretty regularly but not every time)
Self-hosted instance?
Yes
Error file

error.txt
Additional context
No response

Is this still happening by chance?

It seems fine now it was just happening for a day or two, so all good I guess.


User Login

@Steven-Chan

app.js will now:
Check if token exist in cookie
Redirect to login if not
Obtain auth code and exchange for token (getToken.js)
Set token as cookie (maxAge - 24hrs)
Redirect to group/:id/jobs
Check and extract cookie (getCookie.js)
Resume get jobs procedures

@Steven-Chan

App will now get cookies using cookies-parser library
Redirect states will now take the entire encoded url instead of just id
config.js takes environment variables. (Updated README instruction)

refs #2