Upgrade k8s dependencies to v1.17.6, controller-runtime to v0.5.3

How to categorize this PR?

/kind enhancement
/priority normal
What this PR does / why we need it:
This PR revendors k8s dependencies with version v0.17.6 (k8s version v1.17.6) and controller-runtime with version v0.5.3.
This contains bug fixes for the controller-runtime cache, which will be required for what I am currently working on.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

The golang Kubernetes dependencies have been upgraded to `v1.17.6`.

What about

Special notes for your reviewer:
I didn't vendor the kubernetes-1.17 sources yet because the controller-runtime is still using kubernetes-1.16. Also, there are two problems that I encountered when trying this:

E1222 18:37:10.871848 66663 dynamic_serving_content.go:164] key failed with : missing content for serving cert "serving-cert::/dev/fd/63::/dev/fd/62"

--> It seems not possible to disable the dynamic serving cert refresh controller for our local developments, so we maybe would have to adopt our hack/start-* scripts.

E1222 18:37:11.229574 66663 reflector.go:156] k8s.io/client-go/informers/factory.go:135: Failed to list *v1.ValidatingWebhookConfiguration: the server could not find the requested resource
E1222 18:37:11.229574 66663 reflector.go:156] k8s.io/client-go/informers/factory.go:135: Failed to list *v1.MutatingWebhookConfiguration: the server could not find the requested resource

--> It seems that k/apiserver now tries to list the webhook configurations in admissionregistration.k8s.io/v1 version which is only served in 1.16+ clusters.
--> We would have to bump the minimum required Garden cluster version from 1.10 to 1.16, pretty steep at this point in time. :(
--> Let's not try to revendor kubernetes-1.17 at this point in time but separately at a later point in time.

?
(ref https://github.com/gardener/gardener/pull/1771)

/hold
until v1.5 is released

As discussed, it's now time to bump the minimum garden cluster version to 1.16. Hence, this PR just needs adaptations in the documentation, a proper release note, plus changes in the garden package that checks the minimum version.

/needs changes
/status author-action
/area open-source

I've updated the PR:

bumped the minimum required garden cluster version (also added release note)
adapted our hack/start-* scripts to copy tls cert and key from the current kubeconfig to a tmp dir and use those files explicitly for the API server's flags
adapted usages of k8s dependencies to signature changes
reworked namespace defaulting in kubernetes.Applier (based on rest mapping, similar to how I did it in https://github.com/gardener/gardener-resource-manager/pull/47)

I hope I've covered all blockers now, PTAL :)

@tim-ebert Label "status" does not exist for this repository.

@tim-ebert Label "topogoly/garden" does not exist for this repository.

/unhold

/needs changes
/status author-action

/remove needs/changes
/remove status/author-action

Sorry @tim-ebert, you need to rebase again :(
/needs rebase

Done.
/remove needs/rebase


Add support for bun in php artisan inertia:start-ssr

maybe make it a config item to choose between node/bun.

This has been added in #552 👍


{Core} Introduce BinaryCache for MSAL HTTP cache

Description
A refinement to https://github.com/Azure/azure-cli/pull/20722.
Instead of dumping MSAL HTTP cache to a file every time Azure CLI exits, MSAL HTTP cache is dumped to a file only when the cache content is changed.
This significantly reduces the number of disk write operations, thus reduces the possibility of encountering a corrupted HTTP cache file (pickle.UnpicklingError, EOFError).
But, the limitation is that this solution only works when MSAL updates the HTTP cache with __setitem__. If MSAL directly edits the content of cache items, the operation will slip under BinaryCache's radar.

MSAL HTTP cache refinement

the limitation is that this solution only works when MSAL updates the HTTP cache with __setitem__. If MSAL directly edits the content of cache items, the operation will slip under BinaryCache's radar.

No worry. I can confirm that only uses methods defined in MutableMapping to change http cache's content. (In fact, I am not aware of any other-than-__setitem__-or-__delitem__ way to directly edit the content of a dict. You might be referring to forcefully reset or replace a mapping, such as old_dict = {"new": "content"}, but that is no longer editing an existing dict. MSAL does not do that, for the exact reason of allowing you to supply your customized mapping.)
I am approving this PR.


CPUAdam fp16 and bf16 support

Hi.
Please review the following changes
I added support for BF16 to cpu adam. BF16, FP16 and float are supported at compilation time. the correct template is called at runtime according to input params dtype.

@BacharL, thanks for this incredible improvement to the offloading optimizers and op builders. I left a few comments and questions, but overall looks good to me.

@tjruwase Thanks for reviewing this change. I have made changes to address your comments.
Now there is no need to pass HALF_DTYPE as compiler define. all functions will be templated according to ds_device_precision_t.
removed all half_precision parameters.

Added templated invoker to help selecting the implementation
The map stores function pointers to templated functions, the key is the type enum. At initialization all supported dtypes are templated and inserted into the map.
I didn't clean ds_adagrad_step_plus_copy and related code under __ENABLE_CUDA__  but also couldn't test it.


Large transaction bundle crashes client

Describe the bug
When sending a large transaction bundle for creation and reviving the the transaction response bundle the client produces a ca.uhn.fhir.rest.client.exceptions.FhirClientConnectionException: Failed to parse response from server when performing POST to URL http://hapi.fhir.org/baseR4?_pretty=true - java.net.SocketTimeoutException: Read timed out
This happens when my bundle has around 400 or more entries.
To Reproduce
Steps to reproduce the behavior:

Create a transaction bundle with a large quantity of entries (Or use this one)
Post the bundle to the HAPI  test server ( http://hapi.fhir.org/baseR4 )
Code used: Bundle outcome = client.transaction().withBundle(bundle).prettyPrint().execute();
Observe the exception being throw.

Expected behavior
No exception being thrown when reviving the transaction response bundle
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

HAPI FHIR Version : 4.1.0
Java version: 13
OS: Windows 10 1809
Browser Google chrome

Additional context

That error just means that the server didn't respond within the configured socket timeout period. You can increase the socket timeout by using the calling ctx.getRestfulClientFactory() and adjusting settings on  that object.
Please comment if this does not address your issue.


GitHubService impl for createRepository may return before the repository is done being created

Make this call block until the repo is done being created in GitHub, else this can lead to race conditions (especially in the tests)

21b9c61


feat: Azure CNI Overlay support for BYO Subnet

Fixes #
Description
This PR adds support for BYO subnet for AzureCNI Overlay Clusters. It removes the instance provider subnetID reference and instead resolves the value from launch template parameters.
How was this change tested?

Additional Test Coverage
make presubmit

Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[ ] No

Release Note

Support for Per Nodeclass BYO Subnet

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

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

Details

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
36284

Relevant Lines:
37110

💛  - Coveralls

WARNING: docker_bridge_cidr is not a known attribute of class <class 'azure.mgmt.containerservice.v2024_01_01.models._models_py3.ContainerServiceNetworkProfile'> and will be ignored
ERROR: (EntityStoreOperationError) Failed to save control plane with ID 66398ca8261b450001b56f69. A database operation failed. Please retry later. If this error persists, contact AKS support.
Code: EntityStoreOperationError
Message: Failed to save control plane with ID 66398ca8261b450001b56f69. A database operation failed. Please retry later. If this error persists, contact AKS support.

Assuming my e2es are failing for unrelated reasons

closing till design is finalized


Zero-initialize bookkeeping variables.

BasicAbstractGame maintains some bookkeeping variables that are set in a game_step. Some of these variables are also used in reset() logic, which results in an uninitialized memory access because no step has yet been performed.

action_vx is used in CoinRun::image_for_type.
step_random_int is used by step_entities, which is called by LeaperGame::game_reset().

Thanks for the PR! closing in favor of https://github.com/openai/procgen/pull/27


Dynamic Forms

As far as I know If I want to model a Form I need to create a reducer for the corresponding form data right. What if I want to create forms dynamically. How do I model the forms without creating the corresponding reducer at runtime?

Have a root form reducer:

const store = createStore(combineReducers({
  forms: formReducer('forms', {}),
});

// alternatively...
const store = createStore(combineForms({}));

Now, all forms, dynamic or otherwise, can live under this single forms form reducer. So if you dynamically create:

<Form model="forms.completelyNew">
...
</Form>

then the form state will be created for you under:
store.getState().forms.completelyNew;

Or if you connect(), just this.props.forms.completelyNew, of course.
Hope that helps!

@davidkpiano Nope it doesn't work.
I take your codepen  and created the store as const store = createStore(combineForms({}), applyMiddleware(thunk));
yes the values are in the states, but the following did not work:
The radios and the checkboxes doesnt work . (cant set a radio nor a checkbox)
and submitting the form return undefined.

Can you post the link to your modified codepen?

Can't fork a private pen
just changed the line :
const store = createStore(combineForms({
  user: initialUserState,
}), applyMiddleware(thunk));

to
const store = createStore(combineForms({}), applyMiddleware(thunk));

Yeah it doesn't work. I tried both the formReducer as well as combineForms, here's the code pen

I updated my answer above: https://github.com/davidkpiano/react-redux-form/issues/525#issuecomment-259126628
Long story short, it doesn't work if you are missing a model reducer. So you can still do dynamic forms, it just needs to be based on an existing model reducer:
const store = createStore(combineReducers({
  forms: formReducer('forms', {
    dynamic: {},
  }),
});

// alternatively...
const store = createStore(combineForms({ dynamic: {} }));

Hopefully that makes sense. Always have at least one model reducer.

I used
const store = createStore(combineForms({ dynamic: {} }));

and it worked like a charm. Thanks

@davidkpiano is the solution you posted here still the correct way to setup react-redux-form with dynamic forms? I'm having a hard time getting it to work with 1.6.0.
I'm share @stunaz's sentiment here:

Coming from redux-form i have a hard time to migrate to rrf especially if i have to declare each form in advance.
and I feel like I'd rather have the declaration of my form, its initial state, etc. all contained within the form component itself.

@lnhrdt Can I see your code please? You do not have to declare each form in advance - it can work dynamically.

@davidkpiano tiny nitpick in your example above. The form model path has to be forms.dynamic.completelyNew instead of dynamic.completelyNew
<Form model="forms.dynamic.completelyNew">
...
</Form>

What if i need dynamic model reducers too?

@davidkpiano I tried as per your instructions to create my store for dynamic forms like this:
const store = createStore(combineReducers({
  forms: formReducer('forms', {
    dynamic: {},
  }),
});

Then, when I create my form <Form model="dynamic.completeNew">, I get this error:
Error: Unable to create Form component. Could not find form for "dynamic.completelyNew" in the store.

This pen reproduces the error. Am I doing something incorrectly?

Try this:
const store = createStore(combineForms({
  dynamic: {}
});

Ideally, you should never need to use formReducer directly.

I might be missing something obvious here. How do I do that when I have my
own reducers that I must combine using combineReducers?

See here: http://davidkpiano.github.io/react-redux-form/docs/api/createForms.html

Ah, thanks. I realized what my mistake was. I was using the word forms as the property name to hold all my dynamic forms, which was probably causing a problem. Changing the name to myForms did the trick.


Regarding, symlink support.

I'm trying to mount a block storage due to low disk space recently, and I tried to use it by linking it using the following command:
ln -s /mnt/d/_media/catalog/product /var/www/magento/pub/media/catalog/

However, It appears that the module does not support symlinks. When I attempted to delete it by typing 'y', all deletion paths were skipped.

It would be great if symbolic links were supported.

I realized that the idea violates Magento framework's media directory management approach.


feat: add exposed secret crd

Signed-off-by: Jose Donizetti<EMAIL_ADDRESS>Description
Adds ExposedSecrets support on container images. To avoid recreating jobs for the same workload, the PR uses the existing vulnerability controller implementation to also support exposed secrets. The implementation is working, tested and documented. Though I think we should refactor this in a following PR (this one is huge already), to extract the vulnerabilityreport/controller to workload/controller, the code would be the same, but it would be more meaningful to have a workloadcontroller who creates reports for both vulnerability and exposedsecrets using pkg/vulnerabilityreport and `pkg/exposedsecretreport.  Also, I chose not to support TTL for exposedsecrets on this PR and will implement it on a differrent PR.
Related issues

Close https://github.com/aquasecurity/trivy-operator/issues/64

Remove this section if you don't have related PRs.
Checklist

[x] I've read the guidelines for contributing to this repository.
[x] I've added tests that prove my fix is effective or that my feature works.
[x] I've updated the documentation with the relevant information (if needed).
[x] I've added usage information (if the PR introduces new options)

@josedonizetti looking good , added few small commments


[Bug]: Admin must be able to activate user after the fact

Preflight Checklist

[X] I could not find a solution in the documentation, the existing issues or discussions
[X] I have joined the ZITADEL chat

Environment
Self-hosted
Version
2.38.1
Describe the problem caused by this bug
As an admin I can create a new user in 2 ways.

Fully Active
pre-select email verified and set initial password
All good, user ready to go

Not active
In this case I do not pre-select email verified and set initial password

As an admin, I should be able to now go to this user and do the following;
a. add and verify an email
b. set a new password that isn't required to be changed.
After this is done the user must be the Active state as if I had initially added them in step 1.

Also, I must be able to achieve the same via api calls.
I can also get myself into another odd state.

The user has been verified and active with a good email.
User changes their email to<EMAIL_ADDRESS>
Now in the admin panel I can verify the non-existent email all because the state of the user is Active.

To reproduce
Above
Screenshots

Expected behavior
No response
Operating System
Docker
Relevant Configuration
No response
Additional Context
No response

Hei @ghstahl
I think what you are trying to achieve is already possible trhough the apis.
With the requests: https://zitadel.com/docs/apis/resources/mgmt/management-service-import-human-user
You can set the email to verified, set a password, and set that it shouldn't be changed

We may have an api bug then. I cannot set the users email to verified after the fact using set email api. I get an error saying the user is not active.
If I call the import user api I have to have set the email verified to true. If I mess that up my only choice is to delete the user and add them with all the right settings.

Ah sorry I missunderstood. I thought you meant to do it in one call.
Yes you are right at the moment the email has to be verified first, otherwise the user is in an initial state, where nothing can be done.
We do want to change that behaviour and will do so with the new api. We already got rid of the initial state with the new users service api.

@ghstahl
Hi, did you tried it already with the new API https://zitadel.com/docs/apis/resources/user_service/user-service-add-human-user?


Result not panic on Uint128 underflow

Some more code that got thrown away with the add-wallet-type branch. Improvements in how we handle underflow, returning an explicit Result rather than panic, as an underflow is a normal occurrance (not enough balance to transfer)

Okay, made requested updates.


Central curated Database

Hello,
We would like to know if there is an already existing central curated database present in opensource, which i can already use and integrate with my ORT setup.
Looking forward to hearing from you.
Thanks in advance

Among the supported package curation providers are ORT's own "database" (in the form of a Git repository), as well as ClearlyDefined that you could both use (also in parallel).


Support build tool integration

Ideally, we would like to automatically discover executables for tests with Bazel, CMake, and Conan.
For CMake cmake-tools.nvim may be useful.

Agreed with this. It's confusing that a manual rebuild is needed to actually get an updated result of the test.

There is https://github.com/hfn92/cmake-gtest.nvim which does achieve running Gtest tests by querying for the correct executables using cmake-tools.nvim. Maybe it could be used as a starting point on how to retrieve the required information from the cmake-tools plugin.

Indeed, this would be much appreciated.

For me, this is a bit of a show stopper. I work with very large code bases where this causes two problems:

It's quite cumbersome to point to the correct executables.
I only build tests for the parts of the code I am working on. With the current version of the repo, the test summary will be populated with hundreds of tests, most of which I do not care about. With it being so cluttered up, it's almost impossible to use. So it would be amazing, if only tests show up, where the corresponding executable is found.

Since I am very interested in a solution (everything else works flawlessly!) I'd try and give it a shot myself. This one might be a bit beyond my capabilities though, so if you could give some hints/pointers/ideas on how to approach it, that would be much appreciated.

Hey @ll-nick, assuming your build tool is CMake, you can use cmake-tools.nvim to integrate; I did this MR some time ago and it was recently merged, which should allow you to use the lua API. You will have to convert this API to coroutines for use with nio, see how they do it here via task.wrap. While I was working on it, there were a lot of rough edges in the plugin, stemming mainly from the lack of tests, so if your subset of the API ends up being small, you can use CMake API directly as a last resort.
Then you can write a couple of exploration unit tests for the functionality you would need in CMake (that is: find a target by source file; find a target by executable; recompile a target), and add those in the correct path.
When discovering executables, before prompting the user, you can query CMake first if there's a CMakeLists.txt and use that as the default mapping from files to executables. For the first iteration you can probably ignore ambiguities (if a file belongs to multiple CMake targets).
Recompiling should be the easier part as there's less logic to do; once you know the executable you're going to run, you can unconditionally recompile the relevant target. CMake does incremental compilation for you so even if no changes occurred this is quite fast.
If your tool is Bazel or Mason or anything else, I'm afraid I can't help much. I assume they have some kind of API, but I don't know of lua wrappers for them.
Lately it's very hard to find the time for this, so if you have the time and the desire to work on this I'd be more than happy to review a PR.

Sorry, forgot to mention that. Yes, CMake it is!
Thanks a lot for your response. Time is always hard to come by but I will see what I can do.

This issue I'm not sure I fully understand; shouldn't tests from other folders be collapsed in the summary? Unless all your tests are in the same folder I think it should be easy to navigate, unless I'm missing something.

You're right, there may be a way to filter some tests using neotest directly, I'll look into that.
For some more context: I work with ROS where you basically work with a bunch of CMake projects ("packages") in one so called workspace. Usually, you only work on a hand full of packages directly (hence are interested in the tests) but the workspaces I am working on might contain several hundred of these packages. So even if all folders are collapsed, these might still be in the triple-digits.
Setting some kind of test root directory might fix that issue though, thanks for the suggestion :)

Just wanted to give a brief update on this, maybe someone else might also be interested in moving this along. I'm still getting into the whole lua thing and it still feels like I have no clue what I am doing :sweat_smile: . Nevertheless,  I did manage to get automatic test discovery working on my fork using this simple function in the ExecutablesRegistry class:
function ExecutablesRegistry:discover_cmake_executables()
  local model_info = cmake_tools.get_model_info()
  local build_dir = utils.normalize_path(tostring(cmake_tools.get_build_directory()))

  for _, target_info in pairs(model_info) do
    if target_info.type == "EXECUTABLE" then
      local executable_path_relative = target_info.artifacts[1].path
      local executable_path = build_dir .. lib.files.sep .. executable_path_relative
      for _, source in ipairs(target_info.sources) do
        if config.is_test_file(source.path) then
          local source_path = utils.normalize_path(source.path)
          self._node2executable[source_path] = executable_path
        end
      end
    end
  end
end

So I guess the next steps include making this an async function as you mentioned above and keeping up with your impressive test coverage.

Hi @ll-nick , yes I think the process makes sense generally, little details can be figured out after the fact.
One potential source of trouble to look out for is the current cmake directory; likely some switching would have to take place to allow multiple contexts (i.e., something like old_root = cmake.get_directory(); cmake.set_directory(tests_root); do_stuff(); cmake.set_directory(old_root)). I remember I spent some time ironing that out before giving up 😅


Feature request: syntax highlighting for Adept

References:
https://github.com/IsaacShelton/AdeptVSCode
https://github.com/AdeptLanguage/AdeptSublimeText
https://github.com/IsaacShelton/AdeptVim
https://github.com/iahung2/adept.geany.syntaxcoloring

Issues are only closed after the bug-fix or feature are released in a stable release.


Further questions on the attention kernels

Does the generation-phase kernel (decoderMaskedMultiheadAttention) support query length > 1 (e.g., the query has a logical shape of (bs=8, head=8, q_len=32, hed_dim=64))?

As far as I know, for the GPT inference scenario, q_len is always 1 in the generation phase.
However, my hacking needs to cope with q_len > 1. Is the generation-phase kernel general, like FlashDecoding, or specialized for q_len=1?
If the generation-phase kernel does not support q_len > 1, can you give some suggestions for my hacking?

It seems that the context-phase kernel (contextFusedMultiHeadAttention) is provided with binary code. This makes it not hackable. Could you let me know if you're going to release the source code in the near future?

Related issue: https://github.com/NVIDIA/TensorRT-LLM/issues/457

It seems that the multi-block mode part of the decoderMaskedMultiheadAttention kernel is actively worked on as there are changes in tho previous updates

https://github.com/NVIDIA/TensorRT-LLM/pull/613/files#diff-a0fc455396e3396bcedc04686d26721ec0a84218c3c264c072aeb7f7f706e08e
https://github.com/NVIDIA/TensorRT-LLM/pull/667/files#diff-a0fc455396e3396bcedc04686d26721ec0a84218c3c264c072aeb7f7f706e08e

Are its results more stable now ? What have you observed ?

@YavorGIvanov
in terms of stability of the multi-block mode, we have fixed several bugs related to that, so definitely try out the latest main branch if you meet accuracy issues due to that. We have seen no accuracy drop even with up to 32K sequence length (llama 70B) with the recent fix in the main branch. Let me know if you severe accuracy drop with multi-block mode.

@rayleizhu answer you questions,

it doesn't support query length > 1 explicitly. As a workaround, you can take this case as GQA (group query attention) where multiple q heads (i.e. query length in your case) share the same kv heads. And that is supported by the MMHA kernel.  At the same time, we have another optimized kernel for GQA, and you can take a look at here to see if your case is supported. If not, you can fall back to the MMHA kernel.
there is no plan to release the source code currently.

For 1.
if I have say 3 input prompts of 100 tokens and 32 heads with 64 dim per head (2048 hidden dimension) then what would be the appropriate values for these parameters if I was to use GQA (Group Querry Attention) by the MMHA kernel for:

stride
batch_size
num_heads
num_kv_heads

The QKV buffer is linear and is [300, 6144]
I tried using stride 0, batch_size 3, num_heads 3200 = 32 * 100, num_kv_heads 32, sequence_length 1 (Can't be 0 as you subtract 1 in the kernel)
With stride 0 the q_stride in the kernel is calculated by 32 * 64 = 2048, however as the buffer is linear shouldn't it actually be 2048 * 3 ?
I am misunderstanding something and I can't find an example of GQA with the MMHA kernel as the XQA is used in the gptAttentionPlugin.

after rethinking, directly using MMHA kernels is not goitng  to work as we assume key/value length is 1 for the new tokens.
you have to add another loop in this part to read more than one key/value tokens.
XQA won't work for the same reason. We are working on supporting that feature with XQA.

I have one additional question about the MMHA kernel.
Does it support decoding a batch with input prompts, which have different lengths ? I know it isn't used for query length > 1, but I am trying to process the input prompts (context step) with different kernel and then use the MMHA kernel as part of decoding the next single tokens. I see that the "input_lengths" parameter is only used for beam searching and the "lengths_per_sample" is expected to be "max_input_length + current output length", so if we have two input prompts (e.g. one with length 20 and another with length 100)  and I provide "lengths_per_samples" containing [101, 101], how will it know that in the KV cache on the batches has only 20 token entries and another has 100 ?

Does it support decoding a batch with input prompts, which have different lengths ? I know it isn't used for query length > 1, but I am trying to process the input prompts (context step) with different kernel and then use the MMHA kernel as part of decoding the next single tokens.

Yes, it has been supported since the first release of TRT-LLM, and it is implemented based on the length_per_sample.

I see that the "input_lengths" parameter is only used for beam searching and the "lengths_per_sample" is expected to be "max_input_length + current output length", so if we have two input prompts (e.g. one with length 20 and another with length 100)  and I provide "lengths_per_samples" containing [101, 101], how will it know that in the KV cache for one the batches there is only 20 token entries and for the other there is 100 ?

lengths_per_sample = actual_input_length + current_output_length.  actual_input_length can be variable across sequences in one batch while current_output_length should be the same for all sequences.

That was very useful. Thank you for you work and help. 🙏🏻

This is the comment that misled me

Thanks. I will modify that comment.


Don't blur text on idling or double-clicking

After about a minute of doing nothing, ttu blurs the screen's text. For slow readers like me, this is rather annoying; I'd like to be able to just read the text at my own pace, without having to touch anything. I can understand if it's intended to hide the text from others; in that case, adding a setting allowing you to change the time limit or disable it would be good.
A much bigger issue I have is blurring on double-click. Aside from being entirely counter to my unconscious habit of selecting text,

it's very annoying when I want to purposefully select a part of a line to focus my thinking on. I would rather replace this with a toggle button, possibly in the top bar.

Hi,
the reader does not blur any text in any form. My guess is you are using exstatic in parallel which is exactly doing what you have described.
Therefore i can only forward you to their repository as this is not caused by out of the box functionality

Sorry about that. You're right, I had Exstatic installed. I had no idea Exstatic touched ttu in any way. I assumed it was strictly a VN tool.


revise TLS handling

ARM used variant 1 of the TLS handling (see https://uclibc.org/docs/tls.pdf)
the previous version doesn't work correctly
using an unsized struct to implement TLS like a C kernel

@mkroening We should discuss it in our next meeting. I need this PR to extend the aarch64 support.

bors r+


Add url parameter to change phraseapp endpoint

Background
Phraseapp API has rate limit and with the amount of service at mytaxi we are
getting 426 Too many request very frequently
Goal
Allow to change API endpoint so we can use phraseapp API proxy

@forcha Tests don't pass :)

It's falling because phrase-java-client has not been released to the public yet.


SYMFONY_DEPRECATIONS_HELPER=weak not needed anymore and travis

All deprecations are now managed.

Well, seems not. Strange.
Keep this PR open. We can merged once it will be resolved.

This should be green now. :+1:

All good!


Add support for binary file format

As reading the binary file is almost certainly going to be faster than parsing the text formats, especially the XML format, probably worth investigating adding a binary parser.
http://www.angelcode.com/products/bmfont/doc/file_format.html#bin
Format doesn't look too bad, although there's 3 different versions - either only support the third, or find older versions of the program to generate older formats.
Definitely needs tests adding if going to add binary support.

Done via #17


Fix assetHost CDN feature [from Frank Hinek]

@sandinmyjoints
Brings over the work by @frankhinek in fixing #4.
How to test

set up a local link to this module, like in #7
Upload an image
You should see a link like https://s3.amazonaws.com/...
Change the src of that image in the markdown to /blog/content/images/...
It should still serve

LGTM!


How to use a tar.gz as a dep in another project

I managed to build a tar.gz of a module using pygradle, and am now wanting to import it into another project and use it.
My gradle file has the following dependency from the tar.gz created before:
dependencies {
    python 'pypi:requests:2.9.1'
    python 'com.myawesomedomain.pyexample:helloworld:0.0.1' // My module
    test 'pypi:mock:1.3.0'
}

and the setup.py has the following setup portion:
setup(
    distclass=GradleDistribution,
    package_dir={'': 'src'},
    packages=find_packages('src'),
    include_package_data=True,
    entry_points={
        'console_scripts': [
            'import_example = import_example.run:main',
        ]
    }
)

However, when I build, all I get is another build/distributions/import_example-0.0.1.tar.gz which doesn't seem to contain the original helloworld-0.0.1.tar.gz package anywhere.
I do see the helloworld packages in build/venv/lib/python2.7/site-packages/helloworld, but that doesn't help with creating a publishable artifact since venv isn't a package.
Looking at the example projects provided, I get the impression that I was supposed to get a build/deployable artifact which might be what I am missing.
Also, how am I supposed to run this with the entry point?  I thought it might be ./activate import_example but that clearly isn't it.
Also when I get the following errors when I try to run ./build/venv/bin/import_example
Traceback (most recent call last):
  File "./build/venv/bin/import_example", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/mnt/c/Users/myuser/Documents/dev/pyexample_import/build/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3138, in <module>
    @_call_aside
  File "/mnt/c/Users/myuser/Documents/dev/pyexample_import/build/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3124, in _call_aside
    f(*args, **kwargs)
  File "/mnt/c/Users/myuser/Documents/dev/pyexample_import/build/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3151, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/mnt/c/Users/myuser/Documents/dev/pyexample_import/build/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 661, in _build_master
    ws.require(__requires__)
  File "/mnt/c/Users/myuser/Documents/dev/pyexample_import/build/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 962, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/mnt/c/Users/myuser/Documents/dev/pyexample_import/build/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 849, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'helloworld' distribution was not found and is required by import-example

If I understand correctly, you made a library that other Python packages will depend on named helloworld. You probably used ...-sdist plugin and that produced a source distribution tarball (package) for helloworld. Other Python packages can depend on it and use it.
If you want to make an executable though, then you would use one of the other plugins, such as ...-cli or ...-web-app. In that case every entry point in your project will produce an executable referring to a PEX file (container) with your package and all its dependencies packed together. Thus, when you execute any of these, they'll be able to run and use all their dependencies independent of other Python programs. In other words, they can be shipped to any host that has Python interpreter and run. The ...-cli is intended for command-line programs and ...-web-app for apps.
Another interesting plugin is ...-pex which allows you to produce a single executable that can still be consumed similar to a library by non-Python applications that need a Python program to run integration tests, deployment hooks, etc. This is where Gradle comes in handy allowing polyglot programming.
Notice that if the package that depends on helloworld is also a library and uses ...-sdist plugin, it would again produce just a source tarball (that's what you got it seems with import_example), but it would contain helloworld in its dependencies in package metadata. So if another package now depended on it, it would pull in import_example as direct dependency and helloworld as a transitive dependency. So both of your libraries would be correctly included. The transitive dependency could be resolved through Ivy data for the artifact by Gradle, and through Python package metadata in a pure Python build environment. In other words, libraries are completely usable outside of Gradle/pygradle. Of course, some way of hosting them through Python package index would have to be provided in that case.
Let me know if I made any incorrect assumptions about your use case.

Okay.  You have definitely corrected a mistake of mine.  I indeed was using ...-sdist for what I intended to be an executable.  So, I made the change to ...-cli and tried to gradle build but am getting this error:
> Task :buildPex
Processing /mnt/c/Users/myuser/Documents/dev/pyexample_import
Building wheels for collected packages: import-example
  Running setup.py bdist_wheel for import-example
  Stored in directory: /mnt/c/Users/myuser/Documents/dev/pyexample_import/build/wheel-cache
Successfully built import-example
/mnt/c/Users/myuser/Documents/dev/pyexample_import/build/deployable/bin/import_example.pex
Could not satisfy all requirements for helloworld:
    helloworld(from: import-example)

Just to be sure I am organizing things correctly,
The file structure of the helloworld-0.0.1.tar.gz library is:
.
├── build.gradle
├── pinned.txt
├── PKG-INFO
├── README.md
├── settings.gradle
├── setup.cfg
├── setup.py
├── src
│   ├── helloworld
│   │   ├── __init__.py
│   │   └── main.py
│   └── helloworld.egg-info
│       ├── dependency_links.txt
│       ├── PKG-INFO
│       ├── requires.txt
│       ├── SOURCES.txt
│       └── top_level.txt
└── test
    └── test_example.py

Where ./src/helloworld/main.py is simply:
class Hello:
    def __init__(self):
        print("Hello World.")

    def greet(self):
        print("It is a pleasure to meet you.")

Then inside pyexample_import, the entry point ./src/import_example/run.py is:
from helloworld.main import Hello

def main():
    print("Running main with Hello dep")
    hello = Hello()
    hello.greet()

if __name__ == '__main__':
    print("This is not printed when run with PEX ...")
    main()

I am simply trying to import the helloworld library module Hello from the import_example executable, but seems something else is wrong.


Wrong entity mapping when multiple entities have the same name

Hello, thank you for this awesome library. I am currently seeing an issue while using the SharePoint OData service. SharePoint has multiple entities with the same name. For example (this is copied directly from sharepoint odata metadata endpoint):
<EntityType Name="Folder"> with <EntitySet Name="Folders1" EntityType="SP.Folder"/>
<EntityType Name="Folder" BaseType="MS.FileServices.FileSystemItem"> with <EntitySet Name="Folders" EntityType="MS.FileServices.Folder"/>.

When using Simple OData Client .For method and specifying "Folder" collection name it will pick the MS.FileServices.Folder but I want the simple SP.Folder entity. Specifying the entity set name "Folders1" makes the client to choose the right entity but then it generates a wrong url with "folders1" in url instead of simple "folders".
Am I missing something or is this a bug ?

I think it's a bug, but it also may be down to your client model which would need separate types to represent the different Folder implementations.
At the moment the INameMatchResolver does not take namespace into account as it typically differs between server and client models, so we would probably need to enhance this as well to cope


/var/bluesky/proxy-config

/var/bluesky/bluesky.sh: line 326: /var/bluesky/proxy-config: Bad CPU type in executable

previously resolved


[WIP] Experimental replacement of the custom ScrollView with FlatList/SectionList

This is experimental at this point.
We need to evaluate SectionList as replacement of our custom ScrollView (which currently has several issues on Android).
While we don't need to replace it urgently (maybe we do, since Android has issues) it is good to know if everything works and if not give feedback to the react-native team.

Automated message from Dropbox CLA bot
@borisyankov, it looks like you've already signed the Dropbox CLA. Thanks!

We still need custom modifications to handle two-way infinite scrolling

Check this out. Maybe it will help you.
http://stackoverflow.com/questions/43858585/two-way-infinite-scroll-react-native
If you have to modify the react component, please don't do it with native code.

@neerajwahi the virtual list view concept is quite perfect for that though, because we can have the item list recalculate-able, it is the perfect paradigm for our use case.
I am more than convinced that this is ideal for us, my only reservations are that there might be some missing features we might need (likely very few).

I don't think that a virtual list solves the issue (although I'm happy to be proven wrong).
Imagine that you're scrolling up toward the top of the list (scrollOffset approaching 0). You fetch more data (which renders with height h) and prepend it to the top of the list. Now you have to bump scrollOffset from 0 to h, but if you make that change in Javascript it happens asynchronously and there will be a flicker during the delay from when you set scrollOffset in the JS thread and when it actually gets updated in the native ScrollView. This flicker makes the app look and behave really janky.
One option I have considered is using the Native Animation API but that doesn't support scroll offset as far as I'm aware.
This is why we have made custom modifications to the native scroll component.


Fix ZIF_ABAPGIT_OBJECT~EXISTS methods

EXISTS needs to check for any version of an object - active, inactive, or new. Fix object classes that check only for active version.
Closes https://github.com/abapGit/abapGit/issues/3964

can you help adding a note in https://docs.abapgit.org/development/serializers.html, that EXISTS should also check for inactive?

See https://github.com/abapGit/abapGit/pull/3972


[AutoPR consumption/resource-manager] typo: consumption/resource-manager/Microsoft.Consumption

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/5458

This PR has been merged into https://github.com/Azure/azure-sdk-for-js/pull/1778


Bug (logger): xray_trace_id is not populated in log lines

Bug description

According to documentation, the xray_trace_id should be emitted in all log lines if the request is traced. However, I'm not seeing any setting of that field in my logs despite the REPORT log line showing the request is traced.

Expected Behavior

All log lines to have xray_trace_id populated if the request is traced (as confirmed by REPORT line).
Current Behavior

No log lines showing the xray_trace_id.
Possible Solution

I've read a little bit in the code in Logger.ts and I suspect that xRayTraceId is set only once at Logger construction time.
The traceId is read via an environment variable that'll change for each different request. As such, I think a possible solution is to leverage addContext to also set that value when calling this.addToPowertoolLogData
The actual behaviour I've seen is that xray_trace_id is not being written to the logs. If my understanding is correct, I believe this issue can be manifested in 1 of 2 ways

The one observed i.e. lack of xray_trace_id which is likely to happen if the first request is not traced (i.e. cold start request). In this case all subsequent requests will not have the field
Wrong xray_trace_id (not observed) if the first request is traced and the environment variables is read and the field is set in Logger's state but subsequent requests will not update that value.

Steps to Reproduce
For a handler looking like
export const handler = middy(vanillaHandler)
  .use(captureLambdaHandler(tracer))
  .use(logMetrics(metrics))
  .use(injectLambdaContext(logger)),

Invoke the function multiple times
Inspect the log lines looking for xray_trace_id in the different requests (especially those where REPORT line indicates request is traced)

xray_trace_id is missing
Environment

Powertools version used: 0.8.0
Packaging format (Layers, npm): npm
AWS Lambda function runtime: Node.js 14.x
Debugging logs:

Related issues, RFCs

N/A

Hello @humanzz, thanks for opening this issue.
I made a couple of tests and was able to reproduce the behaviour you describe also in the latest version (v 0.8.1) - see screenshot below in which tracing is enabled and both executions were sampled (no xray_trace_id present):

We will be looking at a fix for this.

After a closer look I just realised that it's not possible to piggy back on addContext like suggested by OP. We can guarantee that the addContext function is ran only when Logger is used with decorators and middleware, while when running in manual mode the function has to be called explicitly by customers.
The above would contradict with the statement (docs) that xray_trace_id is part of the standard structured keys.
Will be looking at alternatives.

A fix is available in #776, it will be most probably included in one of the next two releases based on time needed for review & merge.

Thanks @dreamorosi, really appreciate the prompt action. I'll keep an eye for the upcoming releases


[css] accept selectors in ::slotted()

VSCode Version: v1.16.1
OS Version: macOS Sierra v10.12.6

Reproduces without extensions: Yes

Steps to Reproduce:

For example, write the next valid code in a CSS language mode:

::slotted(div:hover) {
  color: red;
}

See the alerts.

Reference: https://github.com/w3c/webcomponents/issues/655

Please understand that we might wait until it is supported by the majority of browsers

Curiously, the tree-abiding pseudos (::before, ::after, ::marker, and ::placeholder) are supported. They go after ::slotted().


Port linearize_gencost and pmin modifications from REISE.jl

Purpose
To facilitate using a grid.pkl and remove the need for mapping between a case.mat/grid.mat/etc, we move grid modifications previously done in REISE.jl to the scenario preparation process.
This PR should be merged at the same time as https://github.com/Breakthrough-Energy/REISE.jl/pull/187, after which we should update the existing grid.mat files. I believe we also need to update the ramp30 values in plant.csv as discussed in this issue https://github.com/Breakthrough-Energy/PowerSimData/issues/680 and release a new dataset on zenodo.
What the code is doing
Scale plant Pmin values and linearize cost curves the same way we were doing in REISE.jl - after we apply the change table, and just before we upload the grid.pkl to the server (or, container, or wherever). I also ported the linearize_gencost tests from julia since those will be unused/deleted.
Testing
Ran a scenario in a container and reloaded it after it finished for some cursory spot checking.
Time estimate
20 min

Is powersimdata/design/generation/ a good location for the cost_curves module? Should we move it in powersimdata/scenario/ or powersimdata/input/? What do you think @BainanXia?

Is powersimdata/design/generation/ a good location for the cost_curves module? Should we move it in powersimdata/scenario/ or powersimdata/input/? What do you think @BainanXia?

I agree. The original idea of design module is a place for functions that are optionally used in the scenario workflow. However, linearization is essential given the engine can't deal with quadratic cost curves (at least for now) and similarly for the ramp module in the future. Thus we can create a new module in powersimdata/scenario/. Not sure what is a good name for it, maybe configure?

I agree. The original idea of design module is a place for functions that are optionally used in the scenario workflow. However, linearization is essential given the engine can't deal with quadratic cost curves (at least for now) and similarly for the ramp module in the future. Thus we can create a new module in powersimdata/scenario/. Not sure what is a good name for it, maybe configure?

Is the ramp module essential? Especially once (if?) plant.csv gets updated, I'm not sure we would need the ramp-rate correction anymore.

I agree. The original idea of design module is a place for functions that are optionally used in the scenario workflow. However, linearization is essential given the engine can't deal with quadratic cost curves (at least for now) and similarly for the ramp module in the future. Thus we can create a new module in powersimdata/scenario/. Not sure what is a good name for it, maybe configure?

Is the ramp module essential? Especially once (if?) plant.csv gets updated, I'm not sure we would need the ramp-rate correction anymore.

We will need that when scaling existing plants as well as adding new plants without specifying ramp rates.

Is powersimdata/design/generation/ a good location for the cost_curves module? Should we move it in powersimdata/scenario/ or powersimdata/input/? What do you think @BainanXia?

I agree. The original idea of design module is a place for functions that are optionally used in the scenario workflow. However, linearization is essential given the engine can't deal with quadratic cost curves (at least for now) and similarly for the ramp module in the future. Thus we can create a new module in powersimdata/scenario/. Not sure what is a good name for it, maybe configure?

It can be done in a separate PR. I am fine with having the linearize_gencost function in a new powersimdata.scenario.configure. We could have the ramp rate setting there too. Or we could have a linearize_cost_curve module and a assign_ramp_rate modules in powersimdata.input. Hat is your opinion @jenhagg?

Is powersimdata/design/generation/ a good location for the cost_curves module? Should we move it in powersimdata/scenario/ or powersimdata/input/? What do you think @BainanXia?

I agree. The original idea of design module is a place for functions that are optionally used in the scenario workflow. However, linearization is essential given the engine can't deal with quadratic cost curves (at least for now) and similarly for the ramp module in the future. Thus we can create a new module in powersimdata/scenario/. Not sure what is a good name for it, maybe configure?

It can be done in a separate PR. I am fine with having the linearize_gencost function in a new powersimdata.scenario.configure. We could have the ramp rate setting there too. Or we could have a linearize_cost_curve module and a assign_ramp_rate modules in powersimdata.input. Hat is your opinion @jenhagg?

Based on the current package structure, I think having those in powersimdata.input makes sense, although the distinction between input and design isn't super clear to me. I'm fine with either option; there is always the possibility of reorganizing in the future.


feat: support for highlight a "Note" and "Warning" using blockquote

Hello!
I'm writing here as a possible new idea/feature to be considered
I noticed that the GitHub markdown supports highlighting blockquotes with specific prefixes like [!NOTE] or [!TIP] and rendering this differently.
https://github.com/orgs/community/discussions/16925
Do you think would be possible to add a similar styling feature to have more immersive behavior to the GitHub pages?
BTW great work! I really enjoy using this markdown previewer before I push things to repo!

I don't think markdown-rs supports that, but I wanted to migrate to pulldown-cmark which does. Pulldown-cmark will also allow us to have links in headers and generating table of contents.


Configuration via annotations

Resolves #44.
Rule configuration may be overridden by annotations on individual pods. For single-value rules, the configured rule value will be replaced by the annotation value. For multi-value rules, annotations will be added to the configured rule values. See Implemented Rules for available annotations.
For backwards compatibility and minimum possible side effects, I opted to load configured rules as usual. I added a RULES environment variable to load rules explicitly without a configuration. See RULES. I'm open to other ideas for how to load rules, but this was the quickest way forward. There was some discussion in https://github.com/target/pod-reaper/issues/44#issuecomment-585992088 on this.
Example:
This configuration will load the Unready rule with 5m duration and the Duration rule with no configuration. Only pods decorated with pod-reaper/max-duration will be reaped by the Duration rule.
MAX_UNREADY=5m
RULES=duration,unready

I'm looking at #45 and wondering why I didn't merge that... I think it was from lack of a code review.
That change is definitely less simple, but after it's made... I think there could be a really clean way forward with this. It'd be an alternate approach (basically skipping loading all together).
Every way I look at this I see crazy edge cases, which makes me really apprehensive. But I think I'm going to take a stab at what it might look like off of #45 (I try stuff like this a lot, and most of it I just throw out!)

I'm looking at #45 and wondering why I didn't merge that... I think it was from lack of a code review.
That change is definitely less simple, but after it's made... I think there could be a really clean way forward with this. It'd be an alternate approach (basically skipping loading all together).
Every way I look at this I see crazy edge cases, which makes me really apprehensive. But I think I'm going to take a stab at what it might look like off of #45 (I try stuff like this a lot, and most of it I just throw out!)

I had to make one change after live testing. If any rule's ShouldReap() returns true, the pod will be reaped. This is a potentially breaking change, but the way I expected pod-reaper to work from documentation. I recalled the discussion in https://github.com/target/pod-reaper/issues/44#issuecomment-586729946 about returning multiple results from ShouldReap.

I had to make one change after live testing. If any rule's ShouldReap() returns true, the pod will be reaped. This is a potentially breaking change, but the way I expected pod-reaper to work from documentation. I recalled the discussion in https://github.com/target/pod-reaper/issues/44#issuecomment-586729946 about returning multiple results from ShouldReap.

I like where #45 was going. I had hoped to start with it, but I had an immediate need, so I started with master. I'd be happy to refactor this.
It would be nice to merge #50 as well. I think automated end-to-end tests would really increase the confidence when merging large changes.

I like where #45 was going. I had hoped to start with it, but I had an immediate need, so I started with master. I'd be happy to refactor this.
It would be nice to merge #50 as well. I think automated end-to-end tests would really increase the confidence when merging large changes.

pushed up a container image: brianberzins/pod-reaper:alpha-annotation-0121-1
This was based off #45 and has an environment variable called HONOR_ANNOTATIONS that, when set to true (or anything https://golang.org/pkg/strconv/#ParseBool accepts as true) will attempt to honor annotations.
I have some higher level functional tests that I still need to run, but I might not be able to get to that tonight.

pushed up a container image: brianberzins/pod-reaper:alpha-annotation-0121-1
This was based off #45 and has an environment variable called HONOR_ANNOTATIONS that, when set to true (or anything https://golang.org/pkg/strconv/#ParseBool accepts as true) will attempt to honor annotations.
I have some higher level functional tests that I still need to run, but I might not be able to get to that tonight.

The HONOR_ANNOTATIONS setting is unnecessary. Any rule loaded with a default will use the default if the pod is not annotated. In other words, behavior will be exactly the same as it is today.

The HONOR_ANNOTATIONS setting is unnecessary. Any rule loaded with a default will use the default if the pod is not annotated. In other words, behavior will be exactly the same as it is today.

I think I figured out why I'm having a hard time with this one... Not from a difficulty to implement perspective, but from a product perspective: the complexity of this feature is higher than anything I every thought pod-reaper would do...
Each time I try to implement this, I end up with something that works for most cases, but there always seems to be one that doesn't fit.

What does this change mean for someone that is managing the pod-reaper?
What does this change mean for someone managing a pod that is within the sight of the reaper?
What if those people are the same, different, or completely unaware of each-other?

If pod annotations aren't opt-in, then the manager of the reaper won't know (outside of logs and a lot of manual comparing) what's being overridden. This would be true for the very first use case of pod-reaper. It was originally designed to cleanup CI jobs running on a shared cluster when they were taking way to long or got stuck in an crash loop. In that case, we did not want anyone to every be able to override it.
But I think there's a more fundamental disagreement with allowing annotations to override. It just splits who's responsible for what. In some cases, the configuration is annotations, the other it's in the environment of the reaper. So when we're using annotations, there are the following things that have to considered for at least 1 (but probably more) rules:

the configuration of the reaper
the configuration of the pod
which one should take precedence (because there are use cases for both)
whether or not the pod actually meets the criteria.

I guess, in my head, this is the feature that crossed the line of "simple" to "complex" -- which brings me to another... not great point. It very much looks like I'm the only one maintaining this... and I honestly don't use it my day to day anymore. Changes in jobs has me predominantly working with teams that are behind on the kubernetes adoption train. That's leaving me feeling more and more like I don't have "skin in this game" and shouldn't be making the product level decisions anyway :(

I think I figured out why I'm having a hard time with this one... Not from a difficulty to implement perspective, but from a product perspective: the complexity of this feature is higher than anything I every thought pod-reaper would do...
Each time I try to implement this, I end up with something that works for most cases, but there always seems to be one that doesn't fit.

What does this change mean for someone that is managing the pod-reaper?
What does this change mean for someone managing a pod that is within the sight of the reaper?
What if those people are the same, different, or completely unaware of each-other?

If pod annotations aren't opt-in, then the manager of the reaper won't know (outside of logs and a lot of manual comparing) what's being overridden. This would be true for the very first use case of pod-reaper. It was originally designed to cleanup CI jobs running on a shared cluster when they were taking way to long or got stuck in an crash loop. In that case, we did not want anyone to every be able to override it.
But I think there's a more fundamental disagreement with allowing annotations to override. It just splits who's responsible for what. In some cases, the configuration is annotations, the other it's in the environment of the reaper. So when we're using annotations, there are the following things that have to considered for at least 1 (but probably more) rules:

the configuration of the reaper
the configuration of the pod
which one should take precedence (because there are use cases for both)
whether or not the pod actually meets the criteria.

I guess, in my head, this is the feature that crossed the line of "simple" to "complex" -- which brings me to another... not great point. It very much looks like I'm the only one maintaining this... and I honestly don't use it my day to day anymore. Changes in jobs has me predominantly working with teams that are behind on the kubernetes adoption train. That's leaving me feeling more and more like I don't have "skin in this game" and shouldn't be making the product level decisions anyway :(

Even though annotations are always checked, I would argue that they are still opt-in.

Pod owner opts in by annotation a pod.
pod-reaper owner opts in by specifying a rule in RULES to load without default.
If neither 1 or 2, pod-reaper behavior is the same as is today.

The case where the pod and pod-reaper owners are different and the pod-reaper owner does not want to allow override is interesting. If you are using pod reaper with multiple rules activated, then an annotation could allow the pod owner to evade getting killed. In my opinion, the pod owner should get the final say, but I guess that's ultimately a decision for the product owner.
We are running our own fork of pod-reaper with the annotations already compiled in. If you want to leave this open until someone else adopts it, you're not holding us back. If the project is no longer actively being maintained, we may continue adding features in our fork without pushing them back upstream.

Even though annotations are always checked, I would argue that they are still opt-in.

Pod owner opts in by annotation a pod.
pod-reaper owner opts in by specifying a rule in RULES to load without default.
If neither 1 or 2, pod-reaper behavior is the same as is today.

The case where the pod and pod-reaper owners are different and the pod-reaper owner does not want to allow override is interesting. If you are using pod reaper with multiple rules activated, then an annotation could allow the pod owner to evade getting killed. In my opinion, the pod owner should get the final say, but I guess that's ultimately a decision for the product owner.
We are running our own fork of pod-reaper with the annotations already compiled in. If you want to leave this open until someone else adopts it, you're not holding us back. If the project is no longer actively being maintained, we may continue adding features in our fork without pushing them back upstream.


Enable systemd-timesyncd to prevent clock drift

Have you tested if this breaks if there is no timezone set? I could imagine it setting the clock to UTC then

Yes, that will happen https://search.nixos.org/options?channel=unstable&show=time.timeZone&from=0&size=50&sort=relevance&type=packages&query=time.timeZone


Scrapped: Feat B.8 – Gating and adapting flashcard content

Scrapped: We will instead display a unlocked list of lessons on the home screen, but potentially guide the user on selecting level-appropriate lessons.
Flashcard lessons in the flashcard menu are “locked” until the previous lesson is completed.

Replaced by

#18

And

#43


(Minor) Fix Flow typing for TokenImpl

Fixes this PR comment.

Ugh, I'm used to class instance variables being nullable by default.  Not the case in Flow.  Good catch.


[REQUEST] Oraxen Furniture Support Please

Feature information
Please add support for Oraxen's furniture feature. Currently an untrusted player can place furniture in other people's claim, causing trouble for the claim owner.

Other plugins or mods related to the request

Oraxen plugin
https://www.spigotmc.org/resources/☄-oraxen-add-items-blocks-armors-hats-food-furnitures-plants-and-gui-1-18-1-20-1.72448/
https://docs.oraxen.com/

This is already supported with GDHooks


Fix target changes on LB

Description
If a target with an identifier was previously registered with IPs and is now changing its IPs (IP refresh, different target...), the LB can now handle that case by removing it completly and adding it again.
the internal setTargets is now removing old targets before adding new ones. It also checks if IPs for an identifier have changed or not.
Issue link
https://github.com/Nordix/Meridio/issues/356
Checklist

Purpose

[x] Bug fix
[ ] New functionality
[ ] Documentation
[ ] Refactoring
[ ] CI

Test

[ ] Unit test
[x] E2E Test
[ ] Tested manually

Introduce a breaking change

[ ] Yes (description required)
[x] No

Introduce changes in the Operator

[ ] Yes (description required)
[x] No

/reverify

Please see https://github.com/Nordix/Meridio/pull/363#discussion_r1104768969. Sorry for the fuss, but I think it's better to replace slices that are sets with sets in the future and use set-operations, but for now since we use slices maybe we should stick with them. But slice functions should be generic when it's possible.


make builds compatible with MacOS

There are currently a couple issues with running make build-in-docker on MacOS:

passing $(MAKE) into run_in_build_image.sh ends up trying to run /Library/Developer/CommandLineTools/usr/bin/make in a Linux image, which fails
the sed commands in bin/nginx_release_downloads.sh don't work with BSD sed, so we call GNU sed
MacOS tty has -s but not --silent

This PR addresses those issues while (I think) maintaining Linux compatibility.

Thanks for contributing this. I no longer have access to a Mac, but my teammate does.
There are a few things I have thoughts about, so I'll be leaving comments inline.

Thanks for taking a look at this. I was AFK for the last week or so, but took the time to address the comments above; LMK your thoughts.

Moved to https://github.com/DataDog/nginx-datadog/pull/28.


add hexo-footnotes plugin

A plugin to support markdown footnotes in your Hexo blog posts

Thx for your work!

you're welcome :)


client.upload_zip_package -> KeyError: 'UploadId'

Invoking client.upload_zip_package resulted in a KeyError: "UploadId".
The same code worked approx. 3 months ago with a different tenant. I already tried to update PyPreservica (1.5.x -> 1.7) and to update boto3 / s3transfer to latest versions. I also tried with slightly older versions of the Boto packages involved. In all cases I get the KeyError ('UploadId').
Is this a misconfiguration/incorrect usage or might this be a software issue?

Hi
This is a known issue in Preservica 6.7, the problem is the S3 multipart upload API.  Its not a client side problem.
There are two workarounds you could try until a fix is released, the first is to increase the size of the package before the multipart upload code kicks in.
For example if you think your packages are less than 256MB then you could add the following before the upload.
MB = 1024 * 1024
upload_config().multipart_threshold = 256 * MB
The other option is to upload the packages to an AWS S3 bucket first and use a auto-ingest workflow connected to the bucket.
ie.  use upload_zip_package_to_S3()

I have been informed that this has now been fixed and will be available in the next Preservica release.

This should now be working as the systems have been upgraded to 6.9


Snapshot Mods Aren't Grouped Together in Logs

Snapshot mods are not grouped together in the logs so they're scattered throughout the log instead of being grouped together like pre-damage mods.

#316 should have fixed this as well


Still broken

http://akari.is-a-good-waifu.com/57a54e.gif :/

What build of Discord are you using?


Add configuration to switch off the logic for localhost development

cloudinary:
  mock: true #default: false

With this parameter to true, the use of Cloudinary is disabled, as well as the creation of srcset and sizes. A normal image tag is generated.
This would make it easier to consult pages containing images that are not yet available on the Web.
Translated with www.DeepL.com/Translator

Looks like a duplicate of #20

Yep


Add a controller function to update a story

Add a controller function to update a story. Attach Screenshot of the postman response in pr.

assign me


"Winning lobby always alternates" isnt working as intended

it just disconnects both lobbies so the match wont count, "only lobby 1 will always win" is working perfect

only lobby 1 will always win" is working perfect??
what ?
When the 15th round is reached, the other side of the account is logged out without earning XP. How do you solve it?

what screen res are u using?


updated: prep for new updater

prepare for a "CASyncUpdateStrategy"

What's the abstraction for? I really don't want the git thing to be more than like 20 lines, if it even needs to live in updated at all. It's possible that's just a std::system("git pull") in the ui.

I think ideally the new updater is just changing the "strategy". We can make a BasicGitStrategy which is just a git pull for developers, and a CASyncUpdateStrategy


fix: update react-overlays

Pull in the fix here: https://github.com/react-bootstrap/react-overlays/pull/883 which was released in 4.1.1 of react-overlays

Coverage remained the same at 90.401% when pulling 185d8cbbdeda1320bbfc9f149083cba772a8020e on abutterworth/fix-popover-overlay into 5b814e6ebccb18ec5c793a9e00d2bd8b316dca2c on master.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


IotHub Message Enrichment seems to be unreliable

Hello,
i set a device tag for all our devices in iothub
 "tags": {
    "activated": true
},

Then i set a routing via event subscription (to a storage queue) which filters on not contains

This was a couple of hours ago. 99.9% of all messages are routed correctly. Actually, no messages should be routed into my queue as all devices have the tag activated=true. However i still get some messages routed into my qeue. If i look into the message it contains
`
'properties': '$twin.tags.activated'

which explains why it was routed into the queue. The message was not correctly enriched with the tag.
Immediately after message reception i query the device tags which are the following:
Current tags: {'activated': True}

They look correctly like i set them a couple of hours ago.
Why do some of the messages not get enriched correctly?

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

ID: 09122ce7-4c60-89f8-205f-a9f0a4796fe7
Version Independent ID: 860539b6-44f5-5d09-b371-02864d4366d2
Content: Overview of Azure IoT Hub message enrichments
Content Source: articles/iot-hub/iot-hub-message-enrichments-overview.md
Service: iot-hub
GitHub Login: @kgremban
Microsoft Alias: kgremban

@claria
Thanks for your feedback! We will investigate and update as appropriate.
Since this channel is for driving improvements towards MS Docs, could you provide the URL of the specific documentation that your feedback is applicable to? That way, we are able to make sure your feedback is addressed by the right team.

Hi,
actually, i am unsure if i pointed my issue to the correct repo. Since there were similar issues (#78596) i opened the issue here.
Relevant documentation is here:
https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-message-enrichments-overview
There it states:

Updates to a device twin can take up to five minutes to be reflected in the corresponding enrichment value.

However i am seeing missing enrichment values even hours later.

@claria Sincere apologies for the delayed response. We further looked into the referenced Git issue which you have shared.
As mentioned, It was by design.
 Updates to a device twin can take up to five minutes to be reflected in the corresponding enrichment value.
Also, please let us know if you are still blocked with this issue and your enrichments still takin more time than expected.

As mentioned above, the updates to a device twin were NOT reflected within 5 minutes, but it was more like 2-3 hours (for very few messages).
Currently i am not affected by this issue but it seemed to be ok after ~3 hours (all messages correctly enriched).

Have the same behavior here. In an integration test, I created an IoT hub and configured the message enrichment. These tests run every 24 hours and have worked reliably for many months. for the last few days I have noticed that the tests always fail. After a few days of research, this is due to the fact that the message enrichment only becomes functional after many hours. Is there any news regarding this problem?

@AshokPeddakotla-MSFT might be interesting for you to look into this issue again.

@AshokPeddakotla-MSFT @SaibabaBalapur-MSFT Has anyone found out anything about this topic yet?

I have also run into this issue, previously our message enrichments were being read with no issues for years, and have suddenly stopped. I am using a $twin.tags.field for my value, and attempting reading it in a stream analytics job with GetMetadataPropertyValue. The tags still exist on all device twins


feat: reactivate PMDB export

Closes #710

Blocked, just tested using the latest binaries and it is still failing. It now also fails with the uploaded Docker images.


[Issue/clr]: clEnqueueReleaseD3D11ObjectsKHR returned CL_INVALID_GL_OBJECT

Problem Description
Hello, our users encountered a DX11->OpenCL texture sharing issue after updating to Adrenalin 24.1.1 driver. After rolling the driver back to 23.12.1 everything went fine.
static void opencl_unmap_from_d3d11(AVHWFramesContext *dst_fc,
                                    HWMapDescriptor *hwmap)
{
    AVOpenCLFrameDescriptor    *desc = hwmap->priv;
    OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv;
    OpenCLFramesContext *frames_priv = dst_fc->internal->priv;
    cl_event event;
    cl_int cle;

    cle = device_priv->clEnqueueReleaseD3D11ObjectsKHR(
        frames_priv->command_queue, desc->nb_planes, desc->planes,
        0, NULL, &event);
    if (cle != CL_SUCCESS) {
        av_log(dst_fc, AV_LOG_ERROR, "Failed to release texture "
              "handle: %d.\n", cle);
    }

    opencl_wait_events(dst_fc, &event, 1);
}

[AVHWFramesContext @<PHONE_NUMBER>2f0200] Failed to release texture handle: -60.
The log shows that the clEnqueueReleaseD3D11ObjectsKHR() function returned an irrelevant return value: CL_INVALID_GL_OBJECT (-60).
It returns -60 which is ridiculous. Because (CL_INVALID_GL_OBJECT) is used exclusively in OpenGL/CL sharing, not DX11/CL sharing. According to the OpenCL documentation, this value is also not within the return value range of this function.
After digging deeper into AMD's OpenCL runtime (clr), I found that the return code -60 only used by OpenGL/CL interop does appear on the return path of this DX11/CL sharing function. And you guys refactored this part of the code not long ago.
https://github.com/ROCm/clr/blame/8ff39a54fc790454b95b325eb2d9cdfa06ba7968/opencl/amdocl/cl_gl.cpp#L1597
https://github.com/ROCm/clr/blame/8ff39a54fc790454b95b325eb2d9cdfa06ba7968/opencl/amdocl/cl_gl.cpp#L1583
https://github.com/ROCm/clr/blame/8ff39a54fc790454b95b325eb2d9cdfa06ba7968/opencl/amdocl/cl_gl.cpp#L1708
https://github.com/ROCm/clr/blame/8ff39a54fc790454b95b325eb2d9cdfa06ba7968/opencl/amdocl/cl_gl.cpp#L1693
https://github.com/ROCm/clr/blob/8ff39a54fc790454b95b325eb2d9cdfa06ba7968/opencl/amdocl/cl_d3d11.cpp#L388-L395
Operating System
10.0.19045 (Windows 10 22H2)
CPU
AMD Ryzen 9 5950X 16-Core Processor
GPU
AMD Radeon RX 7900 XTX
ROCm Version
ROCm 6.0.0
ROCm Component
clr
Steps to Reproduce

Prepare a 1080p or 4k video. It can be any common video format such as H.264, HEVC or AV1.

Download and unzip the jellyfin-ffmpeg6 6.0.1-1, which is the video transcoder of Jellyfin Media Server.

Run the following command in CMD or PowerShell, this FFmpeg command uses DX11/CL sharing to interact directly with the D3D11VA decoder, OpenCL filter and AMF encoder to avoid extra copies.

// Input file path is `C:\ANY_H264_HEVC_AV1_VIDEO.mp4`, you can change it
// Output file path is `C:\output.mp4`, you can change it

ffmpeg.exe  -init_hw_device d3d11va=dx11:,vendor=0x1002 -init_hw_device opencl=ocl@dx11 \
-filter_hw_device ocl -hwaccel d3d11va -hwaccel_output_format d3d11 -autorotate 0 -i C:\ANY_H264_HEVC_AV1_VIDEO.mp4 \
-autoscale 0 -an -sn -c:v h264_amf -quality speed -b:v 20M -maxrate 20M \
-vf "hwmap=derive_device=opencl,scale_opencl=w=1920:h=1080:format=nv12,hwmap=derive_device=d3d11va:reverse=1,format=d3d11" \
-vframes 5000 -y C:\output.mp4

It should fail immediately with error code -60 (CL_INVALID_GL_OBJECT).

Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> h264 (h264_amf))
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[AVHWFramesContext @ 000001f01432de40] Failed to release texture handle: -60.

Downgrade the driver to the old version Adrenalin 23.12.1, re-do the above procedures, you can run the ffmpeg command without any issue.

(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
No response
Additional Information
Issue threads from users:

https://forum.jellyfin.org/t-problem-on-transcoding-with-drivers-amd-24-1-1-windows-11
https://forum.jellyfin.org/t-transcoding-not-working-i-have-rx5700-win10

Can you take a look at this DX11/CL sharing regression? @iassiour

Thank you for reporting @nyanmisaka I can reproduce the issue with Adrenalin 24.1.1 on windows 11 and RX 6900 XT.
To confirm there are two separate issues:

A regression using 24.1.1 driver: the ffmpeg app now fails with "Failed to release texture handle" message while it runs successfully using  23.12.1
When the function fails, the error code (-60) is invalid.

I will forward this to the team and someone will come back vey shortly.

An update that we have identified the cause for the regression and are working on a fix.

@iassiour Thanks for your instant response!
If possible, please let me know when a new driver containing a fix is released. Or include it in the changelog.

@iassiour Thanks for your instant response!
If possible, please let me know when a new driver containing a fix is released. Or include it in the changelog.

I'm on the latest stable revision of the drivers and this has been addressed.

@iassiour Thanks for your instant response!

If possible, please let me know when a new driver containing a fix is released. Or include it in the changelog.

I'm on the latest stable revision of the drivers and this has been addressed.

Thanks for your reply. Have you tested using the ffmpeg command from this ticket? Or is hardware transcoding back to work in Jellyfin? I haven't had time to update the driver yet.

@iassiour Thanks for your instant response!

If possible, please let me know when a new driver containing a fix is released. Or include it in the changelog.

I'm on the latest stable revision of the drivers and this has been addressed.

Thanks for your reply. Have you tested using the ffmpeg command from this ticket? Or is hardware transcoding back to work in Jellyfin? I haven't had time to update the driver yet.

I just tested on an RX 7700 XT running the 24.3.1 drivers. And the -60 error still persists.
.\ffmpeg.exe  -init_hw_device d3d11va=dx11:,vendor=0x1002 -init_hw_device opencl=ocl@dx11 -filter_hw_device ocl -hwaccel d3d11va -hwaccel_output_format d3d11 -autorotate 0 -i C:\Users\mathe\Videos\test.mkv -autoscale 0 -an -sn -c:v h264_amf -quality speed -b:v 20M -maxrate 20M -vf "hwmap=derive_device=opencl,scale_opencl=w=1920:h=1080:format=nv12,hwmap=derive_device=d3d11va:reverse=1,format=d3d11" -vframes 5000 -y C:\Users\mathe\Videos\output.mp4
ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12-win32 (GCC)
  configuration: --prefix=/opt/ffmpeg --arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32- --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=Jellyfin --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --disable-ptx-compression --disable-w32threads --enable-pthreads --enable-shared --enable-lto --enable-gpl --enable-version3 --enable-schannel --enable-iconv --enable-libxml2 --enable-zlib --enable-lzma --enable-gmp --enable-chromaprint --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libwebp --enable-libvpx --enable-libzimg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-libdav1d --enable-libfdk-aac --enable-opencl --enable-dxva2 --enable-d3d11va --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
[AVHWDeviceContext @ 000002a9ba43c700] Using device 1002:747e (AMD Radeon RX 7700 XT).
[libdav1d @ 000002a9ba453840] libdav1d 1.3.0-0-g4803559
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, matroska,webm, from 'C:\Users\mathe\Videos\test.mkv':
  Metadata:
    TIMECODE        : 01:00:00:00
    creation_time   : 2023-12-22T05:02:07.000000Z
    ENCODER         : Lavf58.45.100
  Duration: 00:00:58.54, start: 0.000000, bitrate: 12510 kb/s
  Stream #0:0: Video: av1 (Main), yuv420p(tv, bt709, progressive), 2560x1440, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 1k tbn (default)
    Metadata:
      ENCODER         : AV1 8-bit - AMD
      DURATION        : 00:00:58.541000000
  Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s (default)
    Metadata:
      DURATION        : 00:00:58.542000000
Stream mapping:
  Stream #0:0 -> #0:0 (av1 (native) -> h264 (h264_amf))
Press [q] to stop, [?] for help
[AVHWFramesContext @ 000002a9ba4a2d40] Failed to release texture handle: -60.

Well, so it has not been fixed in 24.3.1 (RDNA driver). Note that Vega and Polaris using legacy drivers are not affected. Only the RDNA series is affected.

For reference, two fixes have been made as part of this issue:

A fix for the regression in DX11->OpenCL texture sharing case introduced with Adrenalin 24.1.1
https://github.com/ROCm/clr/commit/dca7bb22b647bd2fb2f05a7a4d4fba5c26264737

A fix for the invalid error code in DX11->OpenCL interop
https://github.com/ROCm/clr/commit/32d49d55ecd5150b8f4e4cd8bb5af5439d9aa7ff

From what I see these haven't made it into a release yet. It is not yet known on exactly which future release it will land but I can keep this issue open for reference and updates until that happens.

For reference, two fixes have been made as part of this issue:

A fix for the regression in DX11->OpenCL texture sharing case introduced with Adrenalin 24.1.1
dca7bb2
A fix for the invalid error code in DX11->OpenCL interop
32d49d5

These haven't made it into a release yet. It is not yet known on exactly which future release it will land but I can keep this issue open for reference and updates until that happens.

Good to know the fix has been merged. Since we can't compile these on Windows ourselves, users will need to wait for AMD to release new drivers.

Also does not seem to be fixed on Adrenalin 24.4.1 (on RDNA1 for my case).

Also does not seem to be fixed on Adrenalin 24.4.1 (on RDNA1 for my case).
Edit: The openCL runtime was compiled on April 9th, but the master branch of CLR was used (v6.0.2 at the time) looking at IDA. The fixes were introduced in 6.1.0. Weirdly enough, HIP runtimes seem to be more up to date?

CLR 6.1.0 was just tagged last week (4/17), so it seems like it was perfectly missed by the 24.4.1 driver. If I were them, I would maintain at least 6.0 and 6.1 branches, and backport some hotfixes to 6.0 so that users can receive them as soon as possible.

Hi @iassiour, is it feasible to backport these two commits to the rocm-6.1.x branch? Otherwise, the fixes in develop branch will not be available until ROCm 6.2 is released, which usually take a quarter.

Just installed 24.5.1 driver and hardware transcoding is working now using jellyfin-ffmpeg_6.0.1-6.
.\ffmpeg.exe  -init_hw_device d3d11va=dx11:,vendor=0x1002 -init_hw_device opencl=ocl@dx11 -filter_hw_device ocl -hwaccel d3d11va -hwaccel_output_format d3d11 -autorotate 0 -i C:\Users\mathe\Videos\test.mkv -autoscale 0 -an -sn -c:v h264_amf -quality speed -b:v 20M -maxrate 20M -vf "hwmap=derive_device=opencl,scale_opencl=w=1920:h=1080:format=nv12,hwmap=derive_device=d3d11va:reverse=1,format=d3d11" -vframes 5000 -y C:\Users\mathe\Videos\output.mp4
ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 13-win32 (GCC)
  configuration: --prefix=/opt/ffmpeg --arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32- --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=Jellyfin --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --disable-ptx-compression --disable-w32threads --enable-pthreads --enable-shared --enable-lto --enable-gpl --enable-version3 --enable-schannel --enable-iconv --enable-libxml2 --enable-zlib --enable-lzma --enable-gmp --enable-chromaprint --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libwebp --enable-libvpx --enable-libzimg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-libdav1d --enable-libfdk-aac --enable-opencl --enable-dxva2 --enable-d3d11va --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
[AVHWDeviceContext @ 0000023a7d279400] Using device 1002:747e (AMD Radeon RX 7700 XT).
[libdav1d @ 0000023a7d28e5c0] libdav1d 1.4.1-0-g872e470
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, matroska,webm, from 'C:\Users\mathe\Videos\test.mkv':
  Metadata:
    TIMECODE        : 01:00:00:00
    creation_time   : 2023-12-22T05:02:07.000000Z
    ENCODER         : Lavf58.45.100
  Duration: 00:00:58.54, start: 0.000000, bitrate: 12510 kb/s
  Stream #0:0: Video: av1 (Main), yuv420p(tv, bt709, progressive), 2560x1440, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 1k tbn (default)
    Metadata:
      ENCODER         : AV1 8-bit - AMD
      DURATION        : 00:00:58.541000000
  Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s (default)
    Metadata:
      DURATION        : 00:00:58.542000000
Stream mapping:
  Stream #0:0 -> #0:0 (av1 (native) -> h264 (h264_amf))
Press [q] to stop, [?] for help
Output #0, mp4, to 'C:\Users\mathe\Videos\output.mp4':
  Metadata:
    TIMECODE        : 01:00:00:00
    encoder         : Lavf60.3.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), d3d11(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 20000 kb/s, 59.94 fps, 19001 tbn (default)
    Metadata:
      DURATION        : 00:00:58.541000000
      encoder         : Lavc60.3.100 h264_amf
frame= 3509 fps=325 q=-0.0 Lsize=   46677kB time=00:00:58.52 bitrate=6533.6kbits/s speed=5.43x
video:46661kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.033655%

Nice to hear that! Maybe wait a little longer to get more feedback. I'm just a little confused on how they do version control. The actual behavior is different from the code in the 6.1 branch on Github.

Closing because many people confirmed that this issue has been fixed in 24.5.1 and newer.


Improve AssetService and style/script handling

Development
Will fix https://github.com/hydephp/develop/issues/100

[x] Update AssetService
[x] Update styles blade component
[x] Update scripts blade component
[x] Update/add tests for the service and styles/scripts blade components
[x] Update documentation if needed
[x] Update HydeFront readme documentation if needed
[x] Add facade?

Notes
About
This release refactors and improves the Asset Service, adding auto-configuration features and a new Asset facade.
Using the Asset facade in Blade views
Instead of the long syntax Hyde::assetManager() you can now use the Asset facade directly. See this example, which both do the exact same thing using the same underlying service:
Hyde::assetManager()->hasMediaFile('app.css')
Asset::hasMediaFile('app.css')

If you don't know what any of this means, good news! You don't have to worry about it. Hyde's got your back.
Added

Added feature to dynamically load hyde.css and hyde.js if they exist locally
Added the Asset facade to be used instead of Hyde::assetManager()
Added the Asset facade as a class alias to config/app.css

Changed

Changed scripts.blade.php and styles.blade.php to use the Asset facade

Deprecated

Deprecated AssetManager.php (Hyde::assetManager()). Use the Asset facade instead

Codecov is failing since apparently we lose code coverage for deprecated files, but that's okay since it's going to be removed. And since the actual test suite is passing I will merge.


Render Layer Changes not Saving

Is this for BCRES or BCH? Where was this edited from, the model UI or materials?

It is for BCRES, edited in materials

This fence texture was set to translucent and in the translucent layer. The skybox can be seen through it, but all of the other geometry is occluded when looking through that texture

Images showing occluded geometry and other translucent textures visible when looking through

Does it revert or stay when reopened in the tool?

The tool always reverts the render layer to opaque when reopening

Fixed https://github.com/MapStudioProject/CTR-Studio/commit/2c151dc5a03b01eeca2fd33f04c21d99e008b39a


nixos/synapse: doc: suggest LoadCredential before nixops/sops

Description of changes
This is a bit selfish, but that's what I was looking for in the .md when I wanted to quickly add a user without adding the password in the store on a local machine. Happy to reword or try another way of describing it.

nixops and similar are great, but require an upfront cost that is no longer necessary now systemd can read root-only files for restricted services through LoadCredential
Suggest the native method first in the service readme for simplicity

Note: it'd make more sense to set $CREDENTIALS_DIRECTORY/matrix-shared-secret instead of hardcoding /run/credentials/<service>, but that doesn't pass types.path check. The service name is made explicit when setting LoadCredential anyway, so this constant should be safe to use.
Things done

[x] Fits CONTRIBUTING.md.

Cc @ma27 @fadenb @mguentner @ralith @sumnerevans @NickCao @dali99 (matrix team)

Tip: you can use /$CREDENTIALS_DIRECTORY/matrix-shared-secret to trick the check.

Don't we have a section in the NixOS manual that explains how to deal with secrets? (cc @NixOS/documentation-team )
I'm pretty sure that this is by far not the only module where you have an issue like this and I think it's far better to have a central place where (1) the general issue is described (i.e. why that shouldn't be in the Nix store) and (2) how to deal with it (i.e. "deployment" tooling such as sops-nix/agenix) and mechanisms for services (i.e. LoadCredential, SuppplementaryGroups etc.). Then, all modules could just reference this section of the manual and we don't need to duplicate this information everywhere (and risking that it is incomplete - as demonstrated by @martinetd in this case).
If such a section exists, we should just link it here and remove the rest. Otherwise, I'd accept this patch as temporary improvement, but I'd really appreciate it if the docs team could add that to their backlog if possible :)

Tip: you can use /$CREDENTIALS_DIRECTORY/matrix-shared-secret to trick the check.

Oh, that's nice I've updated it to that!
I don't suppose you have another trick to hide the systemd service name by accessing it through services.matrix-synapse.something instead of sytemd.services.matrix-synapse ?

If such a section exists, we should just link it here and remove the rest.

Agreed. There was something so I just built on it, but if there's something common it'd be better to share. Looking for 'LoadCredential" in all *.md files only found ths and a mention in nixos/modules/security/acme/default.md so I can confirm there doesn't seem to be anything yet.

Actually just tested that and the command is escaped, so that doesn't work -- systemd tries to run --config-path "/\$CREDENTIALS_DIRECTORY/secretfile" which.. isn't anywhere to be found.
Reverting the commit

Actually just tested that and the command is escaped, so that doesn't work -- systemd tries to run --config-path "/\$CREDENTIALS_DIRECTORY/secretfile" which.. isn't anywhere to be found.

In ExecStart= the env vars substitution is done by systemd (not bash), so it has to be written as: /${CREDENTIALS_DIRECTORY}/secretfile.
I've been bitten by this before:

Minor gotcha, $CREDENTIALS_DIRECTORY must indeed actually be used with ${} (as in ${CREDENTIALS_DIRECTORY}/mycred from the doc example) when part of a word, since contrary to bash, a / is not a separator for variable names.

This behavior is mentionned in the systemd.service manual:

Basic environment variable substitution is supported. Use "${FOO}" as part of a word, or as a word of its own, on the command line, in which case it will be erased and replaced by the exact value of the environment variable (if any) including all whitespace it contains, always resulting in exactly a single argument. Use "$FOO" as a separate word on the command line, in which case it will be replaced by the value of the environment variable split at whitespace, resulting in zero or more arguments. For this type of expansion, quotes are respected when splitting into words, and afterwards removed.

Hmm, by reading the code, I think the path /run/credentials/matrix-synapse.service/matrix-shared-secret should remain hardcoded instead of using ${CREDENTIALS_DIRECTORY}, because it is used in the shell script matrix-synapse-register_new_matrix_user, hence outside of matrix-synapse.service, hence without the right CREDENTIALS_DIRECTORY set.


Stuttering frame rates on huge maps such as South Side

Ever since I modded Gmod with this mod, performance improved drastically as I finally was able to enjoy a game with nearly a hundred NPCs and a lot of entities spawned at once.
But I've noticed an issue that on huge Gmod maps such as rp_southside and boreas, the framerate started stuttering every half second even with nothing spawned at all. Is it an optimization issue with this project? Because when I tried the maps again with default physics module the stuttering completely disappeared.

I should mention that I've been using the x64 branch of Gmod.


Add test for second getElement request

This does not change anything. Only adds tests

I merge without review, because it does not change anything.


USB test points

Per IRC:
18:55 < davidc__> (Re USB connectors, using the actual USB connector for testing can be problematic.... plug starts to wear out of tolerance at $N insertions... then starts bending the pins inside the USB housing on the board)
18:55 < davidc__> (since the connector is broken, it makes fine contact, but ruins the connector for normal cables. Yes this has happened to me)
18:56 < davidc__> Solution is generally to force replacement of the test cable every $N boards tested, but that can be difficult to enforce at the fab

Two small stubs shouldn't make things much worse at 480 Mbps.
As a bonus, if you ever manage to tear off the SMT connector, you can solder directly to testpoints to make the device work again. (But the cable would need to be well restrained or you'll just tear off the testpoints again.)

Fixed in e91c7a9847.