How to track revenue?

I'm looking to track revenue to Amplitude, so that it shows up in reports of type Revenue LTV.  I read here: https://help.amplitude.com/hc/en-us/articles/115003116888-Track-revenue
Do we simply need to specify these properties in logEvent? like this:
amplitude.logEvent({
  user_id,
  revenue: 100,
});

When I do this I do see the $revenue property on the event in amplitude, but i see $0 revenue in the Revenue LTV report

Hi @alexblack,
The event_types is required in the logEvent. And the event_type for revenue is ``.
Can you try
amplitude.logEvent({
 event_type:  "revenue_amount"
  user_id,
  revenue: 100,
});

Thanks for the response.  It turns out it was working fine, I just had the
wrong expectations about how/when it'd show up in Amplitude.
(I was setting event_type, I had left it out of the code snippet)
On Wed, Oct 19, 2022 at 1:19 PM, Alyssa Yu @.***> wrote:

Hi @alexblack https://github.com/alexblack,
The event_types is required in the logEvent. And the event_type for
revenue is ``.
Can you try
amplitude.logEvent({
event_type:  "revenue_amount"
user_id,
revenue: 100,
});
—
Reply to this email directly, view it on GitHub
https://github.com/amplitude/Amplitude-Node/issues/181#issuecomment-1284526696,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABELQRDKSF2IDNV5QGMDE3WEBJTRANCNFSM6AAAAAAQ65LV6A
.
You are receiving this because you were mentioned.Message ID:
@.***>

Closing this issue since it works fine. Feel free to re-open or create another issue if you need other help. Thanks.


id/mangaku: added override baseUrl setting

Checklist:

[x] Updated extVersionCode value in build.gradle for individual extensions
[ ] Updated overrideVersionCode or baseVersionCode as needed for all multisrc extensions
[ ] Referenced all related issues in the PR body (e.g. "Closes #xyz")
[ ] Added the isNsfw = true flag in build.gradle when appropriate
[x] Have not changed source names
[ ] Have explicitly kept the id if a source's name or language were changed
[x] Have tested the modifications by compiling and running the extension through Android Studio
[ ] Have removed web_hi_res_512.png when adding a new extension

Preference should not depend on either AppInfo or extension's BuildConfig.
Only update the base URL if you don't know how to handle it.


Fix typo in example

There is no G, I believe you meant DEF instead of EFG.  While I was here, I also changed another example to consistently use DEF for out values instead of ABC.

Thanks and good catch on that :)


Add test

Current coverage is 85.71%

Branch #27 has no coverage reports uploaded yet.

No diff could be generated. No reports for master found.

Powered by Codecov. Updated on successful CI builds.


Add basic framework for Hermes CLI (Cosmos-only for now)

Closes: #XXX
Description

PR author checklist:

[ ] Added changelog entry, using unclog.
[ ] Added tests: integration (for Hermes) or unit/mock tests (for modules).
[ ] Linked to GitHub issue.
[ ] Updated code comments and documentation (e.g., docs/).
[ ] Tagged one reviewer who will be the one responsible for shepherding this PR.

Reviewer checklist:

[ ] Reviewed Files changed in the GitHub PR explorer.
[ ] Manually tested (in case integration/unit/mock tests are absent).

Just added a connection create command. Here is how to use it:

Create a client on ibc0 referencing ibc1:

❯ cargo run -p hermes-cli -- --config config.toml client create --host-chain ibc0 --reference-chain ibc1
2024-02-07T13:44:48.690946Z  INFO hermes_relayer_runtime::impls::logger::base_logger: Creating client on host chain `ibc0` that references chain `ibc1`... details="{\"settings\": Tendermint(Settings { max_clock_drift: 40s, trusting_period: None, trust_threshold: TrustThreshold(Ratio { numer: 2, denom: 3 }) })}"
2024-02-07T13:44:51.140584Z  INFO hermes_relayer_runtime::impls::logger::base_logger: Successfully created client on host chain `ibc0`: 07-tendermint-4 details="{}"

Client ID: 07-tendermint-4

Create a client on ibc1 referencing ibc0:

❯ cargo run -p hermes-cli -- --config config.toml client create --host-chain ibc1 --reference-chain ibc0
2024-02-07T13:45:01.442186Z  INFO hermes_relayer_runtime::impls::logger::base_logger: Creating client on host chain `ibc1` that references chain `ibc0`... details="{\"settings\": Tendermint(Settings { max_clock_drift: 40s, trusting_period: None, trust_threshold: TrustThreshold(Ratio { numer: 2, denom: 3 }) })}"
2024-02-07T13:45:02.276416Z  INFO hermes_relayer_runtime::impls::logger::base_logger: Successfully created client on host chain `ibc1`: 07-tendermint-1 details="{}"

Client ID: 07-tendermint-1

Create a connection using the two clients:

❯ cargo run -p hermes-cli -- --config ~/.hermes/config.toml connection create --chain-a ibc0 --client-a 07-tendermint-4 --chain-b ibc1 --client-b 07-tendermint-1
2024-02-07T13:45:36.312528Z  INFO hermes_relayer_runtime::impls::logger::base_logger: Creating connection between ibc0:07-tendermint-4 and ibc1:07-tendermint-1... details="{\"options\": CosmosInitConnectionOptions { delay_period: 0ns, connection_version: Version { identifier: \"1\", features: [\"ORDER_ORDERED\", \"ORDER_UNORDERED\"] } }}"
2024-02-07T13:46:02.639480Z  INFO hermes_relayer_runtime::impls::logger::base_logger: Connection successfully created between ibc0:07-tendermint-4 and ibc1:07-tendermint-1 details="{\"connection_id_a\": connection-1, \"connection_id_b\": connection-1}"

Connection ID on ibc0: connection-1
Connection ID on ibc1: connection-1

Added a channel create command:
❯ cargo run -p hermes-cli -- --config ~/.hermes/config.toml channel create --chain-a ibc0 --client-a 07-tendermint-4 --chain-b ibc1 --client-b 07-tendermint-1 --connection-a connection-1
2024-02-07T14:39:05.595364Z  INFO hermes_relayer_runtime::impls::logger::base_logger: Creating channel between ibc0:07-tendermint-4 and ibc1:07-tendermint-1 on connection connection-1... details="{\"options\": CosmosInitChannelOptions { ordering: Unordered, connection_hops: [ConnectionId(\"connection-1\")], channel_version: Version(\"ics20-1\") }}"
2024-02-07T14:39:39.663066Z  INFO hermes_relayer_runtime::impls::logger::base_logger: Channel successfully created between ibc0 and ibc1 details="{\"channel_id_a\": channel-1, \"channel_id_b\": channel-1}"

Added a start command to relay between two clients:

Start relaying between the two clients we just created:

❯ cargo run -p hermes-cli -- --config config.toml start --chain-a ibc0 --client-a 07-tendermint-4 --chain-b ibc1 --client-b 07-tendermint-1
2024-02-07T15:14:25.977948Z  INFO Starting relayer... details="{}"
2024-02-07T15:14:26.744694Z  INFO Relaying between ibc0 and ibc1... details="{}"

In another terminal, using Hermes v1, send a message on the channel we just created above:

❯ hermes tx ft-transfer --dst-chain ibc1 --src-chain ibc0 --src-port transfer --src-channel channel-1 --amount 42 --timeout-seconds 120000 --number-msgs 1

Go back to the first terminal:

2024-02-07T15:21:32.135801Z  INFO starting to relay packet details="{\"relay_context\": {\"src_chain_id\": ibc0, \"dst_chain_id\": ibc1, \"src_client_id\": 07-tendermint-4, \"dst_client_id\": 07-tendermint-1}, \"packet\": seq:1, path:channel-1/transfer->channel-1/transfer, toh:no timeout, tos:2024-02-09T00:41:22.077604Z)}"
2024-02-07T15:21:32.138404Z  INFO relaying receive packet details="{\"relay_context\": {\"src_chain_id\": ibc0, \"dst_chain_id\": ibc1, \"src_client_id\": 07-tendermint-4, \"dst_client_id\": 07-tendermint-1}, \"packet\": seq:1, path:channel-1/transfer->channel-1/transfer, toh:no timeout, tos:2024-02-09T00:41:22.077604Z)}"
2024-02-07T15:21:42.241041Z  INFO relaying ack packet details="{\"relay_context\": {\"src_chain_id\": ibc0, \"dst_chain_id\": ibc1, \"src_client_id\": 07-tendermint-4, \"dst_client_id\": 07-tendermint-1}, \"packet\": seq:1, path:channel-1/transfer->channel-1/transfer, toh:no timeout, tos:2024-02-09T00:41:22.077604Z)}"
2024-02-07T15:21:52.263319Z  INFO successfully relayed packet details="{\"relay_context\": {\"src_chain_id\": ibc0, \"dst_chain_id\": ibc1, \"src_client_id\": 07-tendermint-4, \"dst_client_id\": 07-tendermint-1}, \"packet\": seq:1, path:channel-1/transfer->channel-1/transfer, toh:no timeout, tos:2024-02-09T00:41:22.077604Z)}"

@soareschen Would love to hear what you think so far. It's pretty minimal but should get us started for Cosmos-only relaying.
We should now start thinking about how to make it work for Sovereign chains as well. We probably need an abstraction on top of CosmosBuilder. How would you go about this?


Include doxygen in gitignore

Hey, this is just a minor thing. Can you please include the output directories of doxygen in the gitignore file? Thanks & regards.
diff --git a/.gitignore b/.gitignore
index 6f5b269..6f63201 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,5 @@ Release
Debug64
Release64
.metadata/
+html/
+latex/

please create a pull request with the patch


feat: add AmChartsTreeMap block

Codecov Report

Merging #8 (8d86e18) into main (214e225) will not change coverage.
The diff coverage is 0.00%.

@@          Coverage Diff          @@
##            main      #8   +/-   ##
=====================================
  Coverage   0.00%   0.00%
=====================================
  Files          2       3    +1
  Lines         88     132   +44
  Branches      20      30   +10
=====================================
- Misses        68     102   +34
- Partials      20      30   +10

Impacted Files
Coverage Δ

src/blocks/AmChartsTreeMap/AmChartsTreeMap.js
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


Create alpha release

In order to anticipate upstream changes and quickly prepare a major release, we should create an alpha release.

Create an alpha tag on the release PR
Publish this tag as v8.0.0-alpha.x

Test this release (see below issues).
Add any resulting bugs as issues to the parent epic.

Prerelase build is here.


Make use of the isActive field in the UserModel

Describe the solution you'd like
When we are checking if a user is authenticated, we could add another dependency in the auth middleware. Dependency being a fastapi dependency.
Currently the dependency chain checks the following way:

checks if token is available
check if token is valid and

return user or
return error

We can extend it to also check in third step if the user is active or not (the backend has to tell us this specific information). The new dependency flow would be as follows:

checks if token is available
check if token is valid parse user information
check if user is active

return user or
return error

Additional context
https://github.com/ag-gipp/NLP-Land-prediction-endpoint/blob/96f164955b3581c6e91e012d8d5fcd1b31e82582/nlp_land_prediction_endpoint/models/model_user.py#L29
Can you please also open an issue for that and link this line of code of your commit in the issue?
Originally posted by @jpelhaW in https://github.com/ag-gipp/NLP-Land-prediction-endpoint/pull/12#discussion_r771196074

Thank's for including the issue :)


Support no baseline issue.

Js removes its baseline recently which failed the analysis step.
Failed pipeline: https://dev.azure.com/azure-sdk/public/_build/results?buildId=1420643&view=logs&j=90227089-9f51-5ecc-566c-84e1f2918394&t=7da0f684-6369-5290-bb0b-5d27f59dde66
Need to add check for no baseline case.
Testing pipeline: https://dev.azure.com/azure-sdk/public/_build/results?buildId=1421019&view=logs&j=bc67675d-56bf-581f-e0a2-208848ba68ca&t=7eee3a58-6120-518b-7fcb-7e943712aa81

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

We can simply remove the baseline parameter in js repo. Closed the PR as it is not needed.


TypeError: init() takes exactly 2 arguments (3 given)

Was the issue fixed? I am having the same issue.

@liutao0532 Please don't close issues you haven't solved / haven't disclosed an answer to

I have solved the problem, because the version of construct is too high,
Python Version: 2.7


Export Generated Types

Preflight Checklist

[x] I could not find a solution in the existing issues, docs, nor discussions
[x] I have joined the ZITADEL chat

Describe your problem
I would like to type function that use part of the api response. when ie importing Profile the compile will crash:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './dist/commonjs/api/generated/zitadel/user' is not defined by "exports"

Describe your ideal solution
export the generated types
    "./api/generated/*": {
      "import": "./dist/esm/api/generated/",
      "require": "./dist/commonjs/api/generated"
    },

Version
No response
Environment
Self-hosted
Additional Context
No response

@peintnermax can you please have a look at this

@wodka can you describe a little better what you try to achieve? How are you importing the types right now?

@peintnermax I would like to consume the generated types from the package as part of my implementation.
// this is the path where the file resides, but cannot import it
// import { Profile } from '@zitadel/node/dist/commonjs/api/generated/zitadel/user'
// this would be a nice import path that decides itself between commonjs and esm
// import { Profile } from '@zitadel/node/api/generated/zitadel/user'
function somewhere() {
const response = await this.zitadel.getForOrg(user.zitadelResourceOwner).getHumanProfile({ userId: user.zitadel });
return new UserDto(user, response.profile!);
}
class UserDto {
constructor(user: UserEntity, p: Profile) {
// beeing able to use the typed data in here!
}
}
currently I am adding a copy of the zitadel profile type in my own code base, but it would be great to be able to use it from the package

Got it.. Types are exported by the package @zitadel/proto? Can you try if this fixes your issue?
import { User, UserState } from "@zitadel/proto/zitadel/user/v2/user_pb";

Closing this due to inactivity


33 placement des navires

Coverage decreased (-6.7%) to 67.816% when pulling 388e72104d6c112ec810e3a126078664449f4d26 on 33-Placement-des-navires into 637483d61c7a2e97930b870c9c36b553d3bcfb1e on master.

Coverage decreased (-6.7%) to 67.816% when pulling 388e72104d6c112ec810e3a126078664449f4d26 on 33-Placement-des-navires into 637483d61c7a2e97930b870c9c36b553d3bcfb1e on master.


Ship GHC 8.0

I have 8.0.1 working locally. Putting this here to remind myself to push later

@ChristopherBiscardi any news on 8.0.1 ;)

@ocramz https://github.com/freebroccolo/docker-haskell/pull/47
Just need to update the hashes and submit a PR to official

Official Images PR is https://github.com/docker-library/official-images/pull/1848

Closing since the PR was merged. Thanks @ocramz

Thanks to you @ChristopherBiscardi  !


Privacy Config refactoring

Task/Issue URL: https://app.asana.com/0/856498667320406/1200749768481989/f
Tech Design URL: https://app.asana.com/0/856498667320406/1200792278010298/f
CC:
Description:
Refactor Privacy Config API to make it more clear and easy to use - see Tech Design for details.
Add unit tests to validate the whole Content Blocking stack.
Bugfixes:

Fix Privacy Protection UI when site is in content blocking exception list - it is now treated same as Temp List exception.
Fix content blocking reporting and surrogates JS to properly report trackers as blocked on subdomains of Locally unprotected sites.

Steps to test this PR:
Validate if Unit Tests work as intended and there are no incorrect assumptions.
For manual tests, you can now use Debug screen to get location of Privacy Config and tweak it to add/remove Temp Sites and feature exceptions. Then validate if trackers are blocked, surrogates injected and Privacy Protection screen has correct info.
General smoke tests.

Device Testing:

[x] iPhone
[x] iPad

OS Testing:

[x] iOS 13
[x] iOS 14

Internal references:
Software Engineering Expectations
Technical Design Template
When ready for review, remember to post the PR in MM

Thank you, @brindy @THISISDINOSAUR !


Remove Nano Server topic

Fixes #6064

Saw a few links in need of update as well.
No redirect for removed content. We should be putting out a 410 Gone, but idk if that's possible. [EDIT] Out of curiosity, I opened an issue to ask: https://github.com/dotnet/docfx/issues/2672

@shirhatti Check me on the removal of the bit in the logging topic.

@shirhatti  never mind, I got it.
@guardrex  Thanks! Nice clean up.


⚠ Feedaty widget has degraded performance

In 06e44c6, Feedaty widget (https://widget.feedaty.com/public/js/feedaty.js?merchant=10213975&style_ver=2021&data-sku=36263) experienced degraded performance:

HTTP code: 200
Response time: 1135 ms

Resolved: Feedaty widget performance has improved in 301c674.


Contrast for highlighted code in Light theme is way too low

Describe the bug
There are times when there is a lot of code amidst the important piece of code in a specific example. That code is highlighted so that your attention is drawn to it. However, the contrast is way too low for the Light theme.
For reference, here are some pictures from my screen:

This is a problem with viewing angles. If I look at the screen at an angle, I see the different color.
In order for this kind of thing to work on every screen (especially LCDs), the contrast has to be higher. With the Dark theme, the contrast is way higher (even a bit distracting, maybe 😁).
To Reproduce
Steps to reproduce the behavior:

Use a cheap LCD screen??
https://docs.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-2.2&tabs=visual-studio
Choose Light theme
Scroll down to the place shown in the picture above
Fail to see the highlight

Expected behavior
I can clearly see which lines are highlighted
Desktop (please complete the following information):

OS: Windows 10 1903
Browser: Chrome
Version: 73

@andre-ss6 Thank you for the feedback, we have submitted this into our internal ticketing system.
With the current theme it isn't to do with the price of the monitor but primarily with the panel type. There are different types of LCD panels and some of them are better or worse at displaying true colors depending on the viewing angle.


Unable to use snappy compression with fluentdv1.x

Describe the bug
Unable to use snappy compression with fluentdv1.x, getting the some exception when the producer pushes messages. In fluent configuration, "snappy" compression is enabled.
To Reproduce

Using docker official image v1.15-1,
compression snappy is enabled on fluent configuration file on a topic
Try pushing messages in that topic

Expected behavior
Wants to enable snappy compression on a Kafka topic.
Your Environment
- Fluent version: 1.x docker image
- TD Agent version: not sure, how to check.I'm using 1.x image
- Operating system: alphine
- Kernel version: not sure using official 1.15-1 docker image.

Your Configuration
Docker image -

FROM fluent/fluentd:v1.15-1

# Use root account to use apk
USER root
# below RUN includes plugin as examples elasticsearch is not required
# you may customize including plugins as you wish
RUN apk add --no-cache --update --virtual .build-deps \
        sudo build-base curl ruby ruby-dev autoconf automake libtool g++ snappy-dev

RUN fluent-gem install snappy
RUN fluent-gem install fluent-plugin-kafka
RUN fluent-gem install fluent-plugin-prometheus
RUN sudo gem sources --clear-all \
 && apk del .build-deps \
 && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem

USER root

Your Error Log
/usr/lib/ruby/gems/3.1.0/gems/ruby-kafka-1.5.0/lib/kafka/snappy_codec.rb:16:in `rescue in load': Using snappy compression requires adding a dependency on the `snappy` gem to your Gemfile. (LoadError)

from /usr/lib/ruby/gems/3.1.0/gems/ruby-kafka-1.5.0/lib/kafka/snappy_codec.rb:13:in `load'

from /usr/lib/ruby/gems/3.1.0/gems/ruby-kafka-1.5.0/lib/kafka/compression.rb:30:in `find_codec'

from /usr/lib/ruby/gems/3.1.0/gems/ruby-kafka-1.5.0/lib/kafka/compressor.rb:28:in `initialize'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/kafka_producer_ext.rb:51:in `new'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/kafka_producer_ext.rb:51:in `custom_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:210:in `create_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:277:in `block in get_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:274:in `synchronize'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:274:in `get_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:323:in `write'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin/output.rb:1180:in `try_flush'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin/output.rb:1501:in `flush_thread_run'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin/output.rb:501:in `block (2 levels) in start'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create'

<internal:/usr/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require': Error loading shared library libsnappy.so.1: No such file or directory (needed by /usr/lib/ruby/gems/3.1.0/gems/snappy-0.3.0/lib/snappy_ext.so) - /usr/lib/ruby/gems/3.1.0/gems/snappy-0.3.0/lib/snappy_ext.so (LoadError)

from <internal:/usr/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'

from /usr/lib/ruby/gems/3.1.0/gems/snappy-0.3.0/lib/snappy.rb:5:in `<top (required)>'

from <internal:/usr/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:160:in `require'

from <internal:/usr/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:160:in `rescue in require'

from <internal:/usr/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:149:in `require'

from /usr/lib/ruby/gems/3.1.0/gems/ruby-kafka-1.5.0/lib/kafka/snappy_codec.rb:14:in `load'

from /usr/lib/ruby/gems/3.1.0/gems/ruby-kafka-1.5.0/lib/kafka/compression.rb:30:in `find_codec'

from /usr/lib/ruby/gems/3.1.0/gems/ruby-kafka-1.5.0/lib/kafka/compressor.rb:28:in `initialize'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/kafka_producer_ext.rb:51:in `new'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/kafka_producer_ext.rb:51:in `custom_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:210:in `create_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:277:in `block in get_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:274:in `synchronize'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:274:in `get_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:323:in `write'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin/output.rb:1180:in `try_flush'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin/output.rb:1501:in `flush_thread_run'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin/output.rb:501:in `block (2 levels) in start'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create'

<internal:/usr/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- snappy (LoadError)

from <internal:/usr/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'

from /usr/lib/ruby/gems/3.1.0/gems/ruby-kafka-1.5.0/lib/kafka/snappy_codec.rb:14:in `load'

from /usr/lib/ruby/gems/3.1.0/gems/ruby-kafka-1.5.0/lib/kafka/compression.rb:30:in `find_codec'

from /usr/lib/ruby/gems/3.1.0/gems/ruby-kafka-1.5.0/lib/kafka/compressor.rb:28:in `initialize'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/kafka_producer_ext.rb:51:in `new'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/kafka_producer_ext.rb:51:in `custom_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:210:in `create_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:277:in `block in get_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:274:in `synchronize'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:274:in `get_producer'

from /usr/lib/ruby/gems/3.1.0/gems/fluent-plugin-kafka-0.18.1/lib/fluent/plugin/out_kafka2.rb:323:in `write'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin/output.rb:1180:in `try_flush'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin/output.rb:1501:in `flush_thread_run'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin/output.rb:501:in `block (2 levels) in start'

from /usr/lib/ruby/gems/3.1.0/gems/fluentd-1.15.3/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create'

Additional context
No response

found the issue in the docker file, snappy dependent on some. so file, which was being removed in rm -rf command.
following fix , works for me:
RUN apk --no-cache add ruby-dev snappy g++ snappy-dev make
&& sudo gem install fluent-plugin-kafka -v 0.17.1
&& sudo gem install snappy -v 0.0.17
&& sudo gem install fluent-plugin-prometheus -v 1.8.4
&& sudo gem sources --clear-all


[Gem] Cocoapods breaks with latest xcodeproj gem.

Hi,
I had to force:
gem 'xcodeproj', '1.4.2'
Version 1.4.3 seems to break the pod configuration.
Thanks,
H.

I opened an issue in the corresponding repository https://github.com/CocoaPods/Xcodeproj/issues/478
It's not a fault of @delba it's a bug in xcodeproj

Fixed by https://github.com/CocoaPods/CocoaPods/pull/6629


htaglib-1.0.1 test suite failure in latest LTS package set

Citing from http://hydra.cryp.to/build/1618499/nixlog/2/raw:
Test suite tests: RUNNING...
Getters:
  checking file: "audio-samples/sample.flac": [Failed]
expected: AudioTags {atFileName = "audio-samples/sample.flac", atTitle = Title {unTitle = "title"}, atArtist = Artist {unArtist = "artist"}, atAlbum = Album {unAlbum = "album"}, atComment = Comment {unComment = "comment"}, atGenre = Genre {unGenre = "genre"}, atYear = Just (Year {unYear = 2055}), atTrackNumber = Just (TrackNumber {unTrackNumber = 7}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 0}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
 but got: AudioTags {atFileName = "audio-samples/sample.flac", atTitle = Title {unTitle = "title"}, atArtist = Artist {unArtist = "artist"}, atAlbum = Album {unAlbum = "album"}, atComment = Comment {unComment = "comment"}, atGenre = Genre {unGenre = "genre"}, atYear = Just (Year {unYear = 2055}), atTrackNumber = Just (TrackNumber {unTrackNumber = 7}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 217}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
  checking file: "audio-samples/sample.mp3": [Failed]
expected: AudioTags {atFileName = "audio-samples/sample.mp3", atTitle = Title {unTitle = "title"}, atArtist = Artist {unArtist = "artist"}, atAlbum = Album {unAlbum = "album"}, atComment = Comment {unComment = "comment"}, atGenre = Genre {unGenre = "genre"}, atYear = Just (Year {unYear = 2055}), atTrackNumber = Just (TrackNumber {unTrackNumber = 7}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 0}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
 but got: AudioTags {atFileName = "audio-samples/sample.mp3", atTitle = Title {unTitle = "title"}, atArtist = Artist {unArtist = "artist"}, atAlbum = Album {unAlbum = "album"}, atComment = Comment {unComment = "comment"}, atGenre = Genre {unGenre = "genre"}, atYear = Just (Year {unYear = 2055}), atTrackNumber = Just (TrackNumber {unTrackNumber = 7}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 136}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
  checking file: ("audio-samples/sample.flac",FLAC): [Failed]
expected: AudioTags {atFileName = "audio-samples/sample.flac", atTitle = Title {unTitle = "title"}, atArtist = Artist {unArtist = "artist"}, atAlbum = Album {unAlbum = "album"}, atComment = Comment {unComment = "comment"}, atGenre = Genre {unGenre = "genre"}, atYear = Just (Year {unYear = 2055}), atTrackNumber = Just (TrackNumber {unTrackNumber = 7}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 0}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
 but got: AudioTags {atFileName = "audio-samples/sample.flac", atTitle = Title {unTitle = "title"}, atArtist = Artist {unArtist = "artist"}, atAlbum = Album {unAlbum = "album"}, atComment = Comment {unComment = "comment"}, atGenre = Genre {unGenre = "genre"}, atYear = Just (Year {unYear = 2055}), atTrackNumber = Just (TrackNumber {unTrackNumber = 7}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 217}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
  checking file: ("audio-samples/sample.mp3",MPEG): [Failed]
expected: AudioTags {atFileName = "audio-samples/sample.mp3", atTitle = Title {unTitle = "title"}, atArtist = Artist {unArtist = "artist"}, atAlbum = Album {unAlbum = "album"}, atComment = Comment {unComment = "comment"}, atGenre = Genre {unGenre = "genre"}, atYear = Just (Year {unYear = 2055}), atTrackNumber = Just (TrackNumber {unTrackNumber = 7}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 0}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
 but got: AudioTags {atFileName = "audio-samples/sample.mp3", atTitle = Title {unTitle = "title"}, atArtist = Artist {unArtist = "artist"}, atAlbum = Album {unAlbum = "album"}, atComment = Comment {unComment = "comment"}, atGenre = Genre {unGenre = "genre"}, atYear = Just (Year {unYear = 2055}), atTrackNumber = Just (TrackNumber {unTrackNumber = 7}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 136}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
Setters:
  checking file: "audio-samples/sample.flac": [Failed]
expected: AudioTags {atFileName = "/tmp/nix-build-htaglib-1.0.1.drv-0/sample.flac", atTitle = Title {unTitle = "title'"}, atArtist = Artist {unArtist = "artist'"}, atAlbum = Album {unAlbum = "album'"}, atComment = Comment {unComment = "comment'"}, atGenre = Genre {unGenre = "genre'"}, atYear = Just (Year {unYear = 2056}), atTrackNumber = Just (TrackNumber {unTrackNumber = 8}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 0}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
 but got: AudioTags {atFileName = "/tmp/nix-build-htaglib-1.0.1.drv-0/sample.flac", atTitle = Title {unTitle = "title'"}, atArtist = Artist {unArtist = "artist'"}, atAlbum = Album {unAlbum = "album'"}, atComment = Comment {unComment = "comment'"}, atGenre = Genre {unGenre = "genre'"}, atYear = Just (Year {unYear = 2056}), atTrackNumber = Just (TrackNumber {unTrackNumber = 8}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 217}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
  checking file: "audio-samples/sample.mp3": [Failed]
expected: AudioTags {atFileName = "/tmp/nix-build-htaglib-1.0.1.drv-0/sample.mp3", atTitle = Title {unTitle = "title'"}, atArtist = Artist {unArtist = "artist'"}, atAlbum = Album {unAlbum = "album'"}, atComment = Comment {unComment = "comment'"}, atGenre = Genre {unGenre = "genre'"}, atYear = Just (Year {unYear = 2056}), atTrackNumber = Just (TrackNumber {unTrackNumber = 8}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 0}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
 but got: AudioTags {atFileName = "/tmp/nix-build-htaglib-1.0.1.drv-0/sample.mp3", atTitle = Title {unTitle = "title'"}, atArtist = Artist {unArtist = "artist'"}, atAlbum = Album {unAlbum = "album'"}, atComment = Comment {unComment = "comment'"}, atGenre = Genre {unGenre = "genre'"}, atYear = Just (Year {unYear = 2056}), atTrackNumber = Just (TrackNumber {unTrackNumber = 8}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 136}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
  checking file: ("audio-samples/sample.flac",FLAC): [Failed]
expected: AudioTags {atFileName = "/tmp/nix-build-htaglib-1.0.1.drv-0/sample.flac", atTitle = Title {unTitle = "title'"}, atArtist = Artist {unArtist = "artist'"}, atAlbum = Album {unAlbum = "album'"}, atComment = Comment {unComment = "comment'"}, atGenre = Genre {unGenre = "genre'"}, atYear = Just (Year {unYear = 2056}), atTrackNumber = Just (TrackNumber {unTrackNumber = 8}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 0}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
 but got: AudioTags {atFileName = "/tmp/nix-build-htaglib-1.0.1.drv-0/sample.flac", atTitle = Title {unTitle = "title'"}, atArtist = Artist {unArtist = "artist'"}, atAlbum = Album {unAlbum = "album'"}, atComment = Comment {unComment = "comment'"}, atGenre = Genre {unGenre = "genre'"}, atYear = Just (Year {unYear = 2056}), atTrackNumber = Just (TrackNumber {unTrackNumber = 8}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 217}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
  checking file: ("audio-samples/sample.mp3",MPEG): [Failed]
expected: AudioTags {atFileName = "/tmp/nix-build-htaglib-1.0.1.drv-0/sample.mp3", atTitle = Title {unTitle = "title'"}, atArtist = Artist {unArtist = "artist'"}, atAlbum = Album {unAlbum = "album'"}, atComment = Comment {unComment = "comment'"}, atGenre = Genre {unGenre = "genre'"}, atYear = Just (Year {unYear = 2056}), atTrackNumber = Just (TrackNumber {unTrackNumber = 8}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 0}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}
 but got: AudioTags {atFileName = "/tmp/nix-build-htaglib-1.0.1.drv-0/sample.mp3", atTitle = Title {unTitle = "title'"}, atArtist = Artist {unArtist = "artist'"}, atAlbum = Album {unAlbum = "album'"}, atComment = Comment {unComment = "comment'"}, atGenre = Genre {unGenre = "genre'"}, atYear = Just (Year {unYear = 2056}), atTrackNumber = Just (TrackNumber {unTrackNumber = 8}), atDuration = Duration {unDuration = 0}, atBitRate = BitRate {unBitRate = 136}, atSampleRate = SampleRate {unSampleRate = 44100}, atChannels = Channels {unChannels = 2}}

         Test Cases  Total
 Passed  0           0
 Failed  8           8
 Total   8           8
Test suite tests: FAIL
~~~~~

Cc: @mrkkrp

Looks like you have more recent version of taglib now. As you can see, the difference is in bit rate: older versions return 0 for such short files, while newer versions return something more realistic. I can update the test suite to expect the new bit rate values, will it resolve the problem completely or you need it to pass with any version of taglib?

The best solution would be, of course, if the test suite passed on as many installations as possible.

htaglib-1.0.2 is now on Hackage. Its test suite should pass with any version of TagLib.

htaglib-1.0.2 is in Nightly and LTS 5 now.


Update yakui to fix its Vulkan code for older computers

The yakui library had a semi-recent fix (https://github.com/SecondHalfGames/yakui/pull/165) that reduces its system requirements. This PR applies that fix to Hypermine.
The following validation errors were present on my laptop before this fix:
2024-09-10T23:00:36.823502Z ERROR Validation Error: [ VUID-VkPipelineLayoutCreateInfo-descriptorType-03016 ] | MessageID = 0x56816e61 | vkCreatePipelineLayout():  max per-stage sampler bindings count (1000) exceeds device maxPerStageDescriptorSamplers limit (64). The Vulkan spec states: The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers (https://vulkan.lunarg.com/doc/view/1.3.290.0/windows/1.3-extensions/vkspec.html#VUID-VkPipelineLayoutCreateInfo-descriptorType-03016) id=VUID-VkPipelineLayoutCreateInfo-descriptorType-03016 number=1451322977 queue_labels= cmd_labels= objects=
2024-09-10T23:00:36.824037Z ERROR Validation Error: [ VUID-VkPipelineLayoutCreateInfo-descriptorType-06939 ] | MessageID = 0x609f841b | vkCreatePipelineLayout():  max per-stage sampled image bindings count (1000) exceeds device maxPerStageDescriptorSampledImages limit (200). The Vulkan spec states: The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages (https://vulkan.lunarg.com/doc/view/1.3.290.0/windows/1.3-extensions/vkspec.html#VUID-VkPipelineLayoutCreateInfo-descriptorType-06939) id=VUID-VkPipelineLayoutCreateInfo-descriptorType-06939 number=1621066779 queue_labels= cmd_labels= objects=
2024-09-10T23:00:36.824638Z ERROR Validation Error: [ VUID-VkPipelineLayoutCreateInfo-descriptorType-03028 ] | MessageID = 0x624a370c | vkCreatePipelineLayout():  sum of sampler bindings among all stages (1000) exceeds device maxDescriptorSetSamplers limit (576). The Vulkan spec states: The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSamplers (https://vulkan.lunarg.com/doc/view/1.3.290.0/windows/1.3-extensions/vkspec.html#VUID-VkPipelineLayoutCreateInfo-descriptorType-03028) id=VUID-VkPipelineLayoutCreateInfo-descriptorType-03028 number=1649030924 queue_labels= cmd_labels= objects=
2024-09-10T23:00:36.825203Z ERROR Validation Error: [ VUID-VkGraphicsPipelineCreateInfo-layout-01688 ] | MessageID = 0x442e1dd0 | vkCreateGraphicsPipelines(): pCreateInfos[0].pStages[1] VK_SHADER_STAGE_FRAGMENT_BIT exceeds component limit VkPhysicalDeviceLimits::maxPerStageResources (200). The Vulkan spec states: The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources (https://vulkan.lunarg.com/doc/view/1.3.290.0/windows/1.3-extensions/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-layout-01688) id=VUID-VkGraphicsPipelineCreateInfo-layout-01688 number=1143872976 queue_labels= cmd_labels= objects=

Weird, my gitconfig got messed up, turning my name and email address into =, which I didn't realize until after merging. I'm not sure whether it's worth a rebase or not on the master branch to fix this, but I've fixed my gitconfig for next time.


Path penetration

Hello
I am a 360 code security team staff member who found a path traversal vulnerability in weblogic-kubernetes-operator in our open source code detection project.Details are as follows：
weblogic-kubernetes-operator-master\integration-tests\src\test\java\oracle\kubernetes\operator\utils\PersistentVolume.java

When the domainUID is controlled by the user, the path may be created by "../" to create a file in any folder.

You do recognize that this is an integration test, right? It's not production code.

We are grateful for your scan, but as Russ noted, this code point is in functional test setup logic that is not part of production code. Please limit your scans to production code.


Allow dropout overwrites on EfficientNet

Fixes #7029
Also fixes the linter breakage caused by an earlier PR.

The CI is completely broken but I tested the tests locally and they all pass. Merging.


Ali: Agile Development: 4 weeks

AGILE DEVELOPMENT
Planning and Collaborating.
Learning Objectives
Developing HTML & CSS

VSCode:

[x] use the LiveServer extension to launch an HTML page in the browser
[x] use autocomplete to begin a new HTML document, create new tags, and much
more
[x] use the HTML CSS Support and IntelliSense fo CSS class names
extensions to make writing HTML & CSS more efficient

Formatting HTML & CSS:

[ ] use VSCode configurations to format your code on save
[x] use npm run format to format all the code in your repository

[x]  Linting CSS: You can use the npm run lint:css script to find
mistakes in your CSS, and you can fix the mistakes.
[x] Validating HTML: You can use the npm run validate:html script to
find mistakes in your CSS, and you can fix the mistakes.
Browser Developer Tools:

[x] inspect the source code of a web page using the Sources tab
[x] find any part of the web page in the Elements tab of your Dev Tools DOM
inspector
[x] find the styles for any element in the Elements tab
[x] make temporary changes in a web page from the Elements tab to see how
they will look

1. Following Plans

[x]  Project Definition and Scope: As a group, you can agree on what you
are trying to build, and can clearly describe the project using a README
and a repository description.
Project Constraints: As a group you can define project constraints by
discussing your strengths, weaknesses and context. You can set these types of
constraints:
[x] External: constraints that come from outside your group
[x] Internal, Involuntary: constraints that come from within your group,
but your group did not decide to have.
[x] Internal, Voluntary: constraints your group decides on to improve the
quality of your development process and final software.
[x]  Communication Plans: You can work with your group mates to agree on
a communication plan to follow during development.
[x]  Communicating Challenges: During development you can discuss with
your group when ...

you are blocked and need help the agreed channels of communication.
your schedule or availability changes
you are having trouble getting along with each other

[x] Using a Backlog: You can develop from a backlog of features
organized by priority:

must-have
should-have
could-have

[x]  Follow a Development Strategies: You can follow a development
strategy to understand the code required for must-have user stories.
[x] Create Issues From a Dev Strategy: You can create issues for user
stories in your project based on the development strategy.
Retrospective: Your group can complete a retrospective to ...
[ ] assess how well you worked as a group
[ ] find ways to improve in the next project
[ ] compare your plan to the reality of developing your website
Claiming and Completing Issues: You can claim issues from the TODO
column of a project board and ...
[ ] track your progress with the project board
[ ] develop your code locally on a separate branch
[ ] send a PR that passes CI checks and meets the requirements
[ ] Code Review: You can both review a group mate's PR, and
productively participate in a review of your own code.
[ ]  Match a Design & Acceptance Criteria: When developing your tasks,
you can write code that matches the project's Wireframe and meets your
issue's Acceptance Criteria.

2. Writing Plans

[x]  Write User Personas: As a group you can describing your site's
users with User Personas, and you can use the personas to plan your
website from the user's perspective.
[x]  Write User Stories: Given a working web page, you can describe it
with user stories and acceptance criteria for each user story.
[x]  Write a Backlog: After listing all the user stories for a web page,
you can organize them into a Backlog by priority: must-have,
should-have and could-have
[x]  Create a Prioritized Design: Using your backlog and the original
site as a guide, you can create a Wireframe of the site your group will
build. You can use different colors and comments to indicate a priority
for each component in the Wireframe.
[x] Write a Development Strategies: You can translate your Wireframe
and Backlog into a Development Strategy for the must-have user stories.

3. Adapting Plans

[x]  Adjusting the Backlog: As a group you can agree to changes in the
backlog when necessary.
[x]  Adjusting the Design: As a group you can agree on changes to the
design during the development process when it becomes clear your old
design needs updating.
[ ] Updating the Project Board: You can manage the project board by
adding, removing or updating issues when necessary. This includes changing
labels, milestones, or assignees when necessary.

Week 1
I Need Help With:

More practice and more sources.

What went well?

Allcodes worked almsot very well and I llearned many new things.

What went less well?

I could not understand the usage of some selectors
We did the design wrong I need to change it.

Lessons Learned

I understood the mentality of HTML and CSS

Sunday Prep Work

I will watch the video again.

Week 2
I Need Help With:

More practice and more sources.

What went well?

Allcodes worked almsot very well and I llearned many new things.

What went less well?

I could not understand the usage of some selectors
We did the design wrong I need to change it.

Lessons Learned

I understood the mentality of HTML and CSS

Sunday Prep Work

I will watch the video again.

Week 3
I Need Help With:

To solve the errors because of support files.

What went well?

Core values section looks similar with the original one.

What went less well?

I failed at the success stories section.
We did the design wrong I need to change it.

Lessons Learned

I understood the mentality of HTML and CSS

Sunday Prep Work

I have to learn more about HTML and CSS and how to fix errors.

@alisanlii  Where is  Week 2 Check-In?

To solve the errors because of support files. anything we can help?

I have some problems with npm run before lint:css not validate:html. I am in contact with the coaches to solve them.


Update and rename 009.json to 010.json

added twenty more quotes

Why did you remove data/009.json? And some of the lines in data/010.json does not have commas. Fix this.

can i have write access to get commas fixed or has this issue been resolved?

@linsogles You will need access to Claire's( @managerclaire  ) repo. I'm closing this due to no response from @managerclaire


[Sema] Fix 'any P' inheritance clause diagnostics

Add a fixit to the existential inheritance diagnostics to remove 'any' and tighten the diagnostics for enums with existential conformance.
Fixes rdar://89378741

@swift-ci please smoke test

I think adding a note to say only raw types such as strings, integers, or floating-point literals can conform to protocol RawRepresentable could give an adequate hint why the any type does not work here

also I think the fixit makes it clear that any was written by mistake
%0 declares raw type %1, existential types cannot conform to protocol RawRepresentable
This PR makes sure none of the other errors are emitted and instead will only emit this error message and a fixit to remove any  if : any P is present for an enum

How does the fact that an existential cannot conform to RawRepresentable explain why an existential raw type is rejected?
The conformance of the enum to RawRepresentable cannot be synthesized because the raw type specified is an existential type, so I think it's important to mention that somewhere

What about:
Enum raw type %0 is an existential type is not a raw type

The conformance of the enum to RawRepresentable cannot be synthesized because the raw type specified is an existential type, so I think it's important to mention that somewhere

Technically, the conformance cannot be synthesized because the specified raw type does not conform to Equatable and one of the blessed ExpressibleBy*Literal protocols, hence the errors. There are other kinds of types that would never satisfy these criteria, such as a function type. Why does an existential type stand out from them? The fix-it to remove any makes sense, what I mean is: why invent a new error message specifically for existential types?

I get it now, I got confused by the wording in the diagnostic - enum_raw_type_nonconforming_and_nonsynthable actually talks about the enumeration type itself but existential_enum_conformance_unsupported makes it sounds like it's raw type is supposed to conform to RawRepresentable.
What we should do here it seems is tailor error: RawRepresentable conformance cannot be synthesized because raw type 'any P' is not Equatable to explain why it's not possible to use existential type as a raw value.

@swift-ci please smoke test

Converting to draft for now, will open again once I add tests :)


Wrong exception error in case class with scala.Option

case class TestsConfiguration(
  before_jobs: Option[List[String]],
  jobs: List[JobDefinition],
  after_jobs: Option[List[String]])

// ...

object YamlProtocol extends DefaultYamlProtocol {
  implicit val testsConfigurationFormat = yamlFormat3(TestsConfiguration)
  // ...
}

"".parseYaml.convertTo[TestsConfiguration] throws a DeserializationException: YamlObject expected in field 'before_jobs' however I was expecting that the expected field was jobs and not before_jobs (which is an Option)

The message shown was clearly misleading. It means that it tried to read the before_jobs field (existing or not) from a YamlObject, but it found a YamlNull instead (apparently SnakeYAML parses empty documents as YamlNull).
I honestly don't know how empty documents should be parsed. Ruby's YAML library simply refuses to parse it:
2.2.0 :011 > require 'yaml'
 => true
2.2.0 :012 > YAML.load("a: 4")
 => {"a"=>4}
2.2.0 :013 > YAML.load("")
 => false

I don't mind having empty documents (i.e. "", not "{}") parsed as YamlNull. The exception message was improved in PR #5.


Return interfaces so that others using the lib can write unit tests.

I am using this lib and trying to unit test my consumer and producer. I am new to go so I might just not be doing the right thing. However, I want to be able to mock out the Connection and/or the Channel and then write tests using those mocks. From my understanding, that would be really easy with a mocking framework (even otherwise) if the Dial method returned an interface which is implemented by Connection (connection.go) rather than the struct itself.

The good thing about Go is that you can implement just the interfaces you need in your own code.
// You define your own interface of what you need satisfied from the amqp package
type Channel interface {
  QueueDeclare(...)
  Consume(...)
  Ack(...)
}

// Then your business logic depends on your interface with the dependency injected from `main` or elsewhere.
func businessLogic(channel Channel) {
 channel.QueueDeclare(...)
 deliveries, _ := channel.Consume(...)
 for delivery := range deliveries {
    ...
 }
}

// In tests you satisfy that interface with a mock
type mockChannel struct {
  queueDeclared bool
  deliveries chan amqp.Delivery
}

func (c *mockChannel) QueueDeclare(...) { c.queueDeclared = true }
func (c *mockChannel) Consume(...) { return c.deliveries }
func (c *mockChannel) Ack(...) { }

// Which means you can Unit test against a mock
func TestUnit(t *testing.T) {
  channelDependency = &mockChannel{deliveries: make(chan amqp.Delivery)}
  go func() {
    channelDependency.deliveries <- amqp.Delivery{Body: []byte("one")}
    channelDependency.deliveries <- amqp.Delivery{Body: []byte("two")}
    channelDependency.deliveries <- amqp.Delivery{Body: []byte("three")}
  }()

  businessLogic(channelDependency)
  if !channelDependency.queueDeclared {
    t.Fatal("didn't declare the queue")
  }
  // test businessLogic effects
}

// Or integration test against a connection
func TestIntegration(t *testing.T) {
  conn, err := amqp.DialConfig(...)
  channel, err := conn.Channel()
  businessLogic(channel)
  // test businessLogic effects
}

@streadway @michaelklishin Here is an oversimplified (but, hopefully, still relevant) example of what I had to write in order to get around the fact that you don't return an interface from the Dial method:
package main

import "fmt"

// 3rd party library
type Channel struct {
}

type Connection struct {
	channel *Channel
}

func (c *Connection) Channel() *Channel {
	return c.channel
}

func Dial() *Connection {
	fmt.Println("Default Dial")

	return &Connection{}
}

// my code
type MyConnection struct {
	*Connection
}

type IChannel interface {
}

type IConnection interface {
	Channel() IChannel
}

func (c *MyConnection) Channel() IChannel {
	return c.Connection.Channel()
}

type App struct {
	connection IConnection
	dialer     func() IConnection
}

func MyDial() IConnection {
	fmt.Println("My Dial")

	conn := &MyConnection{}
	conn.Connection = Dial()

	return conn
}

func NewApp() *App {
	return &App{dialer: MyDial}
}

func (app *App) Connect() {
	app.connection = app.dialer()

	_ = app.connection.Channel()
}

// my test code
type MockConnection struct {
}

func (c *MockConnection) Channel() IChannel {
	return nil
}

func MockDial() IConnection {
	fmt.Println("Mock Dial")

	return &MockConnection{}
}

func NewMockApp() *App {
	return &App{dialer: MockDial}
}

func main() {
	// main code
	app := NewApp()
	app.Connect()

	//test code
	mockApp := NewMockApp()
	mockApp.Connect()
}

As you can see, I was forced to write a wrapper struct MyConnection with an embedded pointer to Connection as well as a wrapper for the Dial function, while all I wanted was to be able to inject MockDial into App.dialer inside a unit test. In my tests, I definitely want to be able to create a MockConnection struct which I want to return from MockDial instead of the real Connection.
Please note that "Go does not support covariance", which is the reason why I couldn't simply assign Dial to App.dialer: cannot use Dial (type func() *Connection) as type func() IConnection in field value and I believe this is the issue which the OP was trying to point out.
However, if your Dial method would return an interface, I would be able to easily test my code without having to write superfluous wrappers:
package main

import "fmt"

// 3rd party library
type Channel struct {
}

type Connection struct {
	channel *Channel
}

func (c *Connection) Channel() IChannel {
	return c.channel
}

type IChannel interface {
}

type IConnection interface {
	Channel() IChannel
}

func Dial() IConnection {
	fmt.Println("Default Dial")

	return &Connection{}
}

// my code
type MyConnection struct {
	*Connection
}

type App struct {
	connection IConnection
	dialer     func() IConnection
}

func NewApp() *App {
	return &App{dialer: Dial}
}

func (app *App) Connect() {
	app.connection = app.dialer()

	_ = app.connection.Channel()
}

// my test code
type MockConnection struct {
}

func (c *MockConnection) Channel() IChannel {
	return nil
}

func MockDial() IConnection {
	fmt.Println("Mock Dial")

	return &MockConnection{}
}

func NewMockApp() *App {
	return &App{dialer: MockDial}
}

func main() {
	// main code
	app := NewApp()
	app.Connect()

	//test code
	mockApp := NewMockApp()
	mockApp.Connect()
}

Since this library has been around for some time, I am not sure what would be the implications of making such a change to its API layer (I think it shouldn't break exiting code, though), so I can understand if you don't want to change it.

Hi @mihaitodor,
Indeed, it would be a significant change to replace the returned structs with interfaces as it would break all callers that accept structs instead of interfaces. This kind of change would require a new package which is not planned.
When building apps, I make interfaces capture the smallest unit of logic possible. I almost always accept interfaces in functions and start with return concrete types until more than one implementation is needed. With this practice, I rarely need covariance of types.
I anticipated that most AMQP applications using this package would follow one of the messaging patterns described in Getting Started. I considered theses examples the units to test. In your application, this translates to "dialing a work queue", or "dialing a publishing sink".
The types in the amqp package model the AMQP wire protocol which makes them very concrete which is why they are structs. There is no other implementation that this package provides. If you need an open ended channel to mock, inject an open channel, or channel factory into your app instead of the dialer.
package main

// Just what you need from the amqp package
type Broker interface {
	QueueDeclare(/*...*/)
	Consume(/*...*/)
}

type App struct {
	NewBroker func(url string) (Broker, error)
}

func main() {
	app := App{
		NewBroker: func(url string) (Broker, error) {
			conn, err := amqp.Dial(url)
			if err != nil {
				return nil, err
			}
			return conn.Channel()
		},
	}

	mock := App{
		NewBroker: func() (Broker, error) { return &mockBroker{}, nil },
	}
}

If you move more to the application or messaging pattern boundary then it'd look more like:
type WorkQueue interface {
	io.Closer
	Get() (Job, error)
}

type App struct {
	NewWorkQueue func(brokerURL string) (WorkQueue, error)
}

I hope these recommendations help reduce the wiring code needed to make testable units in your code!


useSignal: Use 'useRef()' instead of 'useMemo()' to wrap the signal

This is a minor change so that useSignal() is a wrapper around useRef() instead of useMemo().
More on the change:
https://mastodon.social/@rgadellaa/109863125430115425

Ah wait I should pbbly also update the docs as it contains a code snippet of what useSignal() actually does. Hold my beer...

I think one of the reasons why might be that useRef uses useMemo under the hood 😅

Per discussion, closing this since in Preact useMemo and useRef are basically the same. We may do this for React though since the implementation there is different between the two hooks.


Show "Last updated" time in popup + refresh button

We should probably also remove the call to this.props.core.refreshPullRequests() in Popup.tsx, as this could result in fetch errors and unnecessarily spam GitHub.


Support metacom fix EADDRINUSE

Refs: https://github.com/metarhia/impress/pull/1907

[x] tests and linter show no problems (npm t)
[ ] tests are added/updated for bug fixes and new features
[x] code is properly formatted (npm run fmt)
[ ] description of changes is added in CHANGELOG.md
[ ] update .d.ts typings

Landed in https://github.com/metarhia/impress/commit/c0b3c6b7c91e65fffc26e27d534caea38115fee6 and https://github.com/metarhia/impress/commit/7a3d8b400a7b9cd4b6d67e6f0455e8dbbe9563ee


ManyToOneRingBuffer.read zeroing buffer after read, can that be made redundant?

Currently a read may result in many messages being handled followed by a U.setMemory which will erase the contents of the messages. The motivation, I assume, would be security. Otherwise the contents are of no consequence as the producer is copying in rather than reusing the chunks of memory it gets allocated.
The only hole in this theory is that we expect the 'length' field in the (last +1) message to be 0. This is a problem in particular as the MTORB allows variable length messages (so the consumer zeroing the length is not possible). A potential solution is to separate the message length array from the data stream.

The Zero'ing is to ensure the message length will be zero for variable length messages.


TypeError: reducer is not a function

Hi everyone,
As the title said, I got this TypeError: reducer is not a function while refactoring the store to adapt changes in React-Redux.
Any help is really appreciated!
import { createStore, compose, applyMiddleware } from 'redux'
import { reduxReactRouter } from 'redux-router'
import { createHistory } from 'history' // Favor for Redux Router
import { devTools } from 'redux-devtools';
import thunkMiddleware from 'redux-thunk'
import createLogger from 'redux-logger'
import rootReducer from '../reducers/index'

const createStoreWithMiddleware = applyMiddleware(
  thunkMiddleware,
  createLogger()
  )
export default function configureStore(initialState) {
  const store = compose(
    reduxReactRouter({ createHistory }),
    devTools(),
    createStoreWithMiddleware
    )(createStore)(rootReducer, initialState)

  if (module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('../reducers', () => {
      const nextRootReducer = require('../reducers/index')
      store.replaceReducer(nextRootReducer)
    })
  }

  return store
}

What is your reducers/index like?

Hi @gaearon,
The following is my reducers/index.js file
import { combineReducers } from 'redux'
import { routerStateReducer } from 'redux-router'
import { ADMIN_ACTION, USER_ACTION, AUTHENTICATION_ACTION } from '../actions'

import { combineReducers } from 'redux'
import { routerStateReducer } from 'redux-router'
import { ADMIN_ACTION, USER_ACTION, AUTHENTICATION_ACTION } from '../actions'

export function authenticationReducer(state = {
  type: AUTHENTICATION_ACTION,
  isAuthenticated: false
  }, action) {
    switch(action.type) {
    case AUTHENTICATION_ACTION:
      return Object.assign({}, state,
        {isAuthenticated: action.isAuthenticated})
    default:
      return state
    }
  }

}

export function adminReducer(
  state = {
    type: ADMIN_ACTION,
    admin: []
  }, action) {
  switch(action.type) {
    case ADMIN_ACTION:
      return {
        ...state,
        admin: action.isAuthenticated
      }
    default:
      return state
  }
}

export function userReducer(
  state = {
    type: USER_ACTION,
    admin: []
  }, action) {
  switch(action.type) {
    case USER_ACTION:
      return {
        ...state,
        admin: action.isAuthenticated
      }
    default:
      return state
  }
}

export const rootReducer = combineReducers({
  router: routerStateReducer,
  authenticationReducer,
  userReducer,
  adminReducer })

By the way this is wrong:
const createStoreWithMiddleware = applyMiddleware(
  thunkMiddleware,
  createLogger()
  )
export default function configureStore(initialState) {
  const store = compose(
    reduxReactRouter({ createHistory }),
    devTools(),
    createStoreWithMiddleware
    )(createStore)(rootReducer, initialState)

First of all, what is called createStoreWithMiddleware in this example does not create store. Why is it called this way? Looks like it's copy-pasted from another example without realizing what it is and how it works, which always leads to problems. :wink:
You probably wanted to write
import { createStore, compose, applyMiddleware } from 'redux'
import { reduxReactRouter } from 'redux-router'
import { createHistory } from 'history' // Favor for Redux Router
import { devTools } from 'redux-devtools';
import thunkMiddleware from 'redux-thunk'
import createLogger from 'redux-logger'
import rootReducer from '../reducers/index'

export default function configureStore(initialState) {
  const finalCreateStore = compose(
    reduxReactRouter({ createHistory }),
    devTools(),
    applyMiddleware(thunkMiddleware, createLogger())
  )(createStore);

  const store = finalCreateStore(rootReducer, initialState)

  if (module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('../reducers', () => {
      const nextRootReducer = require('../reducers/index')
      store.replaceReducer(nextRootReducer)
    })
  }

  return store
}

(It's the same code without confusing naming.)
However there's yet another problem: applyMiddleware is put after devTools. The DevTools README says:

Please follow instructions in READMEs and official examples.
With this in mind, your code would be
import { createStore, compose, applyMiddleware } from 'redux'
import { reduxReactRouter } from 'redux-router'
import { createHistory } from 'history' // Favor for Redux Router
import { devTools } from 'redux-devtools';
import thunkMiddleware from 'redux-thunk'
import createLogger from 'redux-logger'
import rootReducer from '../reducers/index'

export default function configureStore(initialState) {
  const finalCreateStore = compose(
    reduxReactRouter({ createHistory }),
    applyMiddleware(thunkMiddleware, createLogger()), // note it needs to go before dev tools
    devTools()
  )(createStore);

  const store = finalCreateStore(rootReducer, initialState)

  if (module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('../reducers', () => {
      const nextRootReducer = require('../reducers/index')
      store.replaceReducer(nextRootReducer)
    })
  }

  return store
}

@babygau
Your import looks like this:
import rootReducer from '../reducers/index'

This means it's expecting the default export of reducers/index to be a reducer function.
However, in your reducers/index, it is a named export:
export const rootReducer = // ...

This is why import reducer from gives you undefined. When that undefined is passed, the error is thrown. If you put a breakpoint there you will see it. :wink:
The solution is to:
Change your reducers/index to make a default export
const rootReducer = combineReducers({ ... });
export default rootReducer;

then you can import rootReducer from '../reducers/index'.
Or change your import to be named.
import { rootReducer } from '../reducers/index'; // note the curly braces

Here's a great in-depth dive on ES6 named and default exports. If you're not entirely comfortable using them and wonder why braces are sometimes necessary and what default means, I highly recommend it.
Cheers!

Hi @gaearon, many thanks bro. The prob is fixed. You are right, I accidentally removed export default while refactoring. Now it looks good! :+1:

Glad to know it works!


snekfetch 3.4.2 POST not showing request body in Express & bodyparser

Using snekfetch post like this,
snek.post(url + '/login/app').send({username: 'username', password: 'password'})
  .then(res => {
    console.log(res.body)
  })

in version 3.4.2 of snekfetch will give an empty body in express with the body parser module.
I've checked res.request in the snekfetch res object to make sure that the proper body was interpreted and it was.
But, using an older version of snekfetch, more specifically the version 3.2.9, the above will actually function and the body will correctly show.
Any clues to why this might be happening with the latest version of snekfetch? I've reverted back to version 3.2.9 for now.

can you specify if you're in browser or node

Using it in an Electron window.
Thank you, fixed with that change.


image microsoft/azure-vote-front is no longer valid

Hi!
Seems the image microsoft/azure-vote-front as used in azure-vote.yaml in chapter 2 is no longer valid.
Tried using mcr.microsoft.com/azuredocs/azure-vote-front:v2 as image instead, and this seems to be correct. :D

Hey @emilbra , I hope the issue got solved as of now. Please reply!!!


Adjust dsl of OIDC to reflect assent requirements

The OIDC implementation of assent requires the base_url to be set and ignores the different *_url attributes. At favours the returned configuration from the openid_configuration_uri. To not configure some unused attributes they're removed.

Looks good to me. Would you mind squashing this into a single conventional commit?

@jimsynz this is going to need to be updated for ash 3.0 anyway, so would you have a chance to update & merge?

I have manually squashed and merged. Thanks for the contribution @schutm.


fix: Block descendant focusability on sections in event detail fragment

Block descendant focusability on sections in event detail fragment
Fixes: #1656

What was the issue? Can you explain?

@iamareebjamal eventDetailsFragment was scrolling down to organizer Container Automatically


Removed password strings

What this PR does / why we need it:
Long awaited PR to eliminate the use of Password strings.
Now we will be fetching the commonly used passwords from the one of the secrets created in the backup cluster
Which issue(s) this PR fixes (optional)
Closes #PA-731
Special notes for your reviewer:

For some reason DuplicateSharedBackup is failing because of this change. Will investigate and fix it.

Successful Jenkins Run
Aetos link


Your app does not have a role and you're attempting to interact with AWS resources

I'm following the 'Build a full stack react application' tutorial, and when i get to the end of Module 3, and push my code, i am seeing the following error:
Your app does not have a role and you're attempting to interact with AWS resources
In order for you to interact with AWS resources you need to attach a role to your app. This can be done in the General Settings page in the console

When i click 'Fix This':

i'm taken to the app general settings, but under the service role drop down, there is no options?

Any help would be greatly appreciated!
Thanks!

@tmwlsh Please follow this: https://docs.aws.amazon.com/amplify/latest/userguide/how-to-service-role-amplify-console.html

thanks @swaminator, can this be added to the tutorial?


Inline scripts need hashes provided for CSP directives

We supply two inline scripts inside the standard template. Projects (specifically Verify) would like to whitelist these in their CSPs so that they can disable other inline scripts. To do this they’ll need hashes for them.
For the mean time I’ve advised Verify to hardcode the hashes as they rarely change. I’ve also advised them that if we change them in the near future that’d constitute a breaking change and we’d bump the major version number.
Longer term, it’d be good to produce (as part of the package) a list of hashes for the inline scripts in this project. A simple solution would be to drop this into a hardcoded JSON file in the project. A better solution would be to pull the inline scripts out to separate files, which would allow the build process to both generate the hashes and insert them inline (potentially minifying them in the process). Thanks to @nickcolley for that idea.

Alternatively to hashes we could use nonces, the difference being that nonces are generated on each request by the app's middleware, so they are dynamic and there is no need to store a collection of hashes.
The nonce is generated in middleware and assigned to res.locals, and the script-src directive the CSP middleware. The res.locals value can be picked up in the template so long as the script tag has a placeholder attribute.
E.g.
<script nonce=${nonce}></script>

PR will add a placeholder to the script tags for a nonce https://github.com/alphagov/govuk_template/pull/268

@robinwhittleton

A better solution would be to pull the inline scripts out to separate files, which would allow the build process to both generate the hashes and insert them inline (potentially minifying them in the process).

If the inline scripts were pulled out to js files, hashes wouldn't be needed. The js files could be served from the service domain and therefore meet the script-src: ["'self'"]` directive

Putting the "is js enabled" script (https://github.com/alphagov/govuk_template/blob/master/source/views/layouts/govuk_template.html.erb#L33) in a separate file would be a performance hit. It needs to run before content displays and this would slow down time to first paint. cc @nickcolley

Yeah, we'd block the page on an additional request that is not guaranteed to respond quickly, unacceptable for our users so we'd need another approach.

@fofr, @nickcolley I agree, it is not always ideal for js to be externalised. My point was that if it was, then it wouldn't need a hash or a nonce.

Following the launch of the GOV.UK Design System, GOV.UK Template will now only get major bug fixes and security patches.
I've reviewed the closed pull request, and it seems as though for this issue it can be better solved by using hashes.
That said, we want to ensure we are not blockers for security so if you think that this is indeed a required feature to enable CSP for your project please re-open.


Returning self from getters

The following contract compiles, but produces a TS error:
import "@stdlib/deploy";

contract Test with Deployable {
    id: Int as uint32 = 0;
    anotherData: Cell;

    init() {
        self.anotherData = beginCell().endCell();
    }

    get fun contractData(): Test {
        return self;
    }
}

Test:
import { Blockchain, SandboxContract, TreasuryContract } from '@ton/sandbox';
import { toNano } from '@ton/core';
import { Test } from '../wrappers/Test';
import '@ton/test-utils';

describe('Test', () => {
    let blockchain: Blockchain;
    let deployer: SandboxContract<TreasuryContract>;
    let test: SandboxContract<Test>;

    beforeEach(async () => {
        blockchain = await Blockchain.create();

        test = blockchain.openContract(await Test.fromInit());

        deployer = await blockchain.treasury('deployer');

        const deployResult = await test.send(
            deployer.getSender(),
            {
                value: toNano('0.05'),
            },
            {
                $$type: 'Deploy',
                queryId: 0n,
            }
        );

        expect(deployResult.transactions).toHaveTransaction({
            from: deployer.address,
            to: test.address,
            deploy: true,
            success: true,
        });
    });

    it('should get data', async () => {
        const data = await test.getContractData();
        console.log(data);
    });
});

We should add contract types to ABI and to generated typescript code to resolve this.
But after trying to do that I encoutered a problem - typescript names conflict between export class Test and export type Test.
To overcome this we should add some $ prefix/suffix either to class or to type. First option is easier to implement but I'm not sure if it's OK to change the generated class name at this point.


Add support for creating watch app icons

#22

Implemented with https://github.com/KrauseFx/fastlane-plugin-appicon/pull/22#pullrequestreview-64842394, thanks @oskarn97 👍


Added solution for PROBLEM NO. 41

Added solution for PROBLEM NO. 41

Checklist

[x] Added detailed description of changes.
[x] Relevant documentation/comments is changed or added.
[x] Added file name matches File name guidelines.
[x] PR title follows semantic commit guidelines.

Sir I have made the requested changes :)

Thanks for the PR 🚀.


Update to Bevy 0.9

~Blocked on a new release of nalgebra for the convert-glam022 feature.~
bevy_reflect's handling of enums was changed, which now (correctly, I think) causes the Reflect derive for AsyncCollider to fail because it contains an item that is not Reflect.
99% of the changes this time is an update to entity spawning API.
Resolves #269

May want to use https://github.com/dtolnay/rust-toolchain in CI to fix the let ... else error. It should use the latest stable Rust toolchain.

I opened #275 to help with this Rust CI version issue.

I'm sure you're aware, but the nalgebra release happened.
This PR builds & works after a small patch:
diff --git i/bevy_rapier2d/Cargo.toml w/bevy_rapier2d/Cargo.toml
index bc10eb5..0b321b2 100644
--- i/bevy_rapier2d/Cargo.toml
+++ w/bevy_rapier2d/Cargo.toml
@@ -30,7 +30,7 @@ enhanced-determinism = [ "rapier2d/enhanced-determinism" ]

 [dependencies]
 bevy = { version = "0.9.0-dev", default-features = false, features = ["bevy_asset", "bevy_scene"] }
-nalgebra = { version = "^0.31.1", features = [ "convert-glam021" ] }
+nalgebra = { version = "^0.31.4", features = [ "convert-glam022" ] }
 # Don't enable the default features because we don't need the ColliderSet/RigidBodySet
 rapier2d = "0.16.0"
 bitflags = "1"
@@ -42,7 +42,7 @@ serde = { version = "1", features = [ "derive" ], optional = true}
 bevy = { version = "0.9.0-dev", default-features = false, features = ["x11"]}
 oorandom = "11"
 approx = "0.5.1"
-glam = { version = "0.21", features = [ "approx" ] }
+glam = { version = "0.22", features = [ "approx" ] }

 [package.metadata.docs.rs]
 # Enable all the features when building the docs on docs.rs

This PR already includes those changes.

#275 was merged so rebase on it and let's see what the CI says? :)

I can confirm this works.

I can confirm this works.

Same

Didn't work for me unless I set nalgebra version to 0.31.4 in my project's Cargo.toml directly.

Didn't work for me unless I set nalgebra version to 0.31.4 in my project's Cargo.toml directly.

I had a similar issue until I noticed that my bevy dependency was still set to 0.8.1.  Make sure it's set to 0.9.0.

I can confirm this works.

Same

Thirded.  Is there anything else that needs to be done for a new crate release?


Command line won’t accept drives with a space in the drive name. Just fyi

I had same problem. Found the problem! If your temp drive or destination drive label name has a space you get that error. Rename drives to one word no spaces and boom!

Talking about that pool code not 96 hex issue. Space in drive name confuses the command run on start up
Originally posted by @szarkivach in https://github.com/madMAx43v3r/chia-plotter/issues/132#issuecomment-859719417

Use quotes: -t "/some/drive name/".

or don't use spaces... Spaces don't go in file-/pathnames

this is not he app..
generally no linux Cli tool will accept spaces,
When linux calls an app the command line is already parsed by the linux os. (spaces are separaters)
the app gets the leftovers.
Generally it is very bad practice to have spaces & amulets in file & directly names on ANY OS due to multi-byte character sets.
ESP..... when dealing with  "del" & "rm" on linux......
(anyone who whines.. well i can use it on windows.. better go check out the windows developer website, or better still the German amulet fiasco, where MS completely destroyed the distinction between 3 separate characters...)


use kstatus

Use kstatus from kustomize (lineage from controller-reconciler, application, cli-utils)
Fix lint issues
Run license after manifests

@nan-yu Please review

We have moved this code to cli-utils and the code in the kustomize repo will be deleted. We don't have any releases from cli-utils yet, so I suggest we hold off on make this change for a bit.

We have moved this code to cli-utils and the code in the kustomize repo will be deleted. We don't have any releases from cli-utils yet, so I suggest we hold off on make this change for a bit.

Do we have an ETA ? If it is going to be O(month) we can use this for now and then move to the cli-utils one. This would give us crucial time to soak the change as part of existing effort to qualify.

I would think we have something in a couple of weeks. But could we just keep the current implementation for now, get the current changes rolled out and then address this in a follow-up?
Seems like we already have a lot of changes going in for the next release, so maybe we should hold off on this? The changes so far should not change any of the behavior of the controller, so it should be a simple drop-in replacement. Changing the rules we use to compute status means we are changing the behavior.

Sounds fair. We can wait on this merge till after release


Offcanvas "Back" text

With the the foundation Topbar, you can use "data-options" to change the "Back" text, but it is not working with the data-offcanvas.
Is it possible to achieve this ? (Without changing the text with Javascript....)

Hello @ierpe
Have you an online example ? You can try http://codepen.io/ to show us your problem.
Don't hesitate to go to the forum http://foundation.zurb.com/forum and close this issue if this problem is solved.

The back for a multi-level off-canvas is done in the html itself, so you can change it there. I'll close this since it seems like this issue can be solved with that. If I misunderstood feel free to reopen.
Thanks!


How to name the wireguard-file?

First things first: Thx for the great work!
I have one (userrelated) problem:
Want to start the container with the "docker run" command. Here is my .sh-file:
docker run -it --rm --cap-add=NET_ADMIN \     --name wireguard-socks-proxy \     --volume /home/pirate/wireguard/:/etc/wireguard/:ro \     -p 1080:1080 \     kizzx2/wireguard-socks-proxy
Running the script with "sh wireguard.sh" it ends in the message:
standard_init_linux.go:211: exec user process caused "exec format error"
The .conf-file in "/home/pirate/wirguard" has a very cryptig name given by my VPN-provider. I think the problem is, that the container can't find the file. Is there a specific name for the file, or did i use the "--volume" command the wrong way?

I believe there shouldn't be a trailing forward slash for the local volume: "/home/pirate/wireguard"


feat(redis): redis source tag set to 6.0.8 in snapcraft.yaml

Updated the source-tag to 6.0.8 to align with docker-compose redis version.
PR Checklist
Please check if your PR fulfills the following requirements:

[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

If your build fails due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/edgex-examples/blob/master/.github/CONTRIBUTING.md.
What is the current behavior?

Using an older version of redis.
Issue Number:
What is the new behavior?
Updated the source-tag to 6.0.8 - newer stable release of redis.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

New Imports
Are there any new imports or modules? If so, what are they used for and why?
Specific Instructions
Are there any specific instructions or things that should be known prior to reviewing?
Build snap from source.
Other information
Ran blackbox tests and all tests passed. Note, you will need to install the latest/edge version of app-service-configurable before running the test suite.

Codecov Report

Merging #2807 into master will increase coverage by 0.04%.
The diff coverage is 44.11%.

@@            Coverage Diff             @@
##           master    #2807      +/-   ##
==========================================
+ Coverage   39.37%   39.42%   +0.04%
==========================================
  Files         166      166
  Lines       13013    13013
==========================================
+ Hits         5124     5130       +6
+ Misses       7578     7573       -5
+ Partials      311      310       -1

Impacted Files
Coverage Δ

internal/pkg/v2/infrastructure/redis/client.go
0.00% <0.00%> (ø)

internal/pkg/v2/infrastructure/redis/device.go
0.00% <0.00%> (ø)

...rnal/pkg/v2/infrastructure/redis/device_profile.go
0.00% <0.00%> (ø)

...rnal/pkg/v2/infrastructure/redis/device_service.go
0.00% <0.00%> (ø)

internal/core/data/v2/controller/http/event.go
81.57% <100.00%> (ø)

...nternal/core/metadata/v2/controller/http/device.go
100.00% <100.00%> (ø)

.../core/metadata/v2/controller/http/deviceprofile.go
96.22% <100.00%> (ø)

.../core/metadata/v2/controller/http/deviceservice.go
92.89% <100.00%> (ø)

... and 2 more

Continue to review full report at Codecov.

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


[MGDSTRM-10719] Add build/push of bundle and index images

Builds on #869 .

Coverage will not display properly for the new module until the sonar.yml changes are on main. I will add a README for the new module, but this is otherwise ready for review. Most of the new files are test resources for the unit test.

Updated the documentation with suggestions and reverted the changes to systemtests/pom.xml. That will be done instead in a separate PR. I'll merge once the checks are green (aside from the coverage).


Updated Faqs.css to enhance the overall UI

I replaced the "scale" effect with "translateY(-2px)" to lift the FAQ item slightly on hover without resizing it, preventing layout shifts. I also enhanced the hover effect by adding a soft shadow (box-shadow) and smoothed the transitions for background color, shadow, and position to make the hover interaction more visually appealing and stable.

@Vin205 Kindly check my PR........I have completed the assigned task .......very grateful to contribute to your awesome project :)

@PulkitShubham issue number please ?


Cal.com transformer benchmark showing lots of variance

Appears to be due to a hashbrown::HashSet resizing unpredictably.
See flamegraph for: https://codspeed.io/oxc-project/oxc/branches/08-27-feat_wasm_output_symbol_ids_in_scope_tree
Maybe can fix by reserving additional capacity in hash maps upfront.
Wonder why it's only showing up on the Cal.com benchmark, and why it's non-deterministic.

I traced the code and I suspect this:
https://github.com/oxc-project/oxc/blob/10279f55d92df80d9d5ce6b034a230e2a8a89e19/crates/oxc_transformer/src/env/data/babel.rs#L10-L13
I'll move this constructor out of the benchmark and see what happens.

I have unignored the benchmark.

Unclear if the variance is still there or not. Possible it is, but is masked by the massive increase in time that benchmark is now taking to run - #5457.
What was particularly confusing me wasn't so much what was causing the HashSet to resize, but why it was displaying indeterminism in doing so. I can't see the reason for that. Figuring that out might give us a clue how to reduce variance in the benchmarks overall.
We can see if the problem returns or not once #5457 is resolved.


Crash while consuming data

With defaut config, novus300bus crashes on my installation... did you  encounter this issue ?
Logger: homeassistant.components.sensor
Source: custom_components/novus300bus/sensor.py:148
Integration: Capteur (documentation, issues)
First occurred: 22:28:25 (1 occurrences)
Last logged: 22:28:25
Error while setting up novus300bus platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 289, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/novus300bus/sensor.py", line 237, in async_setup_platform
    await serial_read(port, baudrate, timeout=0, stopbits=STOPBITS_ONE, parity=PARITY_MARK, bytesize=EIGHTBITS, rtscts=False, dsrdtr=False)
  File "/config/custom_components/novus300bus/sensor.py", line 120, in serial_read
    result = consumePackage(data)
  File "/config/custom_components/novus300bus/sensor.py", line 148, in consumePackage
    while not isCommand(data[2]):
IndexError: list index out of range

Please try the current version. Thanks.


starknet-devnet 0.5.2 fails to execute starknet-sierra-compile when using poetry

Describe the bug (observed vs expected behavior)
starknet-devnet 0.5.2, poetry 1.4.2, on linux
when using the poetry workflow, starknet-sierra-compile is missing the execute bit and cannot be executed:
[Errno 13] Permission denied: '/home/user/.cache/pypoetry/virtualenvs/starknet-devnet-brjde5mH-py3.9/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile'

note that the error message is hidden right now due to https://github.com/0xSpaceShard/starknet-devnet/pull/479
reproduce from git root by:

poetry env remove python - remove any old virtualenv
poetry shell
poetry update
poetry run starknet-devnet --port 5050
declare/deploy any contract so that starknet-sierra-compile is called

Additional input from @cfal, the default compiler binary might not be executable, so it needs to receive the +x permission. We don't know exactly why it's happening.


Link Codecov to repo

After logging in you should see maplibre/maplibre-gl-native. I don't see it because I am not in the maplibre GitHub organization.
https://app.codecov.io/
You need to set the CODECOV_TOKEN as a repo secret and configure the GitHub application (instructions provided).
After that I will take it from there intergrating it in the workflows.

I think tokens are not needed for opensource application so we should not use them.


Docs issue with custom mapping

I am using npm version 1.1.0
The docs states:
const tracker = createTracker(customMapper);

To make it work, I had to instead use:
const tracker = createTracker({ mapper: customMapper });

(Seem consistent with the source code)

Looks like there is a PR to address this https://github.com/rangle/redux-segment/pull/52

This issue is solved with merged PR #52


Could not resolve host: yum.oracle.com; Unknown error

When I try to build Oracle Database image on CentOS 8 I get error:
https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: yum.oracle.com; Unknown error".
But curl https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/repodata/repomd.xml at the same time works succesfully.
Full output:
[anton@localhost dockerfiles]$ sudo ./buildDockerImage.sh -e
[sudo] password for anton:
Checking Docker version.
Checking if required packages are present and valid...
LINUX.X64_193000_db_home.zip: OK
DOCKER info:
Client:
 Debug Mode: false
Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 19
 Server Version: 19.03.13
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8fba4e9a7d01810a393d5d25a3621dc101981175
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.18.0-193.el8.x86_64
 Operating System: CentOS Linux 8 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 3.69GiB
 Name: localhost.localdomain
 ID: S2PR:RPMT:HUMQ:O7PH:OR5B:IIKY:GUXH:E2GP:RD3O:QQUB:56SY:CKJ6
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  <IP_ADDRESS>/8
 Live Restore Enabled: false
Building image 'oracle/database:19.3.0-ee' ...
Sending build context to Docker daemon   3.06GB
Step 1/22 : FROM oraclelinux:7-slim as base
 ---> dc7e50513559
Step 2/22 : LABEL "provider"="Oracle"                                                     "issues"="https://github.com/oracle/docker-images/issues"               "volume.data"="/opt/oracle/oradata"                                     "volume.setup.location1"="/opt/oracle/scripts/setup"                    "volume.setup.location2"="/docker-entrypoint-initdb.d/setup"            "volume.startup.location1"="/opt/oracle/scripts/startup"                "volume.startup.location2"="/docker-entrypoint-initdb.d/startup"        "port.listener"="1521"                                                  "port.oemexpress"="5500"
 ---> Running in e2e32ebeb0d6
Removing intermediate container e2e32ebeb0d6
 ---> ad736ac71636
Step 3/22 : ARG SLIMMING=true
 ---> Running in 3d4f21022945
Removing intermediate container 3d4f21022945
 ---> 7ccfd2a8c77f
Step 4/22 : ENV ORACLE_BASE=/opt/oracle     ORACLE_HOME=/opt/oracle/product/19c/dbhome_1     INSTALL_DIR=/opt/install     INSTALL_FILE_1="LINUX.X64_193000_db_home.zip"     INSTALL_RSP="db_inst.rsp"     CONFIG_RSP="dbca.rsp.tmpl"     PWD_FILE="setPassword.sh"     RUN_FILE="runOracle.sh"     START_FILE="startDB.sh"     CREATE_DB_FILE="createDB.sh"     SETUP_LINUX_FILE="setupLinuxEnv.sh"     CHECK_SPACE_FILE="checkSpace.sh"     CHECK_DB_FILE="checkDBStatus.sh"     USER_SCRIPTS_FILE="runUserScripts.sh"     INSTALL_DB_BINARIES_FILE="installDBBinaries.sh"     RELINK_BINARY_FILE="relinkOracleBinary.sh"     SLIMMING=$SLIMMING
 ---> Running in 0f94968e003f
Removing intermediate container 0f94968e003f
 ---> 171d97acb9fe
Step 5/22 : ENV PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch/:/usr/sbin:$PATH     LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib     CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
 ---> Running in 4c32aa0aff47
Removing intermediate container 4c32aa0aff47
 ---> 5d30ca43aa8c
Step 6/22 : COPY $SETUP_LINUX_FILE $CHECK_SPACE_FILE $INSTALL_DIR/
 ---> 1a391d608f7e
Step 7/22 : COPY $RUN_FILE $START_FILE $CREATE_DB_FILE $CONFIG_RSP $PWD_FILE $CHECK_DB_FILE $USER_SCRIPTS_FILE $RELINK_BINARY_FILE $ORACLE_BASE/
 ---> e384f7fee7bb
Step 8/22 : RUN chmod ug+x $INSTALL_DIR/*.sh &&     sync &&     $INSTALL_DIR/$CHECK_SPACE_FILE &&     $INSTALL_DIR/$SETUP_LINUX_FILE &&     rm -rf $INSTALL_DIR
 ---> Running in 285c8a7c0794
Loaded plugins: ovl
https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: yum.oracle.com; Unknown error"
Trying other mirror.
 One of the configured repositories failed (Oracle Linux 7Server Latest (x86_64)),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:
     1. Contact the upstream for the repository and get them to fix the problem.
     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).
     3. Run the command with the repository temporarily disabled
            yum --disablerepo=ol7_latest ...
     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:
            yum-config-manager --disable ol7_latest
        or
            subscription-manager repos --disable=ol7_latest
     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:
            yum-config-manager --save --setopt=ol7_latest.skip_if_unavailable=true
failure: repodata/repomd.xml from ol7_latest: [Errno 256] No more mirrors to try.
https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: yum.oracle.com; Unknown error"
Removing intermediate container 285c8a7c0794
The command '/bin/sh -c chmod ug+x $INSTALL_DIR/*.sh &&     sync &&     $INSTALL_DIR/$CHECK_SPACE_FILE &&     $INSTALL_DIR/$SETUP_LINUX_FILE &&     rm -rf $INSTALL_DIR' returned a non-zero code: 1
ERROR: Oracle Database Docker Image was NOT successfully created.
ERROR: Check the output and correct any reported problems with the docker build operation.

This looks like an issue with the configuration of Docker on your CentOS 8 box. If you just run docker run --rm -it oraclelinux:7-slim on that box, does yum update work? If not, you will need to either configure a proxy (if one is required) or fix your networking.

This does not work either. But how is this possible if for example curl https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/repodata/repomd.xml works well?

Is that working inside the container? Or on the host?

yum update works on host (CentOS 8) but does not work in container suggested by you (oracle linux 7 slim).

You will need to work out why your container networking is broken. This is a CentOS/Docker issue, not an image issue.

@ant0nk Try adding this parameter to buildDockerImage.sh -o --network=host
e.g. /buildDockerImage.sh -e -o --network=host

@ant0nk Try adding this parameter to buildDockerImage.sh -o --network=host
e.g. /buildDockerImage.sh -e -o --network=host

Thank you. That worked.

Shouldn't this recommendation (-o --network=host) be added to the readme? Because by default docker creates internal network without access to host and external world, regardless of host OS.

Shouldn't this recommendation (-o --network=host) be added to the readme?

This doesn't happen on any other build of Docker though, so it's CentOS-specific. It's not needed for Docker on Oracle Linux, Windows or macOS.

@Djelibeybi what about adding it to the FAQ?

This doesn't happen on any other build of Docker though, so it's CentOS-specific.

I had to do the same in Ubuntu 21.10.

i've solved this issue by
$ dhclient
then
$ yum update

i've solved this issue by $ dhclient  then $ yum update

It woked for me also. Thanks a lot.

@ant0nk Try adding this parameter to buildDockerImage.sh -o --network=host
e.g. /buildDockerImage.sh -e -o --network=host

That worked for me as well on Ubuntu 22.04, thanks a lot!