Update to work with newer NewRelic format

I tried the original and it didn't work and returned 403s on trying to forward logs to NewRelic. But I was able to infer the following format from the example they give in the setup wizard. With this change it works great for me!

Hi James,
I can see that the 2 changes you made are:
1- added the URL
2- Used the license key instead of the API key
The current config is actually working well and better. This config is using New Relic Output plugin: https://github.com/newrelic/newrelic-fluentd-output
As you can read in the README, base_uri  is optional and by default equal to https://log-api.newrelic.com/log/v1 so there is no need to add that unless you are in the EU region where you will need to use https://log-api.eu.newrelic.com/log/v1.

Hi James,
I can see that the 2 changes you made are:
1- added the URL
2- Used the license key instead of the API key
The current config is actually working well and better. This config is using New Relic Output plugin: https://github.com/newrelic/newrelic-fluentd-output
As you can read in the README, base_uri is optional and by default equal to https://log-api.newrelic.com/log/v1 so there is no need to add that unless you are in the EU region where you will need to use https://log-api.eu.newrelic.com/log/v1.

Hi James,
I can see that the 2 changes you made are:
1- added the URL
2- Used the license key instead of the API key
The current config is actually working well and better. This config is using New Relic Output plugin: https://github.com/newrelic/newrelic-fluentd-output
As you can read in the README, base_uriis optional and by default equal to https://log-api.newrelic.com/log/v1 so there is no need to add that unless you are in the EU region where you will need to use https://log-api.eu.newrelic.com/log/v1.
With New Relic logs you can use either License key or Insight insert API key. Insights Insert API key is better because if this key is compromised you can simply rotate it, however with the license key you cannot do that.
I'm sure you are getting 403 because you are not using the right key, in New Relic there are multiple keys, the one that you have to use here is: https://docs.newrelic.com/docs/apis/get-started/intro-apis/types-new-relic-api-keys#insights-insert-key

Hi James,
I can see that the 2 changes you made are:
1- added the URL
2- Used the license key instead of the API key
The current config is actually working well and better. This config is using New Relic Output plugin: https://github.com/newrelic/newrelic-fluentd-output
As you can read in the README, base_uri is optional and by default equal to https://log-api.newrelic.com/log/v1 so there is no need to add that unless you are in the EU region where you will need to use https://log-api.eu.newrelic.com/log/v1.
With New Relic logs you can use either License key or Insight insert API key. Insights Insert API key is better because if this key is compromised you can simply rotate it, however with the license key you cannot do that.
I'm sure you are getting 403 because you are not using the right key, in New Relic there are multiple keys, the one that you have to use here is: https://docs.newrelic.com/docs/apis/get-started/intro-apis/types-new-relic-api-keys#insights-insert-key.
I will update the README to make sure this is clear for everyone else.
Thanks!

Aha - thanks for clarifying that. I'll give it a go!


Enable users to override repository location

Can we maybe come up with an easy way of overriding the repository location when running tests locally? I've had to change this fairly regularly when developing a new service and running the repo locally..
Maybe have this be the default but provide functionality to override it with an env var?
I'm happy to do that myself in a later PR though, I've mostly stuck this here because we don't seem to have issues activated for this repo yet..

This issue will be obsolete when the ad-hoc repository is used in all test cases.


[BUG] (node:48691) UnhandledPromiseRejectionWarning: RangeError: Invalid string length

Context
In order to help us troubleshoot issues with this project, you must provide the following details:

ElasticDump version: 6.96.0
Elasticsearch version: 7.16.1
Node.js version: v14.18.0
Full command you are having issue with (with inputs and outputs)

NODE_OPTIONS="--max_old_space_size=700000" elasticdump \
  --input=http://<my es server>:9200/<my es index> \
  --output=./<my es index>.json \
  --fileSize=3gb \
  --limit=100 \
  --retryAttempts=5 \
  --noRefresh

A data-set you can share publicly which reproduces the problem: unfortunately, cannot share

Describe the bug
when trying to elasticdump an index with very large docs (some json docs are close to 2gigs) the program fails with the following error:
Thu, 05 Jan 2023 17:28:01 GMT | got 100 objects from source elasticsearch (offset: 383900)
Thu, 05 Jan 2023 17:28:02 GMT | sent 100 objects to destination file, wrote 100
(node:48691) UnhandledPromiseRejectionWarning: RangeError: Invalid string length
    at JSON.stringify (<anonymous>)
    at Object.stringify (/usr/local/lib/node_modules/elasticdump/lib/jsonparser.js:56:10)
    at Request.<anonymous> (/usr/local/lib/node_modules/elasticdump/lib/transports/__es__/_helpers.js:87:55)
    at Request._callback (/usr/local/lib/node_modules/elasticdump/node_modules/lodash/lodash.js:10118:25)                                      [1831/1861]
    at Request.requestRetryReply [as reply] (/usr/local/lib/node_modules/elasticdump/node_modules/requestretry/index.js:151:19)
    at Request.<anonymous> (/usr/local/lib/node_modules/elasticdump/node_modules/requestretry/index.js:192:10)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:48691) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a
 catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:48691) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

essentially the problem is here: https://github.com/elasticsearch-dump/elasticsearch-dump/blob/master/lib/transports/es/_helpers.js#L87
it looks like the JSON stringify function here does not use buffers . Additionally, my machine has more than 1TB memory and the node memory limits have been set as shown in the command.

The problem is node as an enforced upper-bound for string length. I'll add a check for this.

I sent a PR with a fix. Test and let me know if this works for you.

testing, it takes some hours to get to that point but I will let you know, thank you so much!

─
Thu, 05 Jan 2023 20:45:04 GMT | starting dump
(node:51563) UnhandledPromiseRejectionWarning: TypeError: scrollResultSet is not a function
    at Request.<anonymous> (/usr/local/lib/node_modules/elasticdump/lib/transports/__es__/_data.js:87:11)
    at Request._callback (/usr/local/lib/node_modules/elasticdump/node_modules/lodash/lodash.js:10118:25)
    at Request.requestRetryReply [as reply] (/usr/local/lib/node_modules/elasticdump/node_modules/requestretry/index.js:151:19)
    at Request.<anonymous> (/usr/local/lib/node_modules/elasticdump/node_modules/requestretry/index.js:192:10)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:51563) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:51563) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

(node:51563) UnhandledPromiseRejectionWarning: TypeError: scrollResultSet is not a function
    at Request.<anonymous> (/usr/local/lib/node_modules/elasticdump/lib/transports/__es__/_data.js:87:11)
    at Request._callback (/usr/local/lib/node_modules/elasticdump/node_modules/lodash/lodash.js:10118:25)
    at Request.requestRetryReply [as reply] (/usr/local/lib/node_modules/elasticdump/node_modules/requestretry/index.js:151:19)
    at Request.<anonymous> (/usr/local/lib/node_modules/elasticdump/node_modules/requestretry/index.js:192:10)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:51563) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:51563) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I just commented out the emit line on my current code base and that seems to be OK

hmm that didnt work either when I ran it, sadly, the error was just somewhere else, though it explicitly showed the max string error
buffer.js:821
    return this.utf8Slice(start, end);

Error: Cannot create a string longer than 0x1fffffe8 characters
    at Buffer.toString (buffer.js:821:17)
    at Request.<anonymous> (/usr/local/lib/node_modules/elasticdump/node_modules/request/request.js:1128:39)
    at Request.emit (events.js:400:28)
    at Request.emit (domain.js:475:12)
    at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/elasticdump/node_modules/request/request.js:1076:12)
    at Object.onceWrapper (events.js:519:28)
    at IncomingMessage.emit (events.js:412:35)
    at IncomingMessage.emit (domain.js:475:12)
    at endReadableNT (internal/streams/readable.js:1334:12)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  code: 'ERR_STRING_TOO_LONG'

I am just gonna work around this by trying to query differently


Cant find DbServer.config

From the installation instructions, I cant find the dbServer.config file? where is this file located?

Got the file


Fix detecting yaml frontmatter

What problem did you solve?
Closes #855
This PR fixes the detection of yaml frontmatter in rmd. It only tries to capture the first yaml chunk surrounded by --- at the top of the document.
(If you do not have screenshot) How can I check this pull request?
Knit the following document should use bookdown::render_book instead of rmarkdown::render.
---
output: bookdown::gitbook
knit: bookdown::render_book
---

# Test

Para.

---

# Next

LGTM, didn't run into any errors. Thanks!


Migrate build from Travis CI to BuildKite.

/deploy prod minor

/deploy prod

/deploy prod minor

/deploy prod v14.0.0

/deploy prod

/deploy prod

/deploy prod

/deploy prod

/release merge


⚠ ClamAV has degraded performance

In a983092, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 67 ms

Resolved: ClamAV performance has improved in 68587bf.


ongoing: remove_remote_layer

Problem
Quest: #4745, already split #4936, #4937, #5013, #5014 (rework from #4937), #5022, #5033, #5044.
Summary of changes
Prepare to get rid of:

[x] RemoteLayer
hopefully get rid of trait Layer, trait PersistentLayer
[x] remove all LayerMap replacement related code for non-InMem
Timeline::layer_removal_cs => mutual exclusion between layer removal operations by logic of "having an LayerE means you can read it"

logic means: use arc's for managing the eviction/removal

Move to page_ctl or whatever the debug tool is called:

DeltaLayer
ImageLayer

Open problems:

see todo list on top of LayerE
see fixmes scattered through-out
do we cancel eviction when new interest comes for the not-yet-evicted?
gc: how to schedule remote removal only on drop of LayerE?

as in, if someone is holding an LayerE they should be able to read it even if it means downloading it
follows that we cannot just delete stuff from remote
do we need a IndexPart::garbage_collected_layers which would soft-delete the layers?

LayerE is just an placeholder name before I delete trait Layer.
Checklist before requesting a review

[ ] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.
[ ] Do we need to implement analytics? if so did you add the relevant metrics to the dashboard?
[ ] If this PR requires public announcement, mark it with /release-notes label and add several sentences in this section.

Checklist before merging

[ ] Do not forget to reformat commit message to not include the above checklist

Summarizing discussion with @jcsp and @LizardWizzard regarding "gc soft-deletes":

a separate delete queue for #4325

identified issues with local-only (missing from index_part.json) which need to be dealt with

soft delete and removal from index_part.json issued from gc/compaction
real local delete + schedule remote delete issued from LayerE::drop

this maintains "you have Arc you can read it"

compaction uploads of new files need to keep old files not deleted until upload completes, uses barriers, but how do barriers work with lazier delete?

this requirement could be handled with guards like ResidentDeltaLayer
in compaction case each deletion keeping a Arc<[ProhibitRemoteDelete]> could work

uploading "local-only" files need a guard like ResidentDeltaLayer

this requires a different kind of guard which just prohibits eviction but does not init the inner yet? Maybe move the OnceCell a bit lower, around LayerKind?

I will be rebasing and collecting "inspired" work to the top to split it off, but any comments are of course welcome, esp. if they relate to LayerE internals, which I am quite happy with.

All of the test failures should now be linked to metrics.
Test report

1620 tests run: 1524 passed, 21 failed, 75 skipped (full report)
Failures on Posgres 15

test_statvfs_pressure_usage: release, debug

test_statvfs_pressure_min_avail_bytes: debug, release

test_gc_of_remote_layers: release, debug

test_delete_tenant_exercise_crash_safety_failpoints[Check.RETRY_WITH_RESTART-mock_s3-timeline-delete-before-index-delete-True]: debug

test_delete_timeline_exercise_crash_safety_failpoints[Check.RETRY_WITH_RESTART-mock_s3-timeline-delete-before-index-deleted-at]: release, debug

test_delete_timeline_exercise_crash_safety_failpoints[Check.RETRY_WITH_RESTART-real_s3-timeline-delete-before-index-deleted-at]: release, debug

Failures on Posgres 14

test_fully_custom_config: debug

test_statvfs_pressure_usage: release, debug

test_statvfs_pressure_min_avail_bytes: release, debug

test_gc_of_remote_layers: release, debug

test_delete_timeline_exercise_crash_safety_failpoints[Check.RETRY_WITH_RESTART-real_s3-timeline-delete-before-index-deleted-at]: release, debug

test_delete_timeline_exercise_crash_safety_failpoints[Check.RETRY_WITH_RESTART-mock_s3-timeline-delete-before-index-deleted-at]: debug

No interesting test failures after removing layer_removal_cs!

Posted some flakyness notes: https://github.com/neondatabase/neon/issues/3978#issuecomment-1692960541

The layer.rs was a true pleasure to read!

Failures on Posgres 14
* `test_partial_evict_tenant`: [debug](https://neon-github-public-dev.s3.amazonaws.com/reports/pr-4938/6011177201/index.html#suites/0e58fb04d9998963e98e45fe1880af7d/ff545ab8352c9a5)

This is just the usual.

Failures on Posgres 14
* `test_ondemand_download_large_rel[local_fs]`: [release](https://neon-github-public-dev.s3.amazonaws.com/reports/pr-4938/6012579812/index.html#suites/b97efae3a617afb71cb8142f5afa5224/ab10ec7f4e3c6445)

This now keeps failing because we never actually stop the remote timeline client, and deletes happen late.

Structurally I'm happy with this change, but noticed that LayerInner::drop is doing the removal from remote storage at the same time as deleting the local file.  That is a problem: it means we that after compaction we can have an IndexPart uploaded which contains both old + new layers at the same time.  I think the solution is to do all the updates to remote storage earlier during compaction, and only use the Arc-drop path for deleting the local file.

I think the solution is to do all the updates to remote storage earlier during compaction, and only use the Arc-drop path for deleting the local file.

we discussed this just now. this would make us lose the "you have a layer, you can read it" property, because now the layer could be evicted, and no longer downloadable.
we agreed instead:

compaction should remove the file instantly from the layermap and remote timeline client indexpart listing

similarly for gc
this is the first phase of what RemoteTimelineClient::schedule_layer_file_deletion does up to excluding creating the DeleteOp

layer still handles scheduling the remote file deletion AND local file deletion

for RemoteTimelineClient this means scheduling removal of the given layer files (giving them to deletion_queue_client)

Oki, now with the latest force push we are finally at main after #5649.
Of course it will be difficult for you to see what I did. I ended up renaming the method added in #5645 the RemoteTimelineClient::schedule_unlinking_from_index_part as schedule_gc_update, which is much more fitting in c2e0a126970b250343ca39a362153995d7432343.

Failures on Posgres 14

test_ondemand_download_large_rel[local_fs]: release

This now keeps failing because we never actually stop the remote timeline client, and deletes happen late.

Fixing this is rather involved, I think we need a new queue operation which we would call from https://github.com/neondatabase/neon/blob/85f4514e7d1fb151fe6067a47563657c9df9c76c/pageserver/src/tenant/timeline.rs#L995 like, wait_for_completion_and_stop. If anything is even needed because of the #4960. I think I'll just leave it not done, and we'll need to remember this if some flakyness arises.


New GRIFFIN Source Data, slow speed + fix?

The new GRIFFIN data are coming in much larger files due to the removal of a large amount of MIDAS overhead (1.5 GB vs 0.65 GB fragment trees). When I go to build the analysis tree using this data, it only sorts at 28 events/second. However, when I allow the Tree to take up 16 GB instead of 8 GB, it sorts at a reasonable speed again (64 k / second). Is there a way where we can tell ROOT to just use all of the memory it needs? Or at least make this a parameter in run info or something? It's clearly a system dependent variable.

@r3dunlop, did this get resolved?

yeah, I just increased the memory :P . The new multisite branch definitely wipes this out though.

On Nov 3, 2015, at 12:21 PM, SmithJK<EMAIL_ADDRESS>wrote:
@r3dunlop https://github.com/r3dunlop, did this get resolved?
—
Reply to this email directly or view it on GitHub https://github.com/GRIFFINCollaboration/GRSISort/issues/413#issuecomment-153423836.


Lightning Enchant does not work [Bug Report]:

Spark link
No response
Server Version
1.20.2
Server Platform
Purpur
Describe the bug
When I add the "Lightning" enchant to a bow, it does not shoot a lightning bolt, sound or cause any damage(besides the basic arrow). After shooting the bow, it sends an error to the console(linked blow)
https://mclo.gs/wxOHrgp
Steps to reproduce

Enchant a bow with Lightning
Shoot the bow anywhere. It happens when you shoot it in the air/ground/at an entity
look at console for the error.

Additional context
No response
Agreements

[X] I have searched for and ensured there isn't already an open issue regarding this.
[ ] I ticked all the boxes without actually reading them
[X] My version of Minecraft is supported by CrazyCrew.

Thank you to TDL on the discord for assisting!
The solution was to delete the enchantments.yml and restart the server.


Added write_to_asdf method to write the adjoint source to an ASDF file using pyadsdf

Look pretty good. I added some comments in line. Please also make sure the code is formatted correctly. You can see all the formatting errors if you run the tests:
$ python -m pyadjoint.tests

Thanks Lion, this is fixed now.
On Oct 21, 2015, at 3:33 AM, Lion Krischer <notifications<EMAIL_ADDRESS>wrote:
Look pretty good. I added some comments in line. Please also make sure the code is formatted correctly. You can see all the formatting errors if you run the tests:
$ python -m pyadjoint.tests
—
Reply to this email directly or view it on GitHubhttps://github.com/krischer/pyadjoint/pull/1#issuecomment-149804930.

Hi Lion,
I think I fixed all these issues so if you could take another look at let me know if there are any problems with my fixes or additional issues that would be great.
Cheers,
James

Looks good to me :-) The travis error is unrelated and I'll fix it after the merge.

At one point we will have to add a test by pyadjoint is not really stable enough yet to warrant that.


detect use of each and recommend test_each instead

Motivation

The need to use test_each often puzzles people, especially because they get inscrutable static errors and they don't get any runtime errors when they use each.  Try to determine if people are doing this and provide an error that points them in the correct direction.
Test plan

See included automated tests.

We have a policy of testing changes to Sorbet against Stripe's codebase before
merging them. I've kicked off a test run for the current PR.  When the build
finishes, I'll share with you whether or how it failed. Thanks!
Stripe employees can see the build results here:
→ https://go/builds/bui_LdnGtjuDlhZlpg
→ https://go/builds/bui_LdnGbjaZtdaPqF


Implement a string tree parser

Implement a string tree parser with less size overload than JSON, to be used in place of JSON.stringify and JSON.parse for the moment where tree is parsed to be saved in redis value.
A start of an idea is implemented in the branch string-tree-serializer

I think protobuf and avro are good enough


delete annotation for first image return success but actually not

Returns "Annotation 158 deleted"

bug still stands?

可能是heroku的问题，后端这块应该没有问题🤔


Add list jobs to IonQ service

Part of #3479

Plus fixed some type annotations. Thanks for the review!


[GSSOC'23] Convert Existing Website to React Components

I would like to migrate this existing website, which is currently built using HTML, CSS, and JavaScript, to a React-based architecture. This migration involves redesigning and refactoring the website's codebase to utilize React components for improved modularity, reusability, and maintainability.
Please assign this task to me..

Hi @adityatyagi-av, the migration is already in progress on the "reactdev" branch. Take a look at it and let me know if you'd like to join us.


Document generic x86 support with NUC image

beginning in v2.9.6

Once we have the Getting Started Guide workflow optimized, we will ensure a GSG exists for the generic_x86-64 type.

It does now.


Fix candlestick x-axis

@justinbarry this looks like a variable name change to me, how does this effect the x-axis?


Generalize concat_unindexed_dataframes to support cudf-backend

Closes #5643
Some dask.dataframe concatination code uses a pandas-specific API.  This PR makes a small modification to use methods.concat in two places.  It also adds a test for both the pandas and cudf backends.

[ ] Tests added / passed
[ ] Passes black dask / flake8 dask

+1 from me.  Thanks @rjzamora .  Merging on passed tests.


⚠ Turnos 24x7 has degraded performance

In 618dc2b, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 923 ms

Resolved: Turnos 24x7 performance has improved in 7bd3759.


Feature Request: set gallery of images?

I know that probably is out of the scope of the project itself, but I am wondering if it had sense.
maybe anyone could implement this option?

+1

Yes as said many times before, this is out of the scope of Lity, sorry. See eg. #11, #82, #89


Design suggestion: Indicate has-aux using a box

Currently, we have
def value_and_grad(fun: Callable, argnums: Union[int, Sequence[int]] = 0,
                   has_aux: bool = False, holomorphic: bool = False,
                   allow_int: bool = False, reduce_axes: Sequence[AxisName] = ()
  ) -> Callable[..., Tuple[Any, Any]]:

which leaves the return value a mostly untyped Callable.
If instead we indicated has-aux with a box, we could do
def value_and_grad(fun: Callable[..., Y] | HasAux[Y, Aux],
                   argnums: Union[int, Sequence[int]] = 0,
                   holomorphic: bool = False, allow_int: bool = False,
                   reduce_axes: Sequence[AxisName] = ()
  ) -> Callable[..., Tuple[Y, Any]] | Callable[..., Tuple[Tuple[Y, Aux], Any]]:

This way, the output value of type Y and the auxilliary data of type Aux would be typed. typing.overload could be used to automatically select between the two return values.
I proposed a similar idea to jax-opt, where I illustrated how such a box could be designed.

I don't follow the purpose of the HasAux union element in the fun input annotation. Still, I think that this might actually create more friction then necessary. Going over the JEP for type annotation design I see two points that might go against this proposal:

Err towards simplicity: The new type signatures are much more complicated than the old ones
Outputs should be strictly typed: the old annotation indicates that the result is always a function that returns a pair of things. The new one says that once you apply it, you are left with Tuple[Y, Any] | Tuple[Tuple[Y, Aux], Any]. In particular, if you have a value of a union type, a type checker can complain if you just assume that the value corresponds to a concrete case without checking. But the case is not arbitrary! It is always implied by the has_aux argument!

Perhaps a more interesting technique would be to create three overloads for value_and_grad: one with has_aux having type Literal[True], one of type Literal[False] and one of type bool. The first two overloads would return a more precise annotation of the return type, while the last one would have exactly the same generic signature we provide today. WDYT?

Err towards simplicity: The new type signatures are much more complicated than the old ones

Yeah, I'm with you.  I'm not convinced this is a big win for Jax.  I was more proposing this for jax-opt, where the benefits are significantly greater.
I'm not sure it's "much more complicated though".  It just replaces one flag with a boxing class.  Jax already does this with custom_vjp and custom_jvp, which are also classes that wrap a callable.

In particular, if you have a value of a union type, a type checker can complain if you just assume that the value corresponds to a concrete case without checking

I don't think this is a problem.  As I mentioned in the issue, you would just have overloads so that exactly one of the cases were chosen by the type checker.  In fact, the overloads can be added regardless of the boxing class idea.

Perhaps a more interesting technique would be to create three overloads for value_and_grad: one with has_aux having type Literal[True], one of type Literal[False] and one of type bool

Exactly, that should definitely be done regardless.
This was more an issue with jax-opt because overloads are impossible there.  And when I proposed, they suggested it would be nice if their design matched Jax's, so I thought of proposing something here.

I think that adding overloads for literals is a good idea. But I'm not 100% sold on the boxing class, since in most cases literal overloads should do the trick (how many people use a dynamic value of has_aux after all)


Supported OS in module?

Is Debian the only supported distribution? The default image being used appears to be Ubuntu 18.04 rather than Debian, but the description of the variable seems to suggest otherwise - https://github.com/terraform-google-modules/terraform-google-forseti/blob/master/variables.tf#L73

I believe only Ubuntu is supported, #139 added to clarify.


chore(main): release 3.64.0

:robot: I have created a release beep boop
3.64.0 (2024-09-07)
Features

icons: Update Lucide to https://github.com/lucide-icons/lucide/releases/tag/0.439.0 (e48b54a)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v3.64.0
:sunflower:


Java SE app.jar rename is unclear regarding windows/linux

The section below, regarding "you can upload a shell script with the command to run your .jar app. Paste the absolute path to this script in the Statup File textbox" only applies to linux platform? How can I do this for a windows platform as I don't want to be forced to use app.jar as my jar file name.
Java SE
To deploy .jar files to Java SE, use the /api/publish/ endpoint of the Kudu site. For more information on this API, see [this documentation](https://docs.microsoft.com/en-us/azure/app-service/deploy-zip#deploy-warjarear-packages).

 Note

Your .jar application must be named app.jar for App Service to identify and run your application. The Maven Plugin (mentioned above) will automatically rename your application for you during deployment. If you do not wish to rename your JAR to app.jar, you can upload a shell script with the command to run your .jar app. Paste the absolute path to this script in the [Startup File](https://docs.microsoft.com/en-us/azure/app-service/faq-app-service-linux) textbox in the Configuration section of the portal. The startup script does not run from the directory into which it is placed. Therefore, always use absolute paths to reference files in your startup script (for example: java -jar /home/myapp/myapp.jar).

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

ID: df68e904-7b05-38ba-4203-50eb8491946f
Version Independent ID: 921377f7-e428-143d-70e4-c9efc25e41d1
Content: Configure Java apps - Azure App Service
Content Source: articles/app-service/configure-language-java.md
Service: app-service
GitHub Login: @JasonFreeberg
Microsoft Alias: jafreebe

Thanks for the feedback! We are currently investigating and will update you shortly.

@antbewes, that section applies to Linux hosted apps, I'll make sure it's removed. To answer your question though, you can create a JAVA_OPTS application setting set to relative path of the jar -jar "D:\home\site\wwwroot\myapp.jar"

Hi @RyanHill-MSFT thanks for responding. For Java SE (Embedded Web Server) on a windows app service host, we'd have say applications settings of say:
JAVA_OPTS = -Dserver.port=%HTTP_PLATFORM_PORT% -Dprops.path=file:%HOME%\site\wwwroot
and
JAVA_JAR_FILE_NAME = %HOME%\site\wwwroot\myapp.jar
I can't find any documentation of how JAVA_JAR_FILE_NAME gets used, presume it's part of the JavaBootstrapper.exe? Knowing how the java command-line is put together will help many others I think in navigating this, it should be so simple but kind of feels hidden under a multitude of env variable hooks! Thanks in advance

Slight correction @antbewes, the app setting is WEBSITE_JAVA_JAR_FILE_NAME, my apologies on that. And you are correct that there aren't any docs on this; the doc should be updated for this. Use this setting only using the filename. The platform will find and set the file path. There shouldn't be any need to use Dprops.path. Check your logs for any issues finding your jar file and let me know if you need further assistance.


Glossary for PersistentVolumeClaim added

Added the glossary to PersistentVolumeClaim for a reference and better navigation.

/assign @kbhawkey

@kbhawkey raised this new PR and incorporated the inputs. Please review the same.

Page preview:
https://deploy-preview-20194--kubernetes-io-master-staging.netlify.com/docs/concepts/storage/volume-snapshots/

/assign @sftim

Preview

(if there's an issue that this fixes, please update or close that issue)

@sftim  the earlier PR related to this had got closed already. No other open issue on this, Thank you


nixos/keepalived: add openFirewall option

Description of changes
Allow VRRP and AH (authentication packets) through the firewall automatically if the option services.keepalived.openFirewall is set. By default, the option is true since these packets should generally be accepted when using keepalived.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Priorities
Add a :+1: reaction to pull requests you find important.

Let me know if you think there should be another separate option for AH packets

Closes #269944

Can you squash your 3 commits into a single one titled nixos/keepalived: add openFirewall option please? :)
Looks good to me otherwise!

Always learning new options :) Fixed!


Attachment queueing?

Is queueing built into the attachment processing? A case study in mind:

Select an image to be attached to an Item
The image is large, and requires a few different sizes to be generated
A config determines the size to generate first (perhaps a thumbnail) and then the rest of the processing is passed off to a queue so the user doesn't have to wait

I'm not sure if anything like this exists in the current package. Thanks for any insight.

I've not done multiple files, but the way I've handled this is basically the following:

Upload the original file(s) with Stapler

Optionally create one thumbnail to indicate the image was uploaded (on the next screen or something)
Queue up some processes to go "reprocess" those files using a different config than the original upload config

I made a rough version of Stapler with queueing that I'm using in a project. Most of the queueing stuff is done in laravel-stapler. I would like to share and explain my code if you're interested.

I would be interested, still something on my todo list for one of our products that uses stapler intensively.

Ok, this is what I'm working on right now.
stapler
defer & defer_all_except options
$this->hasAttachedFile('picture', [
  'styles' => [/* your styles */],
  'defer' => [/* styles you don't want to process immediately */],
  'defer_all_except' => [/* opposite of 'defer' option */]
]);

reprocess specific styles
$attachment->reprocess($styles = []);

process deferred styles
Still have to add a method to process only the deferred styles. Will use the reprocess method.
laravel-stapler
ProcessDeferredAttachmentStyles Job
This job processes the deferred attachment styles.
QueueingEloquentTrait
QueueingEloquentTrait will automatically dispatch the ProcessDeferredAttachmentStyles when needed.

Let me know what you think.

@jorenvanhee have you managed to get your queuing solution working?

@tomvo Yep, got it working. I'm using my own forks now. But I would be happy to clean it up, document it, and submit a PR (if there's interest).
Here's my fork of stapler and laravel-stapler.
The word queue was already used in the codebase, so I used "defer". You'll see it in my commits.

@jorenvanhee I checked your code and it actually looks pretty solid. The changes are actually not even that big. However it's Laravel 5 only. Unfortunately my legacy codebase is based on L4 so I wouldn't be able to help you out right away with testing it. I could adapt it to L4 though.

I'm working on a 2.0 release of Stapler that's php7 and laravel 5.1 only. It's got some new features:

Flysystem for file abstraction (Local, S3, Rackspace, and Azure Cloud File storage)
Easy image naming/renaming
Dynamic style creation: $image->picture->url('medium', '150x150')
Possibly more drivers/traits (Cakephp, Doctrine, Analogue, Yii, etc), however this is stretch goal.
More examples (example applications, etc) and better documentation
Better/more test coverage
Several bug fixes, etc.

I'm going to release one more minor release from the 1x branch and back port as much of this stuff as possible to, but after that It's going to be bug fixes only for that branch. I'd really like to figure out a clean way to do attachment queueing that (works nicely/elegantly with this package) and get that into the new release for sure. I took a look at that code and it looks pretty clean, but there will more than likely have to be changes/tweaks to make it work consistently with the rest of the package. If you guys want to work on something bounce ideas around I think we could get it done.

Great that you're working on v2 of the library. I guess it wouldn't make much sense for the package to add queuing support for L4. @jorenvanhee if you don't mind i'm going to use your stapler fork and use your ideas on the laravel fork and port it to a L4 version. I'll share it back here when done for anybody else who might benefit from this.

@tomvo Great, go ahead!


Extended documentation for the React examples.

I've noticed there's next to no documentation for getting Horizon set up with React, except for the example apps. It'd be great for beginners if there was a more detailed guide on why / how these examples actually work - as opposed to just putting them there. It's difficult to learn a new technology when the examples/documentation aren't applied in a way that discusses why / how to use Horizon's functions in broad situations. I don't care about creating the specific to-do list app, I want to learn how to use Horizon to build anything!

Good point, I opened https://github.com/rethinkdb/horizon-docs/issues/101 in the separate horizon-docs repository.
I'm going to close this for now, as we will track and discuss things in the other issue.


Windows/MinGW path separator

Hi,
In versions 1.1.x, there seems to be a issue in the configuring step with Windows/MinGW:
C:\Perl64\bin\perl.exe "-I." -Mconfigdata "util\dofile.pl" \             "-oMakefile" crypto\include\internal\bn_conf.h.in > crypto\include\internal\bn_conf.h /bin/sh: C:Perl64binperl.exe: command not found make: *** [crypto\include\internal\bn_conf.h] Error 127 perl "-I." -Mconfigdata "util\dofile.pl" \ 	    "-oMakefile" crypto\include\internal\bn_conf.h.in > crypto\include\internal\bn_conf.h Couldn't open file cryptoincludeinternalbn_conf.h.in: No such file or directory make: *** [crypto\include\internal\bn_conf.h] Error 2
The path separators are misinterpreted as escape characters. Any one care to patch a fix in the config script? Thanks!

What version of perl are you using. Please note this comment from NOTES.PERL:
Notes on Perl on Windows
 ------------------------

 There are a number of build targets that can be viewed as "Windows".
 Indeed, there are VC-* configs targeting VisualStudio C, as well as
 MinGW and Cygwin. The key recommendation is to use "matching" Perl,
 one that matches build environment. For example, if you will build
 on Cygwin be sure to use the Cygwin package manager to install Perl.
 For MSYS builds use the MSYS provided Perl. For VC-* builds we
 recommend ActiveState Perl, available from
 http://www.activestate.com/ActivePerl.

So, for a mingw/msys build you need to be using msys perl.

Thanks for the hint! The current msys distro comes with perl 5.8 while openssl requires 5.10+, so I had to use the Perl-MinGW (https://sourceforge.net/projects/perl-mingw/).
Here is the verification of perl version in msys:
$ perl -version This is perl 5, version 24, subversion 0 (v5.24.0) built for MSWin32-x86-multi-thread-64int Copyright 1987-2016, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl".  If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.
And if I clean up and retry, the same problem happened again:
$ make C:\msys\msys\1.0\bin\perl.exe "-I." -Mconfigdata "util/dofile.pl" \             "-oMakefile" crypto/include/internal/bn_conf.h.in > crypto/include/internal/bn_conf.h /bin/sh: C:msysmsys1.0binperl.exe: command not found make: *** [crypto/include/internal/bn_conf.h] Error 127
May it be a problem of "Perl-MinGW"? Thanks!

That's still not the right perl version. Msys perl supports sufficiently recent perl. Here is mine which works fine with OpenSSL 1.1.0:
$ perl --version

This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-msys-thread-                                       multi

Copyright 1987-2015, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

Did you rebuild perl in msys? The msys catalogue says msys-perl 5.8.8.  How do I find the updated msys perl? Thanks!

No, I just used the package manager. You are using msys2 right? IIRC original msys has some fairly prehistoric packages in it.

That's the reason! Thanks! I will renew my msys and try it again.


✨ Python 3.12

Closes #34

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


new port for MacOS

can anyone port new soft ether server manager for new macOS Mojave (v4.27) for 64bit cpu ?

Anyone manage get the latest stable build compile on macOS high sierra?
I am stuck at this error
SoftEther VPN for Unix
Copyright (c) Daiyuu Nobori.
Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan.
Copyright (c) SoftEther Corporation.
Copyright (c) all contributors on SoftEther VPN project in GitHub.
License: The Apache License, Version 2.0
Read and understand README.TXT, LICENSE.TXT and WARNING.TXT before use.
Welcome to the corner-cutting configure script !
The Makefile is generated. Run 'make' to build SoftEther VPN.
Jays-Mac-mini:SoftEtherVPN_Stable jayko$ make
cc -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_MACOS -DBRIDGE_PCAP -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -m64 -c src/Mayaqua/Encrypt.c -o tmp/objs/Mayaqua/Encrypt.o
src/Mayaqua/Encrypt.c:118:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>
^
1 error generated.
make: *** [tmp/objs/Mayaqua/Encrypt.o] Error 1


After error in code even if code is corrected, it is showing error.

🐞 Bug report
Command (mark with an x)

[ ] new
[ ] build
[x] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] extract-i18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?
I am newbie. I don't know.
Description
On ng serve, code complies fine. Once I do coding mistake, I get error. Now if I correct that error then also I keep getting errors. If I terminate batch job and do ng serve it compiles fine. And cycle repeat itself.
🔬 Minimal Reproduction

Ng serve
Edit code. Make some mistakes.
Now correct the code.
Still sees same/ different error. Sometimes you get the desired outcome.
Terminate batch job on terminal.
Ng serve
Hola! Code run without errors.
Cycle repeat itself.
🔥 Exception or Error

🌍 Your Environment

Cli : 11.0.2
Node: 10.16.3
Os: win32 x64

Anything else relevant?
Most of the people in my organization getting same error.
Cannot copy paste error or code. Against organization policy. Sorry.

What type of syntax error are you doing? Is it a template error?
If so this looks like a duplicate of https://github.com/angular/angular/issues/39147

Thanks for reporting this issue. However, you didn't provide sufficient information for us to understand and reproduce the problem. Please check out our submission guidelines to understand why we can't act on issues that are lacking important information.
If the problem persists, please file a new issue and ensure you provide all of the required information when filling out the issue template.


SPEC: Make Type.MANDATORY the default and remove @LRA from class level

Make Type.MANDATARY the default instead of Type.REQUIRED because;

Mandatory will be the type which is needed the most by the developer. Since most of the time a Long Running Action will be composed of many participants.
Developer has to type less
Developer is forced to think about how the LRA is started and hopefully chooses the better suited REQUIRES_NEW than REQUIRED to start an LRA.
It avoids the pitfalls around REQUIRED and the validation of the context.

When Type.MANDATORY is the default, using @LRA at class level will results in failures when there are JAX-RS defined callback methods (@Complete and @Compensate).
So ElementType.TYPE must be removed from @LRA.

I don't see any big issue with this. If there is a requirement to keep class-level LRA, we must at least make it being ignored on methods annotated with different participant annotations (Complete, Compensate, Status, Leave, Forget) by default but I would also prefer to remove it from class-level for 1.0. For default type to be MANDATORY, your arguments make sense to me so +1. Only we will be not aligned with JTA's Transactional but that shouldn't be a big problem.

How would we support the use case where the same logic should be reusable in the context of both an existing workflow and a new one. By way of illustration with your new suggestion:
client -> bookTrip (REQURES_NEW) -> bookFlight (MANDATORY) // works because there is a context

versus

client -> bookFlight (MANDATORY) // doesn't work because there is no context

Here the bookFlight business logic is not directly reusable. This makes it more difficult to compose resources into a workflow.

I didn't understand what pitfalls around REQUIRED and the validation of the context was referring to since you would have the same issue with MANDATORY.
I also didn't understand the concern about using a class level LRA annotation. The callback methods are always invoked with a valid (though inactive) context so the implementation would see that the resource is already enlisted so it would effectively be a "null op". I looked at the spec around this situation and it wasn't clear so I think we can revisit what (we want) the spec to says about @LRA annotations on callback methods.

Since a business flow has always a start and end step, I hope that developers are not going to use LRA as you propose here
You need a start action (LRA.Type.REQUIRES_NEW), the business actions ( LRA.Type.MANDATORY) and the end action ( LRA.Type.MANDATORY).
Those business actions can be reused in any flow between a start and end as they have LRA.Type.MANDATORY.
so LRA.Type.MANDATORY will be used in almost all case except the Start and thus this is the preferred default.
In your example, if developer wants to use it that way, he can specify Type.REQUIRED since it is a participant (since flight booking needs to be reversible) and thus there is no issue with validation.

The difference of the default Type.REQUIRED and Type.MANDATORY is in that start action (which is a non-participant) of that business flow.
Developers will not bother specifying a type since everything seems to work correctly with the default (REQUIRED). But since the start action is not a participant, any value for the LRA Header will be allowed (since there is might be no validation at all in the current spec) And thus the business flow fails to correctly start an LRA in case the LRA header contains something.
When choosing MANDATORY as default, the developer is not required to specify any type except for the start event of the business flow. There he needs to specify REQUIRES_NEW. (and this will be clear during testing as it fails with the default)

According to your interpretation of the spec, even MANDATORY doesn't trigger any validations (in the non-participant case). This means that URI:/this/will/be/accepted/as/LRA/header (literally that value) will be accepted as LRA header for the non-participant cases where no validation is performed. (including but not limited to the Types REQUIRED and MANDATORY)
That behaviour, anything is accepted, doesn't correspond with the name it has (MANDATORY)

According to your interpretation of the spec, even MANDATORY doesn't trigger any validations (in the non-participant case). This means that URI:/this/will/be/accepted/as/LRA/header (literally that value) will be accepted as LRA header for the non-participant cases where no validation is performed. (including but not limited to the Types REQUIRED and MANDATORY)

As long as the URI is a valid URI then my expectation would be that the LRA URI could reasonably be expected to be passed through until the point that some transactional action is attempted on the LRA referenced by the URI (such as enlistment of a full LRA participant or the registration of an AfterLRA). At that point the LRA will not be contactable (as presumably URI:/this/will/be/accepted/as/LRA/header will not resolve to an LRA - I suppose it could if it somehow was a valid resource) and the error would be expected to be reported then?

That behaviour, anything is accepted, doesn't correspond with the name it has (MANDATORY)

If someone has provided an invalid LRA header as the LRA ID then that would be an error, same as if they passing in "URI:foo:8080/some/other/". Perhaps "In case the implementation of this specification exposes non-JAX-RS participant methods to be able to call them externally (e.g. the HTTP proxy) then it MUST protect every exposed method from unauthorized access. The specific security details are not specified." could be expanded to make it clearer that is not specifically guarded against?

Specifically regarding changing the current default, could we define MP config settings for users/implementations to override the current default?

Since a business flow has always a start and end step, I hope that developers are not going to use LRA as you propose here

With the current default (REQUIRED) if there is no incoming context then one is started automatically. That seems quite natural and the same logic can be reused regardless of whether there was a context present. If you now force services to explicitly demarcate the start of the flow (via REQUIRES_NEW) then you loose the ability to reuse methods (as my example tried to show) - with the new proposal the application would have to duplicate the business endpoint even if both endpoints implement the same behaviour. [Remark: I think this answer addresses your other points so I won't answer those separately).

My suggestion would be to keep the current default and provide a defined config method to override it. Would that not be acceptable?
If necessary I would think we should evaluate providing no default in 1.0 (maybe along with the config property?)

I was just chatting with @mmusgrov about this. I see now how a config property could be unsafe as it changes the developers original intention.
So I think we should evaluate providing no default in 1.0, which would leave it open to selecting a default 1.x+ then.

My suggestion would be to keep the current default and provide a defined config method to override it. Would that not be acceptable?
If necessary I would think we should evaluate providing no default in 1.0 (maybe along with the config property?)

If we make default configurable then it would be more difficult for implementations to interoperate with each other and with themselves. Now the same app could be deployed to different servers/runtimes and at one server it behaves differently from another server depending upon how the config property is set.
It would also make it difficult for application developers to write code that was portable in different scenarios (since he now he has to write different code depending upon whether or not the config property has been set).

Since we have decided to remove the non-participant scenario, this issue is probably less relevant.
Although developers will probably need much more type MANDATORY participants than REQUIRED, it will also work with with the latter since validation is performed (since everything needs to be a participant/party now).
If the rest of the group also wants to drop this issue, I can live with the fact that developers have to type a bit more.

I agree that this is now less relevant especially in the 1.0 timeframe. Can we move this to 1.x and revisit when we have actual users' perspectives on this issue?

I think we should remove the default if we expect to revisit later.

If the rest of the group also wants to drop this issue, I can live with the fact that developers have to type a bit more.

If there are no objects I will close this issue today?

Closed as not important anymore.


Update README-ID.md Indonesian translation

Update to latest README Translation

Update the Indonesian translation to be more consistent and easier to understand.

❤


Hanging on xcodebuild -showBuildSettings while creating template

Fixes #294
Workaround suggested in https://forums.developer.apple.com/thread/50372
After placing a lot of extra logs I found out that the template creating process hangs on xcodebuild shell script written in XcodeDeviceParser.parseTargetTypeFromSchemeAndProjectAtUrl(...) function.
Could be non-reproducible on some hosts or under Debug. It wasn't reproduced on my development host with Xcode 8.3.1 but reproduced all the time on remote build server with Xcode 8.2.1.

@czechboy0, could you spent some time on reviewing it?

I can't, I'm not involved with this project anymore. Please ask in the Slack, someone will help you out.


Resetting the form doesn't clear textarea elements

Here's the code I'm using:
import { reset } from 'redux-form';
dispatch(reset('interviewForm'));

As mentioned in https://github.com/erikras/redux-form/issues/11, resetting the form doesn't clear textareas.
I've confirmed it works with inputs, just not textareas.

Wow! Referencing issue #11! That must be a record. :smile:
This is somewhat of a known issue, https://github.com/facebook/react/issues/2533, as shown in the Simple Form example.

If you have some suggestions as to what redux-form could do to help, they'd be welcome.

Sorry @erikras, I just found #547! Thanks!


playerEntity.setVelocity() issues

https://github.com/TechzoneMC/SpawnShield/blob/3e9a56e8e420a228a248f95586cabb09eb279feb/base/src/main/java/net/techcable/spawnshield/tasks/KnockbackTask.java#L50
playerEntity.setVelocity(knockback);
I would like to point out the fact that packets sent because of "setVelocity()" will have no effects whatsoever on hacked clients that have antiknockback, like nothing happened (tested with Wurst).
And some plugins such as NCP have no "antiknockback" check.
Maybe add warning about this or something... there isn't much that can be done about this, except maybe check if player really moved etc but that would prob. be too expensive (PlayerMoveEvent or task every few ticks).
Just a thought :)

I could teleport them if they get too far in (like how teleport mode does) :smile:
This would require calculating distance and whatnot, but it should work well.


I tried this project from a medium post https://medium.com/javascript-in-plain-english/build-your-own-meme-generator-with-react-react-hooks-and-typescript-490f5200afbb

It is really a good tutorial &  I learnt how to work with file upload in react. I ran the project & it worked the first time then it started giving  an error with typescript as follows
TypeScript error in /mnt/d/ReactWork/react-meme-generator-tutorial/src/App.tsx(4,24):
Could not find a declaration file for module 'dom-to-image-more'. '/mnt/d/ReactWork/react-meme-generator-tutorial/node_modules/dom-to-image-more/src/dom-to-image-more.js' implicitly has an 'any' type.
  Try `npm install @types/dom-to-image-more` if it exists or add a new declaration (.d.ts) file containing `declare module 'dom-to-image-more';`  TS7016

    2 | import * as React from 'react';
    3 |
  > 4 | import domtoimage from 'dom-to-image-more';
      |                        ^
    5 |
    6 | //import components
    7 | import Content from './components/content';

Hi, did you try o install the @types/dom-to-image-more package?

yes i did but this is the error I get
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@types%2fdom-to-image-more - Not foundnpm ERR! 404
npm ERR! 404  '@types/dom-to-image-more@latest' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/lailah/.npm/_logs/2019-11-04T16_42_42_371Z-debug.log

Looks like dom-to-image-more has no type definitions. In that case, add index.d.ts file inside src folder. Inside that file, index.d.ts, add declare module 'dom-to-image-more';

@alexdevero , I've done that but I still get the same first error

Okay. My mistake add that declare ... line into react-app-env.d.ts file.

Thanks @alexdevero .
I've done that & that file #####react-app-env.d.ts file has
/// <reference types="react-scripts" />
and i'm getting this error :eyes:
/mnt/d/ReactWork/react-meme-generator-tutorial/src/App.tsx
TypeScript error in /mnt/d/ReactWork/react-meme-generator-tutorial/src/App.tsx(45,30):
Parameter 'event' implicitly has an 'any' type.  TS7006

    43 |
    44 |   //handle input elements
  > 45 |   function handleInputChange(event) {
       |                              ^
    46 |     if(event.target.name === 'text-top'){
    47 |       //update testTop states
    48 |       setTextTop(event.target.value)

Yes. I missed some types. Before I add them, you can bypass this by setting strict to false in tsconfig.json. This is not a good practice, but it will allow you to run the app even if some types are missing. I will add those types.

@alexdevero  Thanks, it ran for 2 seconds then gave this error
/mnt/d/ReactWork/react-meme-generator-tutorial/src/serviceWorker.ts
TypeScript error in /mnt/d/ReactWork/react-meme-generator-tutorial/src/serviceWorker.ts(29,7):
Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i @types/node`.  TS2580

    27 |
    28 | export function register(config?: Config) {
  > 29 |   if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
       |       ^
    30 |     // The URL constructor is available in all browsers that support SW.
    31 |     const publicUrl = new URL(
    32 |       (process as { env: { [key: string]: string } }).env.PUBLIC_URL,

@alexdevero thanks for this tutorial, It has really opened me up to learning new things :simple_smile:
it is really helpful and I can't wait for your other tutorials....
:+1:

@lailahgrant Glad to hear that 🙂. Is there some specific tutorial or subject that would be the most useful to you?

@alexdevero  actually this one was my first one but it was really great, actually I'm still working on it - with your guidance of actually :+1:
I will be waiting for your help on this react-meme-generator-ts

Okay 👍.

thanks :+1:
looking out for all your tutorials........


Unable to determine the device handle for GPU0009:01:00.0: Unknown Error

Hello.
I enabled the cc mode with the provided gpu_cc_tool.py with python3 ./gpu_cc_tool.py --gpu-name=H100 --set-cc-mode=on --reset-after-cc-mode-switch.
Output:
NVIDIA GPU Tools version 535.86.06
Topo:
  PCI 0009:00:00.0 0x10de:0x22b1
   GPU 0009:01:00.0 H100-PCIE 0x2342 BAR0 0x661002000000
2023-12-29,11:51:50.039 INFO     Selected GPU 0009:01:00.0 H100-PCIE 0x2342 BAR0 0x661002000000
2023-12-29,11:51:50.191 INFO     GPU 0009:01:00.0 H100-PCIE 0x2342 BAR0 0x661002000000 CC mode set to on. It will be active after GPU reset.
2023-12-29,11:51:51.976 INFO     GPU 0009:01:00.0 H100-PCIE 0x2342 BAR0 0x661002000000 was reset to apply the new CC mode.

Then, when doing nvidia-smi, I have the following error: Unable to determine the device handle for GPU0009:01:00.0: Unknown Error
My architecture:
Architecture:          aarch64
CPU op-mode(s):      64-bit
Byte Order:          Little Endian
CPU(s):                72
On-line CPU(s) list: 0-71
Vendor ID:             ARM
Model:               0
Thread(s) per core:  1
Core(s) per socket:  72
Socket(s):           1
Stepping:            r0p0
Frequency boost:     disabled
CPU max MHz:         3447.0000
CPU min MHz:         81.0000
BogoMIPS:            2000.00
Even if I had this error, switching to cc mode off was working. Unfortunately, I do not have the output, because I did sudo reboot.
After reboot: No devices were found. After this I ran nvidia-bug-report.sh, that is attached in this discussion.
Finally, below the output of ubuntu-drivers devices:
== /sys/devices/pci0009:00/0009:00:00.0/0009:01:00.0 ==
modalias : pci:v000010DEd00002342sv000010DEsd00001809bc03sc02i00
vendor   : NVIDIA Corporation
manual_install: True
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-535-server-open - distro non-free recommended
driver   : nvidia-driver-535-open - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

nvidia-bug-report.log.gz

It seems that ccmode=on builds a firewall that disables the host from operating this GPU (including nvidia-smi and run cuda applications). After you set the CC mode to on, you should bind this GPU to VFIO and pass through to the guest VM. In the guest, nvidia-smi should work.

Sorry, I do not know what is VFIO, so I do not know how to pass through it.
Moreover, yes, I am using ARM...
BTW, after reboot and after 1 hour, nvidia-smi is working again. However, for example if I try to run a docker container, then it seems not working properly:
ERROR: The NVIDIA Driver is present, but CUDA failed to initialize.  GPU functionality will not be available.
   [[ System not yet initialized (error 802) ]]

Nvidia Confidential Computing works with confidential virtual machines. You can refer to deployment guide provided by Nvidia. Section "Identifying the GPUs to be Passed Through to the Guest" tells the command related to vfio.

But, according to the whitepaper, it seems that ARM CCA is supported.

OK. You could try using H100 in CCA VM. I guess H100 CC does not work on the host machine.
Since AMD SEV-SNP works, CCA should work. Nvidia driver in the guest communicates with the GPU in the shared memory region, which is out of the enclave. There won't be differences in the usage of shared memory among these CVM architecture.

Sorry, just to be sure.
In order to use the CC mode, should I start following the guide just from the point you told me? "Identifying the GPUs to be Passed Through to the Guest".
Because I started from the beginning, and I am encountering a lot of errors when preparing to build the kernel.
build.py...
 : error 7000: Failed to execute command
	make tbuild [/root/brunofolder/AMDSEV/ovmf/Build/OvmfX64/DEBUG_GCC5/X64/NetworkPkg/Library/DxeIpIoLib/DxeIpIoLib]

build.py...
 : error 7000: Failed to execute command
	make tbuild [/root/brunofolder/AMDSEV/ovmf/Build/OvmfX64/DEBUG_GCC5/X64/NetworkPkg/Library/DxeNetLib/DxeNetLib]

build.py...
 : error F002: Failed to build module
	/root/brunofolder/AMDSEV/ovmf/NetworkPkg/Library/DxeIpIoLib/DxeIpIoLib.inf [X64, GCC5, DEBUG]

- Failed -
Build end time: 14:04:45, Dec.29 2023
Build total time: 00:00:03

ERROR: nice build -q --cmd-len=64436 -DDEBUG_ON_SERIAL_PORT=TRUE -n 72 -t GCC5 -a X64 -p OvmfPkg/OvmfPkgX64.dsc

Are you booting an AMD SEV-SNP VM or ARM CCA VM?
If you are booting CCA VM, you should begin with "Identifying the GPUs to be Passed Through to the Guest". After you finish this step, add -device vfio-pci,host=09:01.0 to the qemu script, and then boot the VM.

So, basically the steps are the following:

Install requirements

sudo apt update
sudo apt install -y ninja-build iasl nasm flex bison openssl dkms autoconf zlib1g-dev python3-pip libncurses-dev libssl-dev libelf-dev libudev-dev libpci-dev libiberty-dev libtool libsdl-console libsdl-console-dev libpango1.0-dev libjpeg8-dev libpixman-1-dev libcairo2-dev libgif-dev libglib2.0-dev git-lfs jq qemu-system
sudo  pip3 install numpy flex bison

Downloading GitHub Packages

mkdir my_folder
cd my_folder
$ git clone https://github.com/AMDESE/AMDSEV.git
$ git clone https://github.com/NVIDIA/nvtrust.git

Identifying the GPUs to be Passed Through to the Guest

lspci -d 10de:
sudo sh -c "echo 10de xxxx > /sys/bus/pci/drivers/vfio-pci/new_id"

Modify launch_vm.sh like this:

#
#  Copyright (c) 2023  NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
AMD_SEV_DIR=/shared/AMDSEV/snp-release-2023-07-18
VDD_IMAGE=/shared/nvtrust/host_tools/sample_kvm_scripts/images/ubuntu22.04.qcow2

#Hardware Settings
NVIDIA_GPU=45:00.0
MEM=64 #in GBs
FWDPORT=9899

doecho=false
docc=true

while getopts "exp:" flag
do
        case ${flag} in
                e) doecho=true;;
                x) docc=false;;
                p) FWDPORT=${OPTARG};;
        esac
done

NVIDIA_GPU=$(lspci -d 10de: | awk '/NVIDIA/{print $1}')
NVIDIA_PASSTHROUGH=$(lspci -n -s $NVIDIA_GPU | awk -F: '{print $4}' | awk '{print $1}')

if [ "$doecho" = true ]; then
         echo 10de $NVIDIA_PASSTHROUGH > /sys/bus/pci/drivers/vfio-pci/new_id
fi

if [ "$docc" = true ]; then
        USE_HCC=true
fi

$AMD_SEV_DIR/usr/local/bin/qemu-system-x86_64 \
${USE_HCC:+ -machine confidential-guest-support=sev0,vmport=off} \
${USE_HCC:+ -object sev-snp-guest,id=sev0,cbitpos=51,reduced-phys-bits=1} \
-enable-kvm -nographic -no-reboot \
-cpu EPYC-v4 -machine q35 -smp 12,maxcpus=31 -m ${MEM}G,slots=2,maxmem=512G \
-drive if=pflash,format=raw,unit=0,file=$AMD_SEV_DIR/usr/local/share/qemu/OVMF_CODE.fd,readonly=on \
-drive file=$VDD_IMAGE,if=none,id=disk0,format=qcow2 \
-device virtio-scsi-pci,id=scsi0,disable-legacy=on,iommu_platform=true \
-device scsi-hd,drive=disk0 \
-device virtio-net-pci,disable-legacy=on,iommu_platform=true,netdev=vmnic,romfile= \
-netdev user,id=vmnic,hostfwd=tcp::$FWDPORT-:22 \
-device pcie-root-port,id=pci.1,bus=pcie.0 \
-device vfio-pci,host=$NVIDIA_GPU,bus=pci.1 \
-device vfio-pci,host=09:01.0 \
-fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=262144

-object sev-snp-guest implies that the script is for AMD SEV-SNP VMs.

And the other variables are correct?
I mean these:
AMD_SEV_DIR, VDD_IMAGE, NVIDIA_GPU, MEM, FWDPORT
I am sure that NVIDIA_GPU needs to be = 0009:01:00.0 according to the output of lspci -d 10de:, that is:
0000:00:00.0 PCI bridge: NVIDIA Corporation Device 22b2
0002:00:00.0 PCI bridge: NVIDIA Corporation Device 22b2
0004:00:00.0 PCI bridge: NVIDIA Corporation Device 22b2
0005:00:00.0 PCI bridge: NVIDIA Corporation Device 22b8
0006:00:00.0 PCI bridge: NVIDIA Corporation Device 22b2
0008:00:00.0 PCI bridge: NVIDIA Corporation Device 22b9
0009:00:00.0 PCI bridge: NVIDIA Corporation Device 22b1
0009:01:00.0 3D controller: NVIDIA Corporation Device 2342 (rev a1)

But what about the other variables?

If you target CCA VMs, you should first prepare a qemu script for booting a CCA VM without H100.
The qemu script provided by Nvidia could be divided into two parts:

Script for booting SEV-SNP VM without H100.
Add -device vfio-pci,host=$NVIDIA_GPU,bus=pci.1 to pass through H100.

Sorry, but I have no idea. Never worked on this stuff.
This is my actual launch_vm.sh, that is inside /nvtrust/host_tools/sample_kvm_scripts.
#
#  Copyright (c) 2023  NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
AMD_SEV_DIR=/root/brunofolder/AMDSEV/snp-release-2023-07-18
VDD_IMAGE=/shared/nvtrust/host_tools/sample_kvm_scripts/images/ubuntu22.04.qcow2

#Hardware Settings
NVIDIA_GPU=09:01.0
MEM=64 #in GBs
FWDPORT=9899

doecho=false
docc=true

while getopts "exp:" flag
do
        case ${flag} in
                e) doecho=true;;
                x) docc=false;;
                p) FWDPORT=${OPTARG};;
        esac
done

NVIDIA_GPU=$(lspci -d 10de: | awk '/NVIDIA/{print $1}')
NVIDIA_PASSTHROUGH=$(lspci -n -s $NVIDIA_GPU | awk -F: '{print $4}' | awk '{print $1}')

if [ "$doecho" = true ]; then
         echo 10de $NVIDIA_PASSTHROUGH > /sys/bus/pci/drivers/vfio-pci/new_id
fi

if [ "$docc" = true ]; then
        USE_HCC=true
fi

$AMD_SEV_DIR/usr/local/bin/qemu-system-x86_64 \
${USE_HCC:+ -machine confidential-guest-support=sev0,vmport=off} \
${USE_HCC:+ id=sev0,cbitpos=51,reduced-phys-bits=1} \
-enable-kvm -nographic -no-reboot \
-cpu EPYC-v4 -machine q35 -smp 12,maxcpus=31 -m ${MEM}G,slots=2,maxmem=512G \
-drive if=pflash,format=raw,unit=0,file=$AMD_SEV_DIR/usr/local/share/qemu/OVMF_CODE.fd,readonly=on \
-drive file=$VDD_IMAGE,if=none,id=disk0,format=qcow2 \
-device virtio-scsi-pci,id=scsi0,disable-legacy=on,iommu_platform=true \
-device scsi-hd,drive=disk0 \
-device virtio-net-pci,disable-legacy=on,iommu_platform=true,netdev=vmnic,romfile= \
-netdev user,id=vmnic,hostfwd=tcp::$FWDPORT-:22 \
-device pcie-root-port,id=pci.1,bus=pcie.0 \
-device vfio-pci,host=$NVIDIA_GPU,bus=pci.1 \
-fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=262144

How can I split this?

This repo does not provide scripts for ARM CCA.
To run H100 CC on ARM, you should:

Check whether the CPU support CCA. If not, Nvidia CC could not work on the machine.
Then, prepare a script to run CCA VM.
Add -device vfio-pci,host=$NVIDIA_GPU,bus=pci.1 to the script.

ARM CCA is currently not supported. That whitepaper is more forward-looking, ie there will come a day when it is supported.

This repo does not provide scripts for ARM CCA.
To run H100 CC on ARM, you should:

Check whether the CPU support CCA. If not, Nvidia CC could not work on the machine.
Then, prepare a script to run CCA VM.
Add -device vfio-pci,host=$NVIDIA_GPU,bus=pci.1 to the script.

@Tan-YiFan One interesting thing is that CCA hasn't been ratified yet (as far as I know), and NVIDIA is blocked due to upstream updates.

@CasellaJr If you want to use CC functionalities of H100 GPUs, you must have an AMD-SNP or Intel TDX supported machine available on your side and configure the machine according to NVIDIA's manual. The deployment guide only mentions TDX and SNP. So, you cannot use H100 + CC on an unsupported machine but you can certainly utilize its computing resources to, e.g., train models more productively.
If you enable CC mode for H100 then it will block all host IO requests since H100 assumes the host platform is completely untrusted.

Also, there is one thing we must be aware of. That is, the H100's CC functionalities are still in the phase of early access and many features are subject to frequent change. I believe CCA will soon be supported in the coming future :)

Hi everyone.
I have now access to another machine with H100 and Intel processor Xeon Gold 6438Y+, that it seems to support TDX https://www.intel.com/content/www/us/en/products/sku/232382/intel-xeon-gold-6438y-processor-60m-cache-2-00-ghz/specifications.html
However, in this machine I have AlmaLinux, while the deployment guide refers to Ubuntu. Do you think is it compatible the guide?

@CasellaJr

To check whether the CPU supports TDX, you can refer to https://github.com/intel/tdx-tools/tree/tdx-1.5#12-hardware-availability.
Steps in Setting Up the Host OS (Intel TDX) would be incompatible. Does your machine support rhel-8? If so, you can refer to https://github.com/intel/tdx-tools/tree/2023ww15/build/rhel-8 for installing the host OS. Other steps are compatible (you can boot a Ubuntu guest VM).


Can it be used for Liberty Profile?

I want to deploy my war on remote host. Liberty has it's own plugin but it only allows to deploy war on local box.  Can orctom used for Liberty Profile 8.5.0 version?
Thanks
Jitendra

Never tried before, Liberty profile and full profile might be using different mechanism for deployment.
Appreciates if you could provide any input!

No, not supported at all.
As the document stated, only two ways to deploy to a liberty profile:

Deploy an application by dropping it into the dropins directory.
Deploy an application by adding it to the server configuration file.

You should be able to simply scp/rsyc/ftp your package to remote box, placing it into the dropins directory by using maven-antrun-plugin and/or exec-maven-plugin.


[Feature Request]: Convex Database Adapter

Description
Hi, we'd love to include Lucia as an auth solution for Convex (see Jack Herrington video), and provide an official adapter package.
I have a working demo of Lucia with Convex. The adapter is fairly straightforward.
https://github.com/pilcrowOnPaper/lucia/assets/1473433/995cebf4-9ab4-4486-9785-1b7754364c50
I'm following the Contributing guidelines and posting here before putting in the work of to create a PR for the official adapter package.
Anything else I should be aware of or info I should share with the community?
Thanks!

I've tested Convex before, and it was... weird.
I know that you have to create a new query function for each db query. I'm not sure how that'd work out for a published library. I'm also not sure if Convex has enough users to warrant a new package. Another issue is that, to my knowledge, it doesn't support transactions, or at least I couldn't fine any resources on it.

It's new and therefore a bit weird :) We did release a 1.0 though this week, so it's at least more stable now. We also got a lot more attention with this release, so our user numbers should grow accordingly.
You do write a query function for every DB query. Convex has also strict type-safe split between reads and writes (queries and mutations), and this means Lucia needs to be initialized inside the query/mutation (to your point about library integration). No big deal.

Another issue is that, to my knowledge, it doesn't support transactions, or at least I couldn't fine any resources on it.

This is one of the cool (and weird) properties of Convex: every mutation function is a transaction! So implementing the adapter correctly was super straightforward. Docs on transactions are here.
Depending on when you tested Convex, it might have evolved significantly!
Let me know if these tip the scales towards including a Convex adapter. Thanks!

Hey @pilcrowOnPaper we published an article and demo repo on using Lucia with Convex: https://stack.convex.dev/convex-with-lucia
Lucia really is a perfect fit for us for custom auth implementation, thanks for building it!
Let me know if you think the adapter would be accepted, and I'll work on packaging it up.
Also let me know what you think about the localStorage session approach.

Yeah I'm going to close this since there just isn't enough interest for it, at least right now. Still, thanks to @xixixao for their work :D

We have an adapter library published separately on NPM: https://www.npmjs.com/package/@convex-dev/convex-lucia-auth


UUI integration

user can optionally turn on:

UUI's cross-mod hotkey conflict resolution for TMPE.
Add TMPE button to UUI.

this is draft because I still need to add option to option menu.
and update TMPE texture

why log-dir is the target branch?

@kianzarrin hehe, you requested review but didn't change anything 😄
Anyways, I fixed Appveyor build pipeline to include UnifiedUILib.dll in the zip file


No release file for Lunar

I'm getting no release file for Lunar. Running MX-Linux 21.3

Should be available now.


CLIMATE-714 - Updating the regridding routine

ocw.dataset_processor._rcmes_spatial_regrid has been replaced by scipy.interpolate.griddata to properly regrid datasets in curvilinear grid.

Merged build triggered. Test Failed.

Merged build started. Test Failed.

Merged build finished. Test Failed.


Composer 2 introduces non-BC changes

Trying to install using Composer 2 fails as the plugin version needs to be updated to 2.0 - you can see the requirements here: https://github.com/composer/composer/blob/master/UPGRADE-2.0.md#user-content-for-integrators-and-plugin-authors
Output from user on Slack:
:~/httpdocs$ composer update
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
 Problem 1
  - silverstripe/recipe-plugin 0.1.0 requires composer-plugin-api ^1.1 -> found composer-plugin-api[2.0.0] but it does not match your constraint.
  - silverstripe/recipe-plugin 0.2.0 requires composer-plugin-api ^1.1 -> found composer-plugin-api[2.0.0] but it does not match your constraint.
  - silverstripe/recipe-plugin 1.0.0 requires composer-plugin-api ^1.1 -> found composer-plugin-api[2.0.0] but it does not match your constraint.
  - silverstripe/recipe-plugin 1.1.0 requires composer-plugin-api ^1.1 -> found composer-plugin-api[2.0.0] but it does not match your constraint.
  - silverstripe/recipe-plugin 1.2.0 requires composer-plugin-api ^1.1 -> found composer-plugin-api[2.0.0] but it does not match your constraint.
  - silverstripe/recipe-plugin 1.3.0 requires composer-plugin-api ^1.1 -> found composer-plugin-api[2.0.0] but it does not match your constraint.
  - Root composer.json requires silverstripe/recipe-plugin @stable -> satisfiable by silverstripe/recipe-plugin[1.3.0, 1.2.0, 1.1.0, 1.0.0, 0.2.0, 0.1.0].
You are using a snapshot build of Composer 2, which some of your plugins seem to be incompatible with. Make sure you update your plugins or report an issue to them to ask them to support Composer 2. To work around this you can run Composer with --ignore-platform-reqs, but this will also ignore your PHP version and may result in bigger problems down the line.

Shouldn't be too difficult of a change but will need to be done before Composer 2 is widely adopted

vendor-plugin will have the same problem.

Did 2 PRs to fix vendor-plugin and recipe-plugin.
I used this composer.json file to test it. For some reason, composer2 didn't want to run an update because it didn't seem to be picking the branch aliases. This might be a bug with the way composer2 picks up the aliases, or maybe something has changed there.
But otherwise it seemed to pick the plugins just fine and let them do their thing.
{
    "name": "silverstripe/installer",
    "type": "silverstripe-recipe",
    "description": "The SilverStripe Framework Installer",
    "require": {
        "php": ">=7.1.0",
        "silverstripe/recipe-plugin": "dev-pulls/1/support-composer-ii as 1.4.0",
        "silverstripe/vendor-plugin": "dev-pulls/1/support-composer-ii as 1.4.0",
        "silverstripe/recipe-cms": "4.5.x-dev",
        "silverstripe-themes/simple": "~3.2.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^5.7"
    },
    "config": {
        "process-timeout": 600
    },
    "prefer-stable": true,
    "minimum-stability": "dev",
    "repositories": [
        {
            "type": "vcs",
            "url": "git@github.com:open-sausages/recipe-plugin.git"
        },
        {
            "type": "vcs",
            "url": "git@github.com:open-sausages/vendor-plugin.git"
        }
    ]
}

I'm reducing the impact of this one to "high". Composer 2 hasn't even hit alpha stage yet.

Looks like there was a recent announcement to release v2.0 before the end of October.

Composer 2.0 has been released. Could Maxime's PRs be merged now?


feat: Added new option for user in the verify callback.

Thanks for the contribution I have a minor issue with changelog.
But I'm curious. @janhalama Perhaps we could extend ProfileWithMetadata from Express.User? I'm not sure how these Express interfaces work.

This is definitely a bug in definition of verify function callback. The verify function has profile parameter which is in case of our strategy of type ProfileWithMetadata. The  parameter user in done callback is a resolved user which will be assigned by the Strategy to the request context.
Express.User is defined as empty object and any object can be assigned to it.
I would either remove ProfileWithMetaData from the done user parameter type definition.
export class Strategy extends OAuth2Strategy {
...
  constructor(
      options: StrategyOptions,
      verify: (
        accessToken: string,
        refreshToken: string,
        profile: ProfileWithMetaData,
        done: (error: Error | null, user?: Express.User) => void
      ) => void
    ) {
  ...
  }
}

OR
use TypeScript Generics:
export class Strategy<User extends Express.User> extends OAuth2Strategy {
...
  constructor(
      options: StrategyOptions,
      verify: (
        accessToken: string,
        refreshToken: string,
        profile: ProfileWithMetaData,
        done: (error: Error | null, user?: User) => void
      ) => void
    ) {
  ...
  }
}

I'm not sure if @leafaar has a particular use in mind, but I think the first option, ie. pass just Express.User, would be sufficient for starters?

I think it's all good just passing the Express.User. Thank you!

I've opened #28 on top of your PR to keep my changes separate. I will close this PR and we will merge your commits with that other PR. Thanks for pointing out this issue!

@leafaar I've just released v1.2.2 with your fix. Thanks again!

Thank you!


beginner help needed: cannot start server

Situation
I'm trying to set up a mailserver on my virtual server with 2gb ram.
Lets say my domain is: example.com
I'm a beginner in the Mailserver topic. I set the MX Record to:
mail.example.com. (set a dot at the end)
So my .env file looks like this:
HOSTNAME=mail
DOMAINNAME=example.com
CONTAINER_NAME=mail
Current Situation
docker-compose up mail
does output the following:
ERROR: for mail  Cannot start service mail: driver failed programming external connectivity on endpoint mail (0de6bf11eb65dddfba1c9991ee5f285785b23fa47a2be594fca0d670224aceb8): Error starting userland proxy:
Can you help me? Do I have to make other preparations, what am i missing?
Thank You

driver failed programming external connectivity on endpoint

This is a docker error indicating docker is not able to bind the ports.
See https://github.com/docker/compose/issues/3277

Please check ports used on your system using sudo netstat -nlp (grep target ports).

If your ports are not already used by an other service, you can try to restart docker.

If your host is running Windows then this is a very common problem with the Windows docker implementation. Restarting docker usually helps. In other cases it sounds more like a port conflict.
Please update the issue and close it if you find a solution or provide more information if not.

This issue was closed due to one or more of the following reasons:

Age
Contributor inactivity

If you think this happened by accident, or feel like this issue was not actually resolved, please feel free to re-open it. If there is an issue you could resolve in the meantime, please open a PR based on the current master branch so we can review it.


Move Health struct to its own component

Health is currently a struct and part of the core component of things that use it (PlayerComponent, MobComponent). We should make health its own component.

#82


Retry Sqlstate codes

fixes #76

You can pass an array of sql codes that you want to ignore.
I'm not sure about what to use as default and how to allow the child extractors to override the RetryProxy used in the export method, but most child extractors have overridden the export method.

Thanks for the comments @odinuv .
I was thinking that since this class should be Exception agnostic (you can tell it whatever exception class you want to retry), it may be best to rename SqlRetryPolicy to CodeRetryPolicy.  In CodeRetryPolicy you can set the Exception Class for which you want to specify which codes to retry on.  This way it will remain generic and usable for other than PDO drivers.

@odinuv
So I think I will have the policy accept 2 arrays ignorableErrorCodes = ["WhateverException" => ["42000", "2****"] and retryableErrorCodes = ["SomeException" => ["2", "3"]  So we can cover both ways and leave it up to the user whether to use white or black listing.

Now if someone puts the same Exception/code combination in both arrays, what should it do? :-D

exactly, i'd start with one array, let's not over do it

Note, accept callback method so users can do what they want in-between tries (ie. reset connection etc...)


New Python lambda layers do not capture any data

Describe the bug
I have instrumented a simple Python lambda function with the new OTEL collector lambda layer and the new Python instrumentation layer. The collector is configured to export the metrics and traces to the lambda logs (via the logging exporter) as well as an external backend (via the otlphttp exporter).
Unfortunately, I do not see any metrics or trace data in either the lambda logs or the external backend. If I replace the new OTEL lambda layers with the old Amazon ADOT lambda layer, I am able to see traces in the lambda logs and both metrics and traces in the external backend. This suggests that the issue is with the new lambda layers.
Steps to reproduce
Create a (Python 3.9, x86_64) lambda with the following files:

lambda_function.py: Contains the lambda code

from urllib.request import urlopen
import json

def lambda_handler(event, context):

    with urlopen('http://postman-echo.com/get') as response:
        response_bytes = response.read()
        response_dict = json.loads(response_bytes)

    return response_dict

collector.yaml: Contains the OTEL collector config

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 'localhost:4317'
      http:
        endpoint: 'localhost:4318'

exporters:
  logging:
    verbosity: detailed
  otlphttp/metrics:
    endpoint: 'xxx'
    tls:
      insecure: false
      insecure_skip_verify: true
  otlphttp/traces:
    endpoint: 'xxx'
    tls:
      insecure: false
      insecure_skip_verify: true

service:
  pipelines:
    metrics:
      receivers: [otlp]
      exporters: [logging, otlphttp/metrics]
    traces:
      receivers: [otlp]
      exporters: [logging, otlphttp/traces]
  telemetry:
    metrics:
      address: localhost:8888

Add the following env variable:

OPENTELEMETRY_COLLECTOR_CONFIG_FILE: /var/task/collector.yaml

Add the following new OTEL lambda layers:

arn:aws:lambda:us-east-1:184161586896:layer:opentelemetry-collector-amd64-0_1_0:1
arn:aws:lambda:us-east-1:184161586896:layer:opentelemetry-python-0_1_0:1

Increase lambda timeout past the default 3 sec (I increased to 9 sec as per this AWS blog post).
What did you expect to see?

Metrics and traces in the lambda logs (i.e. in the CloudWatch log group corresponding to that lambda)
Metrics and traces in the external backend

What did you see instead?

No metrics or traces in the lambda logs
No metrics or traces in the external backend

What version of collector/language SDK version did you use?

opentelemetry-collector v0.76.1
opentelemetry-collector-contrib v0.76.3
opentelemetry-python 1.18.0/0.39b0

What language layer did you use?
Python
Additional context
With the new OTEL lambda layers, these are the lambda logs I get -- as noted, they do not contain any metrics or traces. Also, the external backend (not shown) does not contain any metrics or traces:
INIT_START Runtime Version: python:3.9.v23	Runtime Version ARN: arn:aws:lambda:us-east-1::runtime:xxx
{
    "level": "info",
    "ts":<PHONE_NUMBER>.8501613,
    "msg": "Launching OpenTelemetry Lambda extension",
    "version": "v0.76.0"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.8537326,
    "logger": "telemetryAPI.Listener",
    "msg": "Listening for requests",
    "address": "sandbox:53612"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.8551075,
    "logger": "telemetryAPI.Client",
    "msg": "Subscribing",
    "baseURL": "http://<IP_ADDRESS>:9001/2022-07-01/telemetry"
}

TELEMETRY	Name: collector	State: Subscribed	Types: [Platform]
{
    "level": "info",
    "ts":<PHONE_NUMBER>.8576913,
    "logger": "telemetryAPI.Client",
    "msg": "Subscription success",
    "response": "\"OK\""
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.857857,
    "logger": "NewCollector",
    "msg": "Using config URI from environment",
    "uri": "/var/task/collector.yaml"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.8700795,
    "caller": "service/telemetry.go:92",
    "msg": "Setting up own telemetry..."
}

{
    "level": "Basic",
    "ts":<PHONE_NUMBER>.8705246,
    "caller": "service/telemetry.go:149",
    "msg": "Serving Prometheus metrics",
    "address": "localhost:8888"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.8706422,
    "caller": "exporter@v0.76.1/exporter.go:286",
    "msg": "Development component. May change in the future.",
    "kind": "exporter",
    "data_type": "metrics",
    "name": "logging"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.9061983,
    "caller": "exporter@v0.76.1/exporter.go:286",
    "msg": "Development component. May change in the future.",
    "kind": "exporter",
    "data_type": "traces",
    "name": "logging"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.9088805,
    "caller": "service/service.go:129",
    "msg": "Starting otelcol-lambda...",
    "Version": "v0.76.0",
    "NumCPU": 2
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.9090724,
    "caller": "extensions/extensions.go:41",
    "msg": "Starting extensions..."
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.9092343,
    "caller": "otlpreceiver@v0.76.1/otlp.go:94",
    "msg": "Starting GRPC server",
    "kind": "receiver",
    "name": "otlp",
    "data_type": "metrics",
    "endpoint": "localhost:4317"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.909417,
    "caller": "otlpreceiver@v0.76.1/otlp.go:112",
    "msg": "Starting HTTP server",
    "kind": "receiver",
    "name": "otlp",
    "data_type": "metrics",
    "endpoint": "localhost:4318"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.9095626,
    "caller": "service/service.go:146",
    "msg": "Everything is ready. Begin running and processing data."
}

EXTENSION	Name: collector	State: Ready	Events: [INVOKE, SHUTDOWN]
START RequestId: 829cd60c-8b84-4c46-a327-eda7c5e26da1 Version: $LATEST
END RequestId: 829cd60c-8b84-4c46-a327-eda7c5e26da1
REPORT RequestId: 829cd60c-8b84-4c46-a327-eda7c5e26da1	Duration: 305.42 ms	Billed Duration: 306 ms	Memory Size: 128 MB	Max Memory Used: 82 MB	Init Duration: 377.18 ms
{
    "level": "info",
    "ts":<PHONE_NUMBER>.3654792,
    "logger": "lifecycle.manager",
    "msg": "Received SHUTDOWN event"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.3656828,
    "logger": "telemetryAPI.Listener",
    "msg": "HTTP Server closed:",
    "error": "http: Server closed"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.3658288,
    "caller": "otelcol/collector.go:246",
    "msg": "Received shutdown request"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.3849585,
    "caller": "service/service.go:155",
    "msg": "Starting shutdown..."
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.3853285,
    "caller": "extensions/extensions.go:55",
    "msg": "Stopping extensions..."
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.3853457,
    "caller": "service/service.go:169",
    "msg": "Shutdown complete."
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.3854933,
    "msg": "done"
}

Instead, if you replace the two OTEL lambda layers with the following ADOT lambda layer:
arn:aws:lambda:us-east-1:901920570463:layer:aws-otel-python-amd64-ver-1-17-0:1
and add the following env variable:
AWS_LAMBDA_EXEC_WRAPPER: /opt/otel-instrument
Then I see traces in the lambda logs, and both metrics and traces in the external backend (not shown here):
INIT_START Runtime Version: python:3.9.v23	Runtime Version ARN: arn:aws:lambda:us-east-1::runtime:xxx
{
    "level": "info",
    "ts":<PHONE_NUMBER>.4487019,
    "msg": "Launching OpenTelemetry Lambda extension",
    "version": "v0.28.0"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.4531193,
    "logger": "telemetryAPI.Listener",
    "msg": "Listening for requests",
    "address": "sandbox:53612"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.4532046,
    "logger": "telemetryAPI.Client",
    "msg": "Subscribing",
    "baseURL": "http://<IP_ADDRESS>:9001/2022-07-01/telemetry"
}

TELEMETRY	Name: collector	State: Subscribed	Types: [Platform]
{
    "level": "info",
    "ts":<PHONE_NUMBER>.4559968,
    "logger": "telemetryAPI.Client",
    "msg": "Subscription success",
    "response": "\"OK\""
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.4560287,
    "logger": "NewCollector",
    "msg": "Using config URI from environment",
    "uri": "/var/task/collector.yaml"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.4672554,
    "caller": "service/telemetry.go:90",
    "msg": "Setting up own telemetry..."
}

{
    "level": "Basic",
    "ts":<PHONE_NUMBER>.4681895,
    "caller": "service/telemetry.go:116",
    "msg": "Serving Prometheus metrics",
    "address": "localhost:8888"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.4682777,
    "caller": "exporter@v0.75.0/exporter.go:286",
    "msg": "Development component. May change in the future.",
    "kind": "exporter",
    "data_type": "traces",
    "name": "logging"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.472519,
    "caller": "exporter@v0.75.0/exporter.go:286",
    "msg": "Development component. May change in the future.",
    "kind": "exporter",
    "data_type": "metrics",
    "name": "logging"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.4890018,
    "caller": "service/service.go:129",
    "msg": "Starting aws-otel-lambda...",
    "Version": "v0.28.0",
    "NumCPU": 2
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.4892137,
    "caller": "extensions/extensions.go:41",
    "msg": "Starting extensions..."
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.490859,
    "caller": "otlpreceiver@v0.75.0/otlp.go:94",
    "msg": "Starting GRPC server",
    "kind": "receiver",
    "name": "otlp",
    "data_type": "metrics",
    "endpoint": "localhost:4317"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.4911032,
    "caller": "otlpreceiver@v0.75.0/otlp.go:112",
    "msg": "Starting HTTP server",
    "kind": "receiver",
    "name": "otlp",
    "data_type": "metrics",
    "endpoint": "localhost:4318"
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.491234,
    "caller": "service/service.go:146",
    "msg": "Everything is ready. Begin running and processing data."
}

EXTENSION	Name: collector	State: Ready	Events: [INVOKE, SHUTDOWN]
START RequestId: 9ac3d6a3-b727-4486-9f06-b05d65fecf7d Version: $LATEST
{
    "level": "info",
    "ts":<PHONE_NUMBER>.8895519,
    "msg": "TracesExporter",
    "kind": "exporter",
    "data_type": "traces",
    "name": "logging",
    "#spans": 1
}

{
    "level": "info",
    "ts":<PHONE_NUMBER>.8896523,
    "msg": "ResourceSpans #0\nResource SchemaURL: \nResource attributes:\n     -> telemetry.sdk.language: Str(python)\n     -> telemetry.sdk.name: Str(opentelemetry)\n     -> telemetry.sdk.version: Str(1.17.0)\n     -> cloud.region: Str(us-east-1)\n     -> cloud.provider: Str(aws)\n     -> faas.name: Str(xxx)\n     -> faas.version: Str($LATEST)\n     -> faas.instance: Str(2023/06/23/[$LATEST]xxx)\n     -> service.name: Str(xxx)\n     -> telemetry.auto.version: Str(0.38b0)\nScopeSpans #0\nScopeSpans SchemaURL: \nInstrumentationScope opentelemetry.instrumentation.aws_lambda 0.38b0\nSpan #0\n    Trace ID       : 9448308f423c682768407c60d64be8e9\n    Parent ID      : \n    ID             : 15bb2fda670ac79b\n    Name           : lambda_function.lambda_handler\n    Kind           : Server\n    Start time     : 2023-06-23 15:25:51.473425744 +0000 UTC\n    End time       : 2023-06-23 15:25:51.827264627 +0000 UTC\n    Status code    : Unset\n    Status message : \nAttributes:\n     -> faas.id: Str(arn:aws:lambda:us-east-1:xxx:function:xxx)\n     -> faas.execution: Str(9ac3d6a3-b727-4486-9f06-b05d65fecf7d)\n",
    "kind": "exporter",
    "data_type": "traces",
    "name": "logging"
}

END RequestId: 9ac3d6a3-b727-4486-9f06-b05d65fecf7d
REPORT RequestId: 9ac3d6a3-b727-4486-9f06-b05d65fecf7d	Duration: 615.12 ms	Billed Duration: 616 ms	Memory Size: 128 MB	Max Memory Used: 110 MB	Init Duration: 1249.72 ms

It works for me, did you follow the instruction here ? https://opentelemetry.io/docs/faas/lambda-auto-instrument/ You still need to set AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-instrument

@tylerbenson I believe we can close this issue. Because as @shuwpan mentioned, even with OTEL layer, AWS_LAMBDA_EXEC_WRAPPER env var needs to be set to /opt/otel-instrument


Light theme version?

Do you plan to make a light version of Catppuccin?
Yours is my favorite theme, and I use it a home, but my office is too bright for a dark theme.
If not, do you have any suggestions for a light theme with similar aesthetics? I haven’t found one nearly as pretty as Catppuccin!

Wrong place. Check out: https://github.com/catppuccin/catppuccin/issues/40


Consider Adding DuckDB VSCode extension to list of supported SQL editors

I've authored a VSCode extension which allows you to explore, write queries, as run them against DuckDB files.
https://marketplace.visualstudio.com/items?itemName=Evidence.sqltools-duckdb-driver
If this is of interest, I can submit a PR for review.

By all means!