cmd/go: linker repeatedly invoked for cached test results

Adding the following extra assertions to cmd/go/testdata/script_build_cache_output.txt causes the test to fail at the ! stderr 'link(\.exe"?)? -' assertion:
--- c/src/cmd/go/testdata/script/build_cache_output.txt
+++ w/src/cmd/go/testdata/script/build_cache_output.txt
@@ -52,6 +52,25 @@ stderr '\d+ symbols' # from linker
 ! stderr 'p\.test( |\.exe"?)'
 stdout 'TEST' # from test

+# The gcflags above cause the compiler and linker to print diagnostic output,
+# but if we rebuild without those flags we should end up with a resulting test
+# binary with exactly the same contents, and thus the same ID.
+# The result of running that binary is already cached.
+go test -v -x p
+stdout 'TEST' # from test
+stdout '^ok\s+p\s+\(cached\)$' # from cmd/go
+stderr 'compile( |\.exe"?)'
+stderr 'link(\.exe"?)? -'
+stderr 'p\.test( |\.exe"?)'
+
+# If we run the test one more time, we shouldn't need to compile or link anything,
+# because we know that the ID will be the same.
+go test -v -x p
+stdout 'TEST' # from test
+stdout '^ok\s+p\s+\(cached\)$' # from cmd/go
+! stderr 'compile( |\.exe"?)'
+! stderr 'link(\.exe"?)? -'
+! stderr 'p\.test( |\.exe"?)'

 -- lib.go --
 package p

Note that both ok	p	(cached) assertions are passing, so this means that under some circumstances we are printing a test's output as “cached” but re-invoking the linker for the test anyway. There is some special-case code in cmd/go/internal/test (added in CL 75631) that attempts to prevent exactly this situation; it isn't yet clear to me why it isn't working.
(CC @matloob)

@bcmills brought this issue to my attention in CL 376134 and I had a chance to investigate a bit. I still have questions but I think I've made enough progress to share some initial findings. I'm still new to this code so if anything I say seems incorrect, please call it out. Apologies if this is too verbose. I wanted to show my work in case I get anything wrong.
Investigation
I think the motivation for this ticket is the following comment in (*runCache).tryCacheWithID (cmd/go/internal/test/test.go)

// The test cache result fetch is a two-level lookup.
//
// First, we use the content hash of the test binary
// and its command-line arguments to find the
// list of environment variables and files consulted
// the last time the test was run with those arguments.
// (To avoid unnecessary links, we store this entry
// under two hashes: id1 uses the linker inputs as a
// proxy for the test binary, and id2 uses the actual
// test binary. If the linker inputs are unchanged,
// this way we avoid the link step, even though we
// do not cache link outputs.)
// ...

With that expectation, we have the following test cases from cmd/go/testdata/script_build_cache_output.txt. The script is abbreviated by excluding the actual assertions. It includes comments to number the commands for reference later.
# Running a test should run the compiler, linker, and the test the first time.
go test -v -x -gcflags=-m -ldflags=-v p # Command 1
# ... but not the second, even though it still prints the compiler, linker, and test output.
go test -v -x -gcflags=-m -ldflags=-v p # Command 2

### NOTE(jproberts): After this point are tests added by bcmills for Issue 49267 ###

# The gcflags above cause the compiler and linker to print diagnostic output,
# but if we rebuild without those flags we should end up with a resulting test
# binary with exactly the same contents, and thus the same ID.
# The result of running that binary is already cached.
go test -v -x p # Command 3
# If we run the test one more time, we shouldn't need to compile or link anything,
# because we know that the ID will be the same.
go test -v -x p # Command 4

I believe this scenario is failing because test results are only saved to the cache under id1 and id2 after the successful run of a test binary. This can be verified by viewing the logs of the test run and searching for .saveOutput( in the code.
Command 1 is acting on a fresh cache. It misses both levels of the cache lookup, resulting in a compile, link and run of the resulting test binary. The test binary run succeeds, so the test results are saved to the cache under id1 (linker inputs) and id2 (test binary).
Command 2 hits the cache on the linker inputs, since the inputs are the same as Command 1. A hit on linker inputs means we skip invoking the linker and immediately write the cached test output instead.
Command 3 missing the cache on the linker inputs (id1) because they don't include -gcflags or -ldflags. However, it hits on id2 since those flags only affect logging and don't change the actual test binary. A hit on id2 results in the ok p (cached) output and skips the run of the test binary. Since the test binary is not run, the test results are not saved under the new test inputs (id1). I believe this is the root problem of the test scenario provided.
Command 4 misses the cache on linker inputs because Command 3 never saved results into its id1. With that miss, it must invoke the linker, which fails the test. It hits on id2, resulting in ok p (cached) being written to the output again.
Next Steps
I think I've found the cause of this specific test case failure, but I recognize that this ticket may intend to cover broader cases which I haven't considered.
For this single case, I experimented with calling (*runCache).saveOutput within (*runCache).builderRunTest when tryCacheWithID succeeds, The tests pass, since this causes a hit on id2 to save results back to id1. However, my code needs some cleanup before I can file a CL, and I'm not sure this is the best fix point.
It may be worth considering whether tryCacheWithID should save its results when it succeeds. This would cause more frequent calls to saveOutput, which doesn't appear to exit early if it's saving the same data under the same key twice. That could take some work to add, but it may provide a broader and more robust solution going forward.
I hope this information helps. If solving this single case is valuable, I'm happy to take a pass at a fix. I'll wait for feedback from @bcmills or the Go team before doing any more work though. I'd like to help move this issue forward to progress #23565 but I don't mean to overtake an issue that already has an assignee.

TL;DR Test results are only saved to the cache when after a successful test binary run. The test case added in this issue hits the cache on id2 (test binary), so it never runs the test binary and therefore never saves the cached test results under id1 (linker inputs). Since a hit on id2 never saves results to the cache under its linker inputs, subsequent runs of the same command will still invoke the linker. I'm not sure whether this is the only issue with extra linking to retrieve cached results, but I believe it's the cause of the case provided.

This may or may not be relevant, but while doing some other work in cmd/go/internal/work I noticed that the linkShared action doesn't seem to actually put the output in the build cache: https://cs.opensource.google/go/go/+/master:src/cmd/go/internal/work/exec.go;l=1750;drc=507d1b22f4b58ac68841582d0c2c0ab6b20e5a98. That said, I didn't look too deeply, so I may have missed something.
It does attempt a cache lookup, but if never puts anything in the cache presumably that is always a miss.


Docs all redirect to 404

Navigating to https://www.meetup.com/meetup_api/ is fine.
Clicking console, then clicking documentation it attempts to bring you to https://www.meetup.com/meetup_api/docs/ which results in a 404.
All links on the right hand side of the initial page also result in a 404

I'm unable to reproduce this. Are you still seeing that?

@chrislewis Yes the issue still appears to occur

I just had another person attempt to load the page with the same results. Perhaps you were able to load the pages fine because you may have been on the company's internal network @chrislewis? Just throwing ideas out there. I know these pages used to load for me.

Ah I see. We're addressing this soon but the issue is that the docs currently aren't available over https by that domain. If you require https, change the domain from www to secure:
https://secure.meetup.com/meetup_api/docs/activity/
or go http
http://www.meetup.com/meetup_api/docs/activity/
Sorry for the inconvenience but it will be properly addressed soon.

Ah yep that fixed it thanks. Not sure how I got to the https link I was on. I certainly didn't type it into the address bar... I'll let you know if there's a link which brought me there.


How do i get environment to practice ?

I currently have Outlook account.
Can you provide details on how to setup envrionment where i can practice ?

Hi @nssidhu here is the latest guidance - https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/prerequisites
We will soon add this into our labs as well.

Guidance added as well to E00


Survey forms

Relates to issue #39
This PR does the following:

Gets the right session and survey questions based on the unique URL that it gets given (this is the surveyQuestions.js file)

Sends this to the client (getSurveyQs controller)

Creates a Survey component, which:

Fetches the session details and questions and stores them in the state
Creates an empty formState which gets filled with the answers as the participant fills in the survey
Contains the Questions component

Creates a Questions component, which:

Maps through each question for that survey
Formats each question depending on the type
Watches for any inputs and invokes either the selectCheckedItem, handleChange or handleMatrix to put the answers properly into the formState
On handleSubmit, it posts the session details and answers to the server

surveyAnswers controller gets the data and uses to queries to store the data

storeResponse stores the overall survey response and returns a response Id for our next storeAnswer query

storeAnswer query takes the responseId along with the answers and session details and maps through each answer storing them in the Answer model

There are further things that need to be done which I'm raising as issues:

Further styling of the form
A success response for the participant

Codecov Report

Merging #68 into master will decrease coverage by 10.62%.
The diff coverage is 31.39%.

@@            Coverage Diff             @@
##           master     #68       +/-   ##
==========================================
- Coverage   62.93%   52.3%   -10.63%
==========================================
  Files          17      37       +20
  Lines         116     369      +253
  Branches        3      15       +12
==========================================
+ Hits           73     193      +120
- Misses         41     162      +121
- Partials        2      14       +12

Impacted Files
Coverage Δ

server/database/models/Response.js
100% <ø> (ø)

...rc/Components/Layouts/__snapshots__/surveyBuild.js
0% <ø> (ø)
:arrow_up:

client/src/Components/Layouts/Survey.js
0% <0%> (ø)

client/src/Utils/getQuestions.js
0% <0%> (ø)

client/src/Components/Questions.js
0% <0%> (ø)

client/src/Components/Questions.style.js
0% <0%> (ø)

client/src/Components/App.js
0% <0%> (ø)
:arrow_up:

server/database/queries/storeResponse.js
100% <100%> (ø)

server/database/queries/surveyQuestions.js
100% <100%> (ø)

server/database/dummy_data_build.js
100% <100%> (ø)

... and 25 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 0fce5e7...164be3a. Read the comment docs.


Hide unusable items / recipes

FNEI used to have a setting to hide unreachable recipes. This was removed in 0.4.1 as it was causing multiplayer desyncs for some people.
Recipes:
Angels:

[ ] angels-rocket-defense-equipment-vequip
[ ] gas-refinery-4
[ ] circuit-wood-fiber-board
[ ] roll-cobalt-casting
[ ] roll-cobalt-casting-fast
[ ] lithium-chloride
[ ] carbon-from-charcoal
[ ] ore sorting recipes (something went wrong)
[ ] angels-rod-stack-iron

SCT:

[ ] protection-field-goopless
[ ] sct-lab-t1
[ ] sct-automation-science-pack
[ ] sct-logistic-science-pack
[ ] sct-chemical-science-pack
[ ] sct-military-science-pack
[ ] sct-production-science-pack
[ ] sct-advanced-logistic-science-pack
[ ] sct-utility-science-pack

N/A:

[ ] train-counter

Items:
Bobs:

[ ] ammoniated-brine
[ ] brine
[ ] heavy-water
[ ] pure-water
[ ] sour-gas
[ ] ammonia
[ ] carbon-dioxide
[ ] chlorine
[ ] deuterium
[ ] dinitrogen-tetroxide
[ ] ferric-chloride-solution
[ ] glycerol
[ ] hydrazine
[ ] hydrogen-chloride
[ ] hydrogen-peroxide
[ ] hydrogen-sulfide
[ ] hydrogen
[ ] liquid-air
[ ] nitric-acid
[ ] nitric-oxide
[ ] nitrogen-dioxide
[ ] nitrogen
[ ] oxygen
[ ] sulfur-dioxide
[ ] tungstic-acid
[ ] cobalt-steel-alloy
[ ] cobalt-plate
[ ] gem-ore

Base game:

[ ] heavy-oil
[ ] light-oil
[ ] petrolium-gas
[ ] sulfuric-acid

Angels:

[ ] liquid-molten-platinum
[ ] hexachloroplatinic-acid
[ ] iron-rod-stack
[ ] angels-roll-cobalt
[ ] solid-flour
[ ] gas-ethylene-oxide
[ ] liquid-ethylene-carbonate

Some have been fixed:
Arch666Angel/mods/issues/581
mexmer/ScienceCostTweakerM/issues/61


Appstudio update mvp-test-component

Pipelines as Code configuration proposal

Pipelines as Code CI/mvp-test-component-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
5 seconds
init

✅ Succeeded
18 seconds
clone-repository

✅ Succeeded
3 minutes
build-container

✅ Succeeded
14 seconds
sanity-inspect-image

✅ Succeeded
13 seconds
deprecated-base-image-check

✅ Succeeded
57 seconds
clamav-scan

✅ Succeeded
16 seconds
clair-scan

✅ Succeeded
8 seconds
sbom-json-check

✅ Succeeded
6 seconds
sanity-label-check

✅ Succeeded
7 seconds
sanity-optional-label-check

✅ Succeeded
6 seconds
show-summary


how to load arxml

Generally, the arxml format of CANFD is   Frame :: Container-PDU- pdu :: I-signal-PDU :: Signal
If arxml is in the above format, thenThe method of  load_ file（abc.arxml） cannot read the signal.
Above, how should this form of arxml be read? or  is the bug ？

could you plaese send  system-4.2.arxml  to<EMAIL_ADDRESS>Sorry, I don't have permission to download this file  system-4.2.arxml . Can you send the document to my email<EMAIL_ADDRESS>? I will be very grateful.
I want to open the arxml in the same load mode and Vcetor ，for comparison to check whether the same is correct.
@andlaus

@andlaus

Open systerm-4.2 with vector, and an error occurs.
The version of my local 123abc.arxml file is 4.2
After opening 123abc.arxml  with vector, you will find that FrP04 contains Container-I-PDU, and also contains signal-I-PDU
However, through cantools, the signal contained in the signal-I-PDU cannot be read。

yeah, system-4.2.arxml triggers a PDU size warning with Vector's AUTOSAR explorer. That said, I cannot help you with the other file if I don't have access to it.
but as said above: container messages do not exhibit any signals themselves (only their child messages do), so it is not surprising that the snippet you show above does not work.

@Lit-fish-auto
Hi Bro, try that:
message.is_container and message.contained_messages
Maybe we are colleagues of SAIC, if so we can communicate offline.

对的，可能我们是同事。
你是EE的吗?
---- Replied Message ----
| From | @.> |
| Date | 10/21/2022 10:09 |
| To | @.> |
| Cc |<EMAIL_ADDRESS>|
| Subject | Re: [cantools/cantools] how to load arxml (Issue #491) |
@Lit-fish-auto
Hi Bro, try that:
message.is_container and message.contained_messages
Maybe we are colleagues of SAIC, if so we can communicate offline.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

对的，可能我们是同事。 你是EE的吗?
…
---- Replied Message ---- | From | @.> | | Date | 10/21/2022 10:09 | | To | @.> | | Cc |<EMAIL_ADDRESS>| | Subject | Re: [cantools/cantools] how to load arxml (Issue #491) | @Lit-fish-auto Hi Bro, try that: message.is_container and message.contained_messages Maybe we are colleagues of SAIC, if so we can communicate offline. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

Interesting！


Introduce an intentionally-partial CMake-based build system

Add a CMake-based build system that builds only the main modules
(SwiftSyntax, SwiftDiagnostics, SwiftParser) that would be used in
later stages of a host compiler. It does not run tests or build
auxiliar convenience modules like SwiftSyntaxBuilder that aren't
expected to be used in the compiler itself.

@swift-ci please test

That macOS failure makes no sense, because this PR should be a no-op for CI. Trying again...

@swift-ci please test


listTasks seems to be ignoring the pageSize property for pagination in the request object

Environment details

OS: Linux (NodeJS official docker image)
Node.js version: 12.18.3
npm version: 6.14.6
@google-cloud/tasks version: 2.1.0

Steps to reproduce
I'm trying to access the active tasks in a queue page by page as I'm expecting a large number of active tasks to be in the queue. I've been looking into the listTasks documentation and the approach seems pretty straightforward. I'm supplying into list tasks an object with a pageSize property as documented here
Here is what the code looks like:
  const {CloudTasksClient} = require('@google-cloud/tasks');

  const parent = tasksClient.queuePath(
      GOOGLE_CLOUD_PROJECT,
      CLOUD_TASKS_QUEUE_LOCATION,
      CLOUD_TASKS_QUEUE,
  );

  const tasks = await tasksClient.listTasks({
    parent,
    responseView: 'FULL',
    pageSize: 100,
  });

The reply I get back from the API is a list of 3 elements:

First list contains all the tasks (with full view) that are currently active (around 2000) instead of 100 tasks as per the chosen page size.
The other two items in the list are null, which as per my understanding from the documentation the second element should be containing the token for the next page.

Not sure if this is a bug or I'm missing something here, would appreciate any guidance on that.
Thanks!

@aymanfarhat try the following code snippet
  const {CloudTasksClient} = require('@google-cloud/tasks');

  const parent = tasksClient.queuePath(
      GOOGLE_CLOUD_PROJECT,
      CLOUD_TASKS_QUEUE_LOCATION,
      CLOUD_TASKS_QUEUE,
  );

  const tasks = await tasksClient.listTasks({
    parent,
    responseView: 'FULL',
    pageSize: 100,
  }, {
    autoPaginate: false,
  });

@AVaksman Thanks for the tip, just tried it and it seems to be working now. Greatly appreciate the help! Might be worth highlighting this detail more in the docs.


error "regtest is a directory"

Can't run litd.
Expected behavior
Running litd --uipassword=mylongpassword --network=regtest --autopilot.disable should start litd.
Actual behavior

2023-03-06 18:23:17.060 [INF] LITD: LiT version: 0.8.6-alpha commit=v0.8.6-alpha
2023-03-06 18:23:17.070 [INF] SESS: Checking for schema update: latest_version=0, db_version=0
2023-03-06 18:23:17.071 [INF] LITD: Dialing lnd gRPC server at localhost:10009
2023-03-06 18:23:17.072 [INF] LITD: Listening for http_tls on: [::]:8433
2023-03-06 18:23:17.072 [INF] SGNL: Received shutdown request.
error displaying startup info: error querying remote node: read /root/.lnd/data/chain/bitcoin/regtest: is a directory
2023-03-06 18:23:17.072 [INF] SGNL: Shutting down...

To reproduce

Install v0.8.6-alpha on docker image lightninglabs/lnd:v0.15.3-beta
Run above

System information

Are you using Lightning Terminal as a standalone application or as part of Umbrel?

Running stand alone.

What mode are you running Lightning Terminal in? Specifically of interest are the values of 'lnd-mode', 'faraday-mode', 'loop-mode' and 'pool-mode'.

I just want lnd but it doesn't work in either mode.

What version of Lightning Terminal are you using, where did you get it (website, self-compiled, etc)?

v0.8.6-alpha

What type of machine are you observing the error on (OS/CPU and disk type)?

This docker image: lightninglabs/lnd:v0.15.3-beta

I'm able to get passed that error message with this command:
$ litd --uipassword=mylongpassword --network=regtest --httpslisten=<IP_ADDRESS>:8433 --autopilot.disable --lnd-mode=remote --remote.lnd.rpcserver=localhost:10009 --remote.lnd.macaroonpath=/root/.lnd/data/chain/bitcoin/regtest/admin.macaroon

I wonder why the default remote.lnd.macaroonpath isn't set to ~/root.lnd?
Anyway, now I'm getting this error message:
[ERR] LITD: Could not start subservers: no swap server address specified

Thanks for the report! The error error querying remote node: read /root/.lnd/data/chain/bitcoin/regtest: is a directory is an actual bug, we need to fix that.
Unfortunately there is no easy way to get full Lightning Terminal functionality on regtest. Both the Loop and Pool subsystems need to connect to their server counterpart, which there are none running by default. You can run your own regtest Loop server (see https://github.com/lightninglabs/loop/tree/master/regtest), but the equivalent for Pool isn't public (yet?).
A common workaround is to just set the --loop.server.host and --pool.auctionserver= to the public testnet servers (see https://github.com/lightninglabs/loop/blob/master/loopd/config.go#L163 and https://github.com/lightninglabs/pool/blob/master/config.go#L188). You'll also need to set --autopilot.disable if you run the latest version.

The actual bug is here: https://github.com/lightninglabs/lightning-terminal/blob/master/config.go#L659. Because the AdminMacPath of the default lnd config is empty, this doesn't add the filename to the path, which results in the error shown.
I'll create a fix when I have some spare time.


Name inconsistency

These commands from the README don't work as is:
docker build -t mallob:leader .
docker build -t mallob:worker .

I had to change mallob-base to mallob_base in both worker/Dockerfile and  leader/Dockerfile.

Apologies.  Verified fixed.


Typescript compilation error: Property 'semver' does not exist on type 'Root'

I met this compilation error in my TypeScript project.
The minimum reproducible snippet is as follows.

package.json

{
  "name": "test-joi-semver",
  "version": "1.0.0",
  "dependencies": {
    "@hapi/joi": "^17.1.1",
    "joi-extension-semver": "^4.1.1"
  },
  "devDependencies": {
    "@types/hapi__joi": "^17.1.2",
    "typescript": "^3.9.5"
  }
}

index.ts

import libjoi from '@hapi/joi'
import { semver } from 'joi-extension-semver'

const Joi: libjoi.Root = libjoi.extend(semver)

export default {
  version: Joi.semver()  // <- Property 'semver' does not exist on type 'Root'
}

I have found out that it's because the inconsistent versions of @types/hapi__joi.
In my package.json, @types/hapi__joi is required to be v17 because I'm using @hapi/joi v17, while it is required to be v16 in node_modules/joi-extension-semver/package.json from this package.
The error comes from how NPM deals with the conflicted versions of packages, it create a nested node_modules inside the package directory locally, i.e. node_modules/joi-extension-semver/node_modules/. Therefore the declaration merging of this package does not take effect since the default type root for TypeScript compiler is node_modules/@types.
The declaration from this package is merged into the Joi.Root from node_modules/joi-extension-semver/node_modules/@types/hapi__joi while the project is compiled against the one from node_modules/@types/hapi__joi, so the compilation error is thrown.

Possible solution: Define the @types/hapi__joi as a peer dependency just like what @hapi/joi is.

Thank you for the nice package!

One issue with making it a peer dependency is that non-TS users will need to install it, which is a bit irksome for them. Would making it an optionalDependency work for you?

That's why I think @types/hapi__joi should be a peer dependency, type definitions should come with their sources.
Since @hapi/joi is a peer dependency, it is installed manually by a user with a version matched with >=16.
If the actual version of @hapi/joi is decided by a user, he should be responsible to it; however, he cannot be responsible to the version of joi's type definitions, @types/hapi__joi, currently.
Since the version of @types/hapi__joi is not controlled by users, I think everyone, including non-TS users, is possible to meet the version conflict problem (if they manually install it).
A bit of more irksome for them can sometimes save their time on finding why the type hint is not as expected!

For a non-TS user, @types/hapi__joi is required only for type hints when developing.
In most of cases, this is the responsibility of IDEs, editors, his dev toolchains or himself, and actually VSCode does it for users in the background after they make changes to package.json, e.g. npm install @hapi/joi.

Many popular libraries ship with typings files so you get IntelliSense for them automatically. For libraries that do not include typings, VS Code's Automatic Type Acquisition will automatically install community maintained typings file for you.
https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition

What's more is that types from local node_modules is more preferable by VSCode against the auto-installed types. Users are able to fully control their dependencies and those type definitions.
Let them meet their responsibility if they want to have those type hints.

Optional dependency may work, but I have to include --no-optional when doing npm install in all of my workspaces.

Joi 17 has been renamed back to joi, and is now shipping types with the library, so this will be resolved once we upgrade. (#41)

Published as 5.0.0 🎉


Ignore Suggestions

When using the suggestion feature, if I get a partial match on a suggestion I am forced to use the suggestion. e.g.:

But what if I want to actually use the partial word (in this case "Child" vs. "Children"). I can't seem to be able to add "Child" as a new tag. When I hit Enter or , it selects "Children". Pressing the Escape button doesn't help either. It removes the suggestion but still picks it when I hit Enter.

I think you can remove the autocomplete attribute and then it will not be used.

As mentioned by @flobauer you can disable autocomplete to achieve the expected behavior. However, I think autocomplete prop is confusing and we should probably remove the prop altogether as its not intuitive


Message publishing does not work with kotlinx.serialization

I receive the following error when attempting to serialize messages before they are published:
kotlinx.serialization.SerializationException: Serializer for class 'Any' is not found.

I believe this is because the definition of RabbitMQConfiguration.serializeBlock is a function with a single parameter of an Any type.  This does not provide enough information to the serialization library to select the correct serializer for the actual type of the passed in object.
Deserialization does work however - this is because the deserializeBlock function contains a KClass<*> parameter which is enough information to reference the class's serializer.

Hi @dustinstanley,
Thanks for letting me know about that issue! I found a way to get around this error with the current version of ktor-rabbitmq (see example here: https://github.com/Kotlin/kotlinx.serialization/issues/1351#issuecomment-1586165491).
Here's how you can use it with a serialize block:
serialize { Json.encodeToString(DynamicLookupSerializer(), it).encodeToByteArray() }

I'm also working on a way to pass the class type to the serializer, but that might require a breaking change.
Let me know if you have any questions.

I found another way to serialize data that might be more convenient:
serialize {
    Json.encodeToString(Json.serializersModule.serializer(it::class.java), it).encodeToByteArray()
}

Please let me know if this approach works for you. If it does, I'll update the documentation to include using kotlinx.serialization. If you're still encountering errors, can you describe how you're currently using the serialize block in your project? That will help me investigate further.


Session allocation policy - Connection setting not useful?

sesman.ini contains the following section for the session allocation policy:-

;; Policy - session allocation policy
; Type: enum [ "Default" | "UBD" | "UBI" | "UBC" | "UBDI" | "UBDC" ]
; "Default" session per <User,BitPerPixel>
; "UBD" session per <User,BitPerPixel,DisplaySize>
; "UBI" session per <User,BitPerPixel,IPAddr>
; "UBC" session per <User,BitPerPixel,Connection>
; "UBDI" session per <User,BitPerPixel,DisplaySize,IPAddr>
; "UBDC" session per <User,BitPerPixel,DisplaySize,Connection>
Policy=Default

The above is the latest, but little has changed since xrdp v0.9.1 when this section was introduced as part of commit 1934c9ea00cb4cb35a2561273c8df8339c8023a1
The problem I've got is the 'connection' setting. A 'connection' in this context is a string created by common/os_calls.c:g_write_ip_address(). The string is of the form:-
<ip_addr>:<port> - socket: <sck>

where <ip_addr> and <port> are from the peer connected to xrdp, and sck is the socket number allocated to the connection by xrdp.
If 'C'  is in the session allocation policy, the connection string for an existing session has to match the connection string for a reconnection for a reconnect to succeed (code is here). I can't see how this can succeed reliably. Both <port> and <sck> are very likely to be different on a reconnect.
So as far as I can tell, the 'Connection' argument to the Policy setting is effectively useless. Consequently, I'd like to remove this option for the next major release as it seems to have no use cases, and so no-one can be using it. It can usefully be replaced with the client name - see #2099
Am I misunderstanding something here?
@fpaquet - am I correct in thinking you had something to do with 1934c9ea00cb4cb35a2561273c8df8339c8023a1? If so, I'd appreciate you telling me what I'm misunderstanding, or what your actual intentions were for this setting.
Thanks for any enlightenment.

Thank you for the question.
The meaning of  was basically to open a new session for each user connection.
Meant to also have a policy option, ensuring never to connect to an existing session (always start a new session).
If you are not lucky with this, you can use .
Converting IP address into names would have given additional overhead, and may be forged externally in name service.

Thank you for your answer.
What would you then do with the existing session(s) in that model? It seems you could never connect to them at all. Is that right?

Correct, they're kind of lost but still can run some app's or commands.
You might want to set the KillDisconnected, DisconnectedTimeLimit or IdleTimeLimit in sesman.ini
to get it cleaned up.

OK - thanks for the explanation.
It seems like an odd kind of use-case to me, but I'm sure a lot of things I do seem odd to other people!
It's very easy to support. In fact, it doesn't even need to be combined with the other options, as if it's in any combination. session_get_bydata() will always fail.
My main reason for asking this question, incidentally, is to tidy up the sesman code in this area. I'd also like to make it easier for other contributors to provide PRs like #2099 which cater for other use-cases the team haven't thought of.
How does this look to you as a modified interface for the next major version?
; Policy - session allocation policy
;
;  Type: enum [ "Default" | "Separate" | Combination from {UBDIN} ]
;  "Default"    Same as UB
;  "Separate"   All sessions are separate. Sessions can never be rejoined,
;               and will need to be cleaned up manually, or automatically
;               by setting other sesman options.
;
;   Combination options:-
;      U        Sessions are separated per user
;      B        Sessions are separated by bits-per-pixel
;      D        Sessions are separated by initial display size
;      I        Sessions are separated by IP address
;      N        Sessions are separated by client name sent by the client
;
;   The options U and B are always active, and cannot be de-selected.
Policy=Default

People using 'C' will have to reconfigure Xrdp.
All others can continue without configuration change.
Hard to say how many are using option 'C'.
Needs at least a release note, pointing to the configuration change.

Yes - agreed.
We've got other config changes in the next major version, including a move to Unix Domain Sockets. The old config files will work, but will generate warnings. I can add a warning that 'C' is replaced with 'Separate'. Would that help do you think?
In all the time I've been triaging faults, few people have been changing this option from the default, and no-one has mentioned the 'C' option at all.

Because it's a background service, it would be very helpful to have a logged warning. Warning will also help you, to reduce the number of support issues.

I'll add a warning.


[zh] sync concepts/configuration/manage-resources-containers

PR Summary

EN upstream: content/en/docs/concepts/configuration/manage-resources-containers.md
Sync to: content/zh-cn/docs/concepts/configuration/manage-resources-containers.md
Updates:

Sync'ed a new NOTE to manage-resources-containers.md from the EN upstream.

Sync check byscripts/lsync.sh on main branch:
$ scripts/lsync.sh content/zh-cn/docs/concepts/configuration/manage-resources-containers.md
diff --git a/content/en/docs/concepts/configuration/manage-resources-containers.md b/content/en/docs/concepts/configuration/manage-resources-containers.md
index 45686178d6..f5ec08df70 100644
--- a/content/en/docs/concepts/configuration/manage-resources-containers.md
+++ b/content/en/docs/concepts/configuration/manage-resources-containers.md
@@ -256,6 +256,18 @@ Your applications cannot expect any performance SLAs (disk IOPS for example)
 from local ephemeral storage.
 {{< /caution >}}

+
+{{< note >}}
+To make the resource quota work on ephemeral-storage, two things need to be done:
+
+* An admin sets the resource quota for ephemeral-storage in a namespace.
+* A user needs to specify limits for the ephemeral-storage resource in the Pod spec.
+
+If the user doesn't specify the ephemeral-storage resource limit in the Pod spec,
+the resource quota is not enforced on ephemeral-storage.
+
+{{< /note >}}
+
 Kubernetes lets you track, reserve and limit the amount
 of ephemeral local storage a Pod can consume.

Sync check byscripts/lsync.sh on sync/configuration/manage-resources-containers branch:
$ scripts/lsync.sh content/zh-cn/docs/concepts/configuration/manage-resources-containers.md
content/zh-cn/docs/concepts/configuration/manage-resources-containers.md is still in sync

Thanks to the reviewers in advance.
Best Regards,
Kivinsae Fang

@windsonsea
Thanks so much for the review and suggestion.
PR was updated and squashed according to the doc conventions in 中文本地化风格指南 - 短代码（shortcode）处理

Thanks.
/lgtm
/approve


PVC error setting up pod in GKE Kubernetes

Expected behavior
Installing fabric8 4.0.153 on a clean GKE cluster using gofabric8 deploy --package system -n fabric --tls-acme=false
Actual behavior
Wit pod throws the following error during installation:
Multi-Attach error for volume "pvc-1f24d223-94e0-11e7-ae8d-42010a84012c" Volume is already exclusively attached to one node and can't be attached to another

GKE normally resolves these issues itself.  Sometimes it can take up to 5 mins though.  If you still have the pod around can you check?

The pod becomes active after a period of time. I am not able to verify if it is performing as specified as I am unable to deploy a fully working platform instance for other reasons at the moment.


chore: Small fixes to release notes logic

Makes two small non-agent changes related to release notes.

No longer counts Jira issue when validating PR title length.
Matches browser version support statement to what the docs team changes it to when the docs PR is raised.

Codecov Report

Merging #547 (c630a09) into main (f1e6336) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #547   +/-   ##
=======================================
  Coverage   20.03%   20.03%
=======================================
  Files         132      132
  Lines        4347     4347
  Branches     1109     1109
=======================================
  Hits          871      871
  Misses       2745     2745
  Partials      731      731

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Pull request action out of xml processesing

*** No errors detected
==22533== LEAK SUMMARY:
==22533==    definitely lost: 0 bytes in 0 blocks
==22533==    indirectly lost: 0 bytes in 0 blocks
==22533==      possibly lost: 0 bytes in 0 blocks
==22533==    still reachable: 91,854 bytes in 24 blocks
==22533==         suppressed: 0 bytes in 0 blocks
==22533==
==22533== For counts of detected and suppressed errors, rerun with: -v
==22533== ERROR SUMMARY: 760 errors from 16 contexts (suppressed: 0 from 0)


A/B Testing ?

Can something similar to A/B testing be added ? In case one wants to test new Similarity model before deploying ?

Reference: Medium article using Kubernetes


Update Curated Packages staging bundles to latest version

Description of changes:
This PR updates curated packages staging bundles to latest version.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm


Missing from the TOC

By design @BillWagner?

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

ID: 92991e4f-6d00-9e10-9a0d-1058ba06457f
Version Independent ID: e26cd6f8-ba2c-b8df-919f-4f1ecfd80864
Content: Local functions vs. lambda expressions
Content Source: docs/csharp/local-functions-vs-lambdas.md
Product: dotnet-csharp
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Another one: https://docs.microsoft.com/en-us/dotnet/csharp/implicitly-typed-lambda-expressions

In both cases, yes, this is by design.
They are both "sidebars" to an existing article. If I find the right home for them, I'll make them move visible.

SO WEIRD! I just came across this and there you go, you both found this.
Here is an idea. What if we put this in its own folder with its own TOC that pointed BACK to the parent article? It's a different design but at least gives the users a sense of direction versus having a blank TOC and thinking something is wrong? I donno.... 😄


Create page for fact quiz

[x] Routing for the new fact quiz page
[x] User interface (re-use current survey components, if usable)
[x] Functionality to handle the answers
[ ] Cypress tests
[ ] Jest unittests

When user is finished with selecting their answer they press a button, correct answer is showed and user gets a button that redirects them to next question.
Correct answers are displayed in green.

Frontend route currently is path: '/tietovisa/:questionId',, which can be found in router.jsx. We need to build backend api route(s) after repository and services have been created.

Tests not implemented, because the content is not in its final form.

Cypress E2E tests done on pull request #407, only thing we need now is Jest unittests.

Closing issue as requirements have been met. Not doing Jest unittests as there is still plenty of moving parts regarding the whole application. This has been confirmed by @PaulusParssinen


Please add JDK compile version information to your release notes

Would be really helpful to have a release information for the compiled JDK version.
We used the com.bloxbean.cardano:cardano-client-lib:0.5.0-beta1 and it was compiled with the JDK 17. Upgrading to the com.bloxbean.cardano:cardano-client-lib:0.5.0-beta3 (compiled with Major Version 63 JDK 19) the compilation is not possible until bumping to TARGET JDK 19.
Thanks you :)
Hint:
In Android projects you have something like this in your project build file:
    compileOptions {         // Sets Java compatibility to Java 17         targetCompatibility JavaVersion.VERSION_17         sourceCompatibility JavaVersion.VERSION_17     }

@esodot CCL is Java 11 compatible. You can check it here
https://github.com/bloxbean/cardano-client-lib/blob/86eba66195f6d58d87e3c52a4b569de37e89f482/build.gradle#L19
Java 11 is used for compilation. Let me check with a sample Android.

Thank you very much. It seems to be a strange issue on my side. Closing it


Update active-directory-reporting-users-with-anomalous-sign-in-activi…

…ty.md

Hi @SSalahAhmed, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;


CFFileUtilties: correct directory iteration for Windows

We did not pass the file handler the absolute path to the file.  This
would break as it expected a non-NULL absolute path.  This is needed for
the Bundle tests to work.

CC: @millenomi @jakepetroules @gwynne

@swift-ci please test


[AutoPR frontdoor/resource-manager] Add frontdoor/resource-manager/readme.typescript.md

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

(message created by the CI based on PR content)


Use Public Domain PKCS#11 headers, to avoid OASIS license

Issue #: https://github.com/awslabs/aws-c-io/discussions/621 The OASIS IPR license is not on Fedora's approved license list.
This license is at the top of the PKCS#11 headers released by the OASIS technical committee that standardizes PKCS#11. So it's a good idea to use the official headers, right? No, wrong, apparently. Here are many other open source projects being confused by the license, and replacing the headers that container it.
Description of changes: Replace OASIS headers with public domain headers, sourced from https://github.com/latchset/pkcs11-headers
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (4c65ce5) 80.07% compared to head (2a4aa5d) 80.07%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #623   +/-   ##
=======================================
  Coverage   80.07%   80.07%
=======================================
  Files          28       28
  Lines        5946     5946
=======================================
  Hits         4761     4761
  Misses       1185     1185

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Thanks for putting this in, @graebm! And thanks for building this public domain set of headers, @simo5!


The website cannot access audio or video on localhost

I have tried running this service locally, It does not ask for audio/video permissions.
Even when I gave permissions through browser setting's it still does not work.

It works after connecting a webcam.


npm ERR! Missing script: "ingest"

Hi, I am trying to run the ingest but run into the following message.
npm ERR! Missing script: "ingest"
I don't really understand where the error can come from. What I notice is that when I go to ingest-data.ts I get 5 error messages.
Cannot find module 'langchain/text_splitter' or its corresponding type declarations
I have langchain installed. When I do this again I get the message requirements already satisfied.
I have added to my environment variable: C:\Users\XXX\anaconda3\Lib\site-packages\langchain
When I run npm install langchain/text_splitter I get the message that the npm not being able to find a file
This is my first time delving into programming.
Can anyone help me?
Thanks

Did you use yarn or npm when setting up the project?

Thank you for your response.
When I run yarn version check via cmd I get the message:
Warning package.json: No license field
Error use the new version flag to create a new version
When i run yarn install
I got a warning your project contains lock files generated by tools other then yarn
When i run npm install i got the massage up to date audited 2 packages in 500ms
I think I'm doing something wrong here. What is the best thing to do as a next step?
Thankyou

Try to delete the entire repo and do this installation/setup process again, but now with yarn.


fix RichTextElement.elements items are never promoted to a proper Python object type

Summary
This pull request resolves #1468
Category (place an x in each of the [ ])

[ ] slack_sdk.web.WebClient (sync/async) (Web API client)
[ ] slack_sdk.webhook.WebhookClient (sync/async) (Incoming Webhook, response_url sender)
[ ] slack_sdk.socket_mode (Socket Mode client)
[ ] slack_sdk.signature (Request Signature Verifier)
[ ] slack_sdk.oauth (OAuth Flow Utilities)
[x] slack_sdk.models (UI component builders)
[ ] slack_sdk.scim (SCIM API client)
[ ] slack_sdk.audit_logs (Audit Logs API client)
[ ] slack_sdk.rtm_v2 (RTM client)
[ ] /docs-src (Documents, have you run ./scripts/docs.sh?)
[ ] /docs-src-v2 (Documents, have you run ./scripts/docs-v2.sh?)
[ ] /tutorial (PythOnBoardingBot tutorial)
[ ] tests/integration_tests (Automated tests for this library)

Requirements (place an x in each [ ])

[x] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've run python3 -m venv .venv && source .venv/bin/activate && ./scripts/run_validation.sh after making the changes.

I have made the necessary corrections. Could you please check and confirm if everything is in order?


Bolt text enhancements

DEMO: https://feature-bolt-text-enhancements.bolt-design-system.com/pattern-lab/?p=viewall-components-text
Do the following on above link:

Read through the docs (is the web component easy to use?)
Try to understand the schema (are the options intuitive to use? note this is the Twig schema, the names use camelCase instead of dash-separated, the web component has all the same options but the names use dashes.)
Review code changes (schema, CSS, and JS)

@remydenton

I am removing vspacing, it is built into the CSS, spacing is different from eyebrow to headline to subheadline to regular text. It is already designed specifically. So, I think it makes sense to override it (go against the design), you have to use utilities.
The README right now is aiming to document everything you need to know about using the web component. Each piece of text is a specific design and we have to treat it as such. That's why all the recipes are documented (all sizes of headlines and subheadlines, plus eyebrow and regular text). Each recipe needs to map to a specific paragraph in Drupal. I want to make the entire doc to be about web component and remove twig, because we want to use this as a test. But I wasn't able to remove the twig stuff or convert the Schema table to reflect the web component version. Can you help make this happen?
Preset is a good suggestion but not something I can do, will need your help.
By moving utils into attributes, is it still intuitive and systematic? The utils setup feels nice here and it's very specific about what it's supposed to do. Applying it to all components feels more systematic than telling people to dump utils into the attributes.


Add Parked Option to Charge Station

We need a parked option for score tracking, and it makes sense to remove the Failed option while adding this since there are robots that fail but still park, and park but do not attempt charge. Also, there isn't any reasonable metric where keeping track of charge station fails is useful. Validation filters it out as well anyways.
Making PR cuz no one else is fixing :(

This PR unfortunately didn't go in for 2023, and since it is 2024 it is not relevant to the current project. Closing this PR


Show also email if (name && email)

great idea! can you take a screenshot of the full header? just want to make sure the alignment looks ok :)

The wrapper flex container has alignItems baseline, maybe center is a better choice? see below:

...pushed with "center" and did a rebase, looks nice imho

happy to contribute :)


Build(deps-dev): Bump @types/qs from 6.9.8 to 6.9.10 (#5384)

Pull request opened by the merge tool on behalf of #5384

Merged in 4e6be7c3eaa9fdf7b42752db9886de8191bc5501


Privatise translate_grid and expose data_to_world

Description
This PR makes translate_grid private, with a deprecation warning for the public one. To compensate for the missing public information about the state of the world translation, I also added data_to_world() or the blueprint of world_to_data.
I'm definitely not convinced this is the way to do it, but I figured it's easier to create a PR and ask for feedback. See #3725 for context; in short: this property should have been private all along (or at least the setter), but removing it might break some code relying on it, which may benefit from data_to_world.
cc @Czaki
Type of change

[ ] Bug-fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

References

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

@brisvag great stuff here, i'll merge to get this in now - but we might even want to do a followup where we remove this entirely, see #1827 I've wanted to get rid of this for a while. Layers should not know where they were in the grid.

@sofroniewn what about @Czaki 's comment about deprecation time? should we extend to more than 1 patch version?

I think it's fine. We're now releasing only every 6 weeks or so instead of every 2 weeks a few months ago, so people will have much more time. If needed, people can pin.


Feature/influxdb2 (Issue #581)

Thanks for helping out :+1:
The issue or feature being addressed

#581

Details on the issue fix or feature implementation

Added reporter for InfluxDB 2.0 (some code is duplicated from InfluxDB project, some reused)

Confirm the following

[X] I have ensured that I have merged the latest changes from the dev branch
[X] I have successfully run a local build
[X] I have included unit tests for the issue/feature
[X] I have included the github issue number in my commits

Hi @alhardy , we also need to swtich to influxdb 2.x, any update for this PR?

Apologies for the delay. I'll get to it earlier next week

Hi @alhardy, we also need to switch to influxdb 2.x and would be happy to have this update.

4.4.0-preview.0.4 packages pushed, however nuget is failing for some reason uploaded the new package
"The package ID 'App.Metrics.Reporting.InfluxDB2' is not available."
Will need to investigate

Ah :)
It's been published to nuget by https://www.nuget.org/profiles/Alex.Kabin
https://www.nuget.org/packages/App.Metrics.Reporting.InfluxDB2
@rokbjc is this you?

Any updates here?

Hello, @alhardy,
Alex Kabin freed up the name for the InfluxDB2 name :) Hope it helps :)

Cool, let me know when and I'll push the package from here. Unless you want to maintain that from your repo and I'll link out to it in app metrics docs and remove from here

It should be free right now and you should be able to push the package. I did not contribute to this merge, so I would rather not maintain it at this point.

@alhardy Hey, could you, please, push the package :)

Dear @alhardy , can you please push the package, thanking you in advance.

@alhardy Hey, sorry for the poke, but is there any updates on this :)

@alhardy Hey, I just copied the source for App.Metrics.Reporting.InfluxDB2 and it works perfectly. Unfortunately, the library does not appear yet in nuget, so we will have to reference it from somewhere else. I have a question, If I report to 2 different places, will the data be the same. Right now, I report to InfluxDb2 and toConsole. And it seems that it reports all it has to one of the sinks, and the other gets nothing.

Hi @alhardy, is there any update on this? The only App.Metrics.Reporting.InfluxDB2 library in NuGet is by Alex Kabin. Like others, we are also needing to migrate to Influx 2.0.

any update @alhardy ? 👉👈

hi any update on this ??


Blank WebApp fails to start

Repo:
Create new ASP.NET Core 2.0 webapp
Install API & CLI Package
dotnet initialize init
dotnet initalize build
=> open ElectronNET.Host.exe
Nothing happens :(

Do you add the UseElectron extension in Program.cs?
public static IWebHost BuildWebHost(string[] args) =>             WebHost.CreateDefaultBuilder(args)                 .UseStartup<Startup>()                 **.UseElectron(args)**                 .Build();
And open a Window in Startup.cs?
Electron.WindowManager.CreateWindowAsync();

Works!
But: We need to add the UseElectron(args) method in your readme @GregorBiswanger (currently it is missing and without it, it doesn't work)
  public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .UseElectron(args)
                .Build();


Lesson 4 and 5 Images

Docs Build status updates of commit 2d8491d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/mrlearning-base-ch4.md
:white_check_mark:Succeeded
View

mixed-reality-docs/mrlearning-base-ch5.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 5feedad:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/mrlearning-base-ch4.md
:white_check_mark:Succeeded
View

mixed-reality-docs/mrlearning-base-ch5.md
:white_check_mark:Succeeded
View

mixed-reality-docs/mrlearning-base-ch6.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Challenge 19: Counting Sundays

You are given the following information, but you may prefer to do some research for yourself.
1 Jan 1900 was a Monday.
Thirty days has September,
April, June and November.
All the rest have thirty-one,
Saving February alone,
Which has twenty-eight, rain or shine.
And on leap years, twenty-nine.
A leap year occurs on any year evenly divisible by 4, but not on a century unless it is divisible by 400.

How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)?

"Unfortunately", Go makes this too easy with its great time package. The program is easy to follow.


Correct focus bug when input is inside  in non-Chrome browsers

Closing due to the recent changes. If this bug is still relevant, please file an issue.


[Keyboard Request] Roccat / AlienFX

Roccat now have AlienFX enabled on their keyboards (notably Ryos MK FX). Can we get it enabled on this device? Tried starting the software but it says 'No Keyboard Detected'.

Just noticed this issue was asked back in July, have you made any progress on LightFX hardware support?

No progress was made because I don't have access to an AlienFX keyboard, nor has anyone else made support for AlienFX. I can look into it and attempt to write support blindly, but I wouldn't expect it to work 100%

Looked into Ryos FX. And it seems like you cannot set the individual color of keys.
As a result, I don't think Ryos or any TalkFX device will have decent lighting effects. It would be more ambient than specific.
I will add it, but like I said before, don't expect it to be 100% functional nor to be eye candy.

As far as I know anything made for light fx should just work for ryos too. If you make a test build with light fx I'll be happy to test and report my findings for you.

Add me on steam, will send over a build.
http://steamcommunity.com/id/pupant/

Added you (Vyrus)

I have an Roccat Kone + and I am confused how to make it work....


Add network commands

These changes add network policy commands allow-network-access, list-network-access, and remove-network-access to the CLI.
[#145552365], [#148703351], [#148703369]
Let us know if you have any questions/concerns.
Thanks,
Angela and @joachimvaldez

Thanks!
I've move this to the top of our backlog - the team will start reviewing tomorrow.
Also, I have added my expected command help & output & A/C in the stories in the container networking tracker.
I will start acceptance after this code's been merged. If you can take a look at my comments on the stories and apply any changes that may be required to this PR, that will make acceptance go faster.

We believe now all changes on our end have been done. Let us know if there are any other issues.
Cheers,
Angela and @joachimvaldez

Whoops, our bad. Focuses have been removed.
Cheers,
Angela

We've updated the PR to reflect the latest feedback from your code review


Added the first ICDC test.

Implemented the ICDC level order test.
This includes functionality to retrieve the reordered profile depth and temperature information for use by other tests and to reorder data back into the original order.

Hi @BillMills, yes you are probably right. I was going down the route of making the python version as similar as possible to the fortran but maybe that's the wrong approach. I'll take another look.

That's a good place to start from! Fortran is super quick no matter what you do, but python loops can sometimes slow you down (the builtins are probably fortran under the hood :).

The code has been reworked as suggested. Results match the test profiles supplied with the fortran so I will merge this pull request and close.


Roadmap

Roadmap
This issue will act as the roadmap for the library going forward. The final goal is to achieve what was specified in #12 . This will be done in several step detailed below.
This will allow to better understand where the library development is going, what are the priority and what one can work on.
It will be completed and evolves over time. This is a general roadmap, but the projects will be there to add more details and specifications for the different implementations or specific tasks.
Initial tasks

[ ]  REST handler - working implementation for REST handler: a basic standalone class that allow to do request discord and covers the whole REST API. Handles endpoints and global ratelimits (in memory).
[ ] Gateway handler - working implementation of Discord Gateway: a basic standalone class that opens a websocket connection to discord and keeps it open, emit one node event per events received from discord

Just to make this clear - we will get these 2 initial tasks done first.
After that we will come up with a basic design/documentation so we have something to work with.


fix(useSize): prevents accessing iframe's property when it's not defined

Fixes error in useSize: Cannot read property 'contentWindow' of null
ref #442

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Feedback for hardware to use TSDuck on Production

Hi everyone, i'm looking for an feedback about the hardware you guys using on production for your applications.
The most common use for tsduck in the region here is for ip remux, the input is an UDP that we need to remap to an UDP output, most times taking one UDP input with X programs and remap to multiple UDP outputs and my doubt is the criteries for do this, how much cpu/memory/gpu i need to each program, things like this.
I'm newbie on this world and i'm trying to get more information with the experts on the area, i'm an developer and my objective is contribute with this project as i can!
EDIT: if someone here using an embedded hardware or some another architecture please let me know, i'm alot curious about this too.

Hi @cdavid14
The first thing I would like to make clear is that TSDuck has been designed for test, demo, debug, etc. It has not been designed with production in mind. That being said, TSDuck has proven to be robust but it should be clear that using it on production will be done at your own risk.
For production use, I recommend to use Linux, not Windows.
Taking one MPTS as UDP input and sending as many SPTS as there are services is trivial and uses very little resource. Any regular modern PC with a few GB of RAM is sufficient. No GPU is required.
The best benchmark is to try it yourself.
The typical command skeleton would be something like this (with 4 input services):
tsp -I ip ...

I understand @lelegard , in case I wanted to do a bench test to do what we do today through a closed solution, to situate the context I work on an ISP taking care of the network as a whole, but recently this same ISP bought a TV operation. and I am situated in this new world, I am also an independent developer, my idea is to study this new world and develop solutions, I came across tsduck and I am learning a lot, for this lack of knowledge I have to open this issue to know more as you use it in practice.
Maybe try do something embedded to local market..


Mesh VisibilityInstance layers value not preserved on .duplicate()

I'm running Godot 2.1 on Windows 8.
After setting up a basic scene, I set the camera to only display a specific 'Visible Layer', and set the only mesh in the scene to display on a specific 'VisibilityInstance Layer'.
After I translate the mesh, I .duplicate() it, but the duplicate does not appear on the same layer. I can only see the new duplicated mesh if I set the camera to display the default visible layer.
I suspect that means that duplicated meshes lose VisibilityInstance layer settings...
Can this be confirmed?

First of all thank you for your report and sorry for the delay.
We released Godot 3.0 in January 2018 after 18 months of work, fixing many old issues either directly, or by obsoleting/replacing the features they were referring to.
We still have hundreds of issues whose relevance/reproducibility needs to be checked against the current stable version, and that's where you can help us.
Could you check if the issue that you described initially is still relevant/reproducible in Godot 3.0 or any newer version, and comment about it here?
For bug reports, please also make sure that the issue contains detailed steps to reproduce the bug and, if possible, a zipped project that can be used to reproduce it right away. This greatly speeds up debugging and bugfixing tasks for our contributors.
Our Bugsquad will review this issue more in-depth in 15 days, and potentially close it if its relevance could not be confirmed.
Thanks in advance.
Note: This message is being copy-pasted to many "stale" issues (90+ days without activity). It might happen that it is not meaningful for this specific issue or appears oblivious of the issue's context, if so please comment to notify the Bugsquad about it.

"We still have hundreds of issues whose relevance/reproducibility needs to be checked against the current stable version, and that's where you can help us.
Could you check if the issue that you described initially is still relevant/reproducible in Godot 3.0 or any newer version, and comment about it here?"
Checked again. The bug can still be reproduced, as described on commit - 59710880cd21d79ae1329f04eb35ea48e646acb3 (Godot 3.0.1/2).

This works perfect, tested it. I assume the problem may have been that:

You forgot to add the duplicate to the tree again
You misunderstood how layers work (common problem).

I will add a function to set layer bits independently, like physics has and then close this.


[XLA] Use os.path for path manipulation

Split from #15310.
#15213

Can one of the admins verify this patch?

@tensorflow-jenkins test this please


Improved debuggability for BigchainDB Server

Improved debuggability for BigchainDB Server
Disclaimer
This ticket's scope is currently defined to loosely! In order to execute on it, some time will need to be spend on defining termination conditions for what must be implemented to "finish" this project.
Definitions

BigchainDB: Is a scalable blockchain database, the server software.
BigchainDB driver: Is an application used to construct, send and receive payloads from BigchainDB.
BigchainDB SaaS: Is BigchainDB deployed as a service by a BigchainDB operator for BigchainDB users (e.g. IPDB).
BigchainDB GmbH: Is the company that develops BigchainDB.
BigchainDB developer: Is an individual working for BigchainDB GmbH working on BigchainDB.
BigchainDB operator: Is an individual deploying BigchainDB in an environment (testing, staging, production, etc.).
BigchainDB user: Is an individual either using BigchainDB deployed as a service or BigchainDB the software (deployed themselves).

NOTE: The roles of BigchainDB developer, operator and user can intersect or even be equal, meaning all permutations of roles can be the case (e.g. a BigchainDB developer that is neither a BigchainDB user or BigchainDB operator or a BigchainDB operator that is also a BigchainDB user, but not a BigchainDB developer, etc.)
Problem statement
Soon, BigchainDB will be deployed in testing, staging and production environments (many of them located on remote machines). For any operators of nodes or federations we'd like to enable them giving BigchainDB developers precise feedback in case of anomalous behavior in their deployments so that
BigchainDB GmbH (BigchainDB developers and BigchainDB operators) can fix these issues effectively.
The overarching theme of this project is to make firefighting on IPDB as efficient as possible in the time given to complete the project.
Distinction
This project is only concerned with improving the debuggability of BigchainDB, not e.g. BigchainDB driver.
Use cases
This section outlines use cases as user stories ordered by priority, grouped by their stakeholders. They're ordered by priority (actually not yet, but they will be). If you know from users that are interested in a specific aspect, feel free to update this list without changing the prioritization. If you're a user and you're currently reading this ticket, feel free to comment below to let us know what's important to you.
Business use cases

As BigchainDB GmbH I want BigchainDB to be efficiently debuggable so that I can efficiently fix issues of BigchainDB SaaS instances (most importantly on IPDB).
As BigchainDB GmbH I want BigchainDB to be efficiently debuggable so that BigchainDB users and BigchainDB operators can submit high quality issue reports to BigchainDB developers.
As a BigchainDB GmbH I want to process BigchainDB's logs so that I can use this information to build a node dashboard (for some of the metrics involved, see this gdrive doc - only circulated internally currently, NOTE: "health" is undefined currently!).
(if there are more, please feel free to add them here or in the comments)

External user use cases

As a BigchainDB user I want to read BigchainDB's logs so that I can determined why a transaction I sent was labeled invalid by consensus or refused by BigchainDB's HTTP API server (e.g. in schema validation).
As a user I want to determine exactly when an error occurred (e.g. exact timestamp, atomic counter) so that a developer or operator looking at my error report can easily find what happened in the logs
(if there are more, please feel free to add them here or in the comments)

Technical use cases

As a BigchainDB developer and user I want exceptions thrown by BigchainDB to be categorized hierarchically so that I can semantically catch specific groups of exceptions.
As a BigchainDB developer I want to read logs of BigchainDB so that I can troubleshoot BigchainDB and BigchainDB SaaS.

As a BigchainDB developer I want to easily filter logs of BigchainDB so that I can efficiently troubleshoot BigchainDB and BigchainDB SaaS

As a BigchainDB developer I want to read and process logs of BigchainDB so that I can proof and debug the correctness of asynchronously executing processes in BigchainDB
As a BigchainDB developer I want visibility on the performance of queries so that I can troubleshoot and debug performance problems on a running BigchainDB instance
As a BigchainDB developer I want visibility on the state of a running BigchainDB node's pipelines so that I can reconstruct a similar state during testing and troubleshooting
As a BigchainDB developer I want time control over a running BigchainDB pipeline so I can time travel and replay certain events to help me understand an error
As a BigchainDB operator I want to persist logs of BigchainDB so that I can run BigchainDB as a daemon (NOTE: Running BigchainDB is a precondition here).
As a BigchainDB operator I want BigchainDB's logs to be timestamped so that [... motivation missing].
As a BigchainDB operator I want BigchainDB's logs to include errors, warnings and infos of BigchainDB's data base back end (e.g. RethinkDB, MongoDB, etc.)
As a BigchainDB operator I want to aggregate logs from all nodes in a federation so I can understand and troubleshoot an entire running federation (as well as the effects of a single node on the federation)
As a BigchainDB operator I want to increase or decrease log levels of running nodes so I don't have to restart a running system (and potentially lose important state related to an error)
(if there are more, please feel free to add them here or in the comments)

Actionables and Deliverables

[x] Have a kick-off meeting for this project (@TimDaub will call it)
[x] Review use cases and potentially add complementary use cases if necessary
[x] A list of tasks defining the implementation part of this project

[x] Call a review meeting on changes planned to implement (review the
task list) with the various stakeholders (Team lead calls meeting)

[x] Implement planned changes

Kick-off meeting notes

A BigchainDB daemon mode might be useful

this means that logs would then be written to a file

Is this ticket is only about BigchainDB (the server)
How do we distinguish between errors, warnings and infos? What should we log?

Answer: Whatever it takes to make IPDB firefighting more efficient.

What's meant by "operator"

Tim: I'll fix that in the ticket
Is operator someone that can fix a bug: answer, maybe...

Do logs need to be tracked in wall-clock-time or logical-time?

TDB?

What's "health"?

Yeah, we need to define what "health" means first.

We should call certain failures by there name. A failure might involve specific lines in the log.  Their sum equal a greater failure. It would be nice to give the failure a name and log that.

Existing technical problems on BigchainDB Server
In this section we list tickets related to this project. If you have any
tickets to add, please feel free to do so.

Proposal for BigchainDB Exception Hierarchy
Log more
Logging requirements for pipeline correctness
Add debugging mode
In HTTP API, consider using custom error handlers
Maybe: Unify database exceptions and unify behavior on reconnects
Maybe: Remove unnecessary exceptions
(if there are more, please feel free to add them here or in the comments)

Add debugging mode

This may fall somewhat outside the scope of this project, but this is a use-case that's solely targeted at developers:

As a BigchainDB developer I want to be able to set deterministic breakpoints across all running pipelines so that I can understand what's going on internally and fix bugs and errors in BigchainDB efficiently.

Some links on logging that may be interesting:

https://dave.cheney.net/2015/11/05/lets-talk-about-logging
https://peter.bourgon.org/blog/2016/02/07/logging-v-instrumentation.html

As a BigchainDB developer I want to be able to set deterministic breakpoints across all running pipelines so that I can understand what's going on internally and fix bugs and errors in BigchainDB efficiently.

I framed it like this @sohkai. I hope that's fine. If not, I'll just replace it with your framing.

As a BigchainDB developer I want to read and process logs of BigchainDB so that I can proof and debug the correctness of asynchronously executing processes in BigchainDB

Some added use cases (diff overview from the changes to the issue; + is an addition):
### External use cases

+ As a user I want to determine exactly when an error occurred (e.g. exact timestamp, atomic counter) so that a developer or operator looking at my error report can easily find what happened in the logs

### Technical use cases

- [As a BigchainDB developer I want to read logs of BigchainDB so that I can troubleshoot BigchainDB and BigchainDB SaaS](https://github.com/bigchaindb/bigchaindb/issues/663).
    + As a BigchainDB developer I want to easily filter logs of BigchainDB so that I can efficiently
+ As a BigchainDB developer I want visibility on the performance of queries so that I can troubleshoot and debug performance problems on a running BigchainDB instance
+ As a BigchainDB developer I want visibility on the state of a running BigchainDB node's pipelines so that I can reconstruct a similar state during testing and troubleshooting
+ As a BigchainDB developer I want time control over a running BigchainDB pipeline so I can time travel and replay certain events to help me understand an error
+ As a BigchainDB operator I want to aggregate logs from all nodes in a federation so I can understand and troubleshoot an entire running federation (as well as the effects of a single node on the federation)
+ As a BigchainDB operator I want to increase or decrease log levels of running nodes so I don't have to restart a running system (and potentially lose important state related to an error)

I'm removing the "when: in progress" label on this issue because I'm pretty sure it's not in progress.


Make vLoggingPrint scheduler-safe

Make vLoggingPrint compatible with FreeRTOS tasks.

For a detailed description of the problem, see issue 124
With this patch, both vLoggingPrint and vLoggingPrintf can be used from a FreeRTOS task.
The latter will mostly be used in the Windows self-test application.
Checklist:

[x] I have tested my changes. No regression in existing tests.
[x] My code is Linted.

/bot run checks

Sarena, am I right that this PR #264 can be closed?

Update Windows Simulator to use AWS Logging Task Dynamic Buffers. (#319)

I assume that your PR #319 will take care of writing a safe new vLoggingPrint() ?

Closed for rework.

Are you still working on it?
Hein

Sarena, am I right that this PR #264 can be closed?

Update Windows Simulator to use AWS Logging Task Dynamic Buffers. (#319)

I assume that your PR #319 will take care of writing a safe new vLoggingPrint() ?

Closed for rework.

Are you still working on it?
Hein

Hello Hein,
I will take over this PR's content from the PR that Dan has written: https://github.com/aws/amazon-freertos/pull/285
I will close this PR now. Thank you for all your help!


Incorrect join with @OneToOne optional on one side and NOT optional on other side

I have two entities: User and Account.
Each user has one account. So the relationship is @OneToOne and mandatory from user's side.
On the other hand some accounts belong not to users, but to companies. So from the account's side it's @OneToOne but optional.
I've modeled it in this way:
class User {
@OneToOne(optional = false)
Account account;
}
class Account {
@OneToOne(mappedBy = "account",optional = true)
User user;
}
Generated schema is just what I need (account field in User is NOT NULL).
The problem is that when I'm fetching Account (just with .find(), without additional .fetch() ) ebean makes JOIN of the user, not the LEFT OUTER JOIN although on the account's side the relationship is optional. It only starts making LEFT OUTER JOIN if I make it optional also on user's side. But it this case I'm loosing NOT NULLity of the account_id field.
So the question is: how can I enforce LEFT OUTER JOIN on one side while keeping NOT NULLity on the other side? Adding additional @Column(nullable=false) annotation to account field doesn't affect the schema.

Is there a way to get around this bug in version prior to 4.1.2?? I'm using Play Framework 2.3 and the version of Ebean ORM used is 3.3.4 and I can't change it. I have the exact same problem.

Version 3.x is very old and 4.x had significant change based on a change to the enhancement.

yeah I know but still I was hoping that something could be done instead of migrating to the new Play Framework which is a nightmare each time. Thanks!


New version: Jackett.Jackett version 0.21.580

Pull request has been created with WinGet Releaser v2 :rocket:
Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/114984&drop=dogfoodAlpha

@wingetbot run


[BUG] Improve error response codes.

Currently all the internal errors throw Service Unavailable exception which is not apt and should throw internal server failure instead.
Code Pointer: https://github.com/opensearch-project/sql/blob/main/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestPPLQueryAction.java#L148
The ask of this issue is to fix these error response codes in both sql and ppl APIs.

Internal Server error should return 500


Another test

if i do this, it compiles. i have tried doing it locally but it won't work?

Holy hell, what are you doing? Just clone the repo and modify it locally. If you need to make changes, push them to your github fork. Stop making Pull Requests.

@phase I'm honestly really sorry as i'm extremely new to Github, and I didn't know it would do that. If you could help me be able to edit and compile instead of doing pull requests instead, that would be greatly appreciated :l I've tried everything i can and i don't know what you mean.

In your terminal, run
git clone https://github.com/Thinkofname/steven
cd steven
cargo build

@phase this is really getting annoying, for me and you. I am really sorry but I have no idea why it's doing this to me. https://gyazo.com/6b931d7711c1b2b8b50423c2527bbb4b

Hitting Create Pull Request will not fix anything. You are knowingly making commits, pushing them to your fork, and making a PR. STOP THIS.
Download Rust nightly and see if that works.

@phase For god sake, It actually has fixed something. It actually compiled my edit anyway. And i'm not knowingly doing it, i don't even know what i'm doing most of the time. All of this isn't really noob friendly, admit it.
I have downloaded Rust nightly and it's the same problem. Could you record a video of instructions? I think that would make this all resolved faster. It would be a great feeling for me and you if it gets fixed.

Do you see the bright green button? Do not, under any circumstance, ever press that button. I repeat, do not press the green button. This will not compile your code.
Without a stacktrace, there isn't much I can do. The image you showed does not have one, nor any information as to why the build failed.

 Just saying. Also, how am i supposed to learn? OKAY! I get that I don't press that button. But since I can't actually do anything else, i was forced to experiment.  Just saying

It stopped you from creating more PRs.

Also, how am i supposed to learn?

Google, StackOverflow, using Bing if you have to.

But since I can't actually do anything else, i was forced to experiment.

I'm still confused on what exactly you're trying to do. Compile Steven? That's something you do on the command line, nothing to do with GitHub.

and it did actually compile the code so don't say it didn't xD

THEN WHAT ARE THESE PRS?!?!?!?!?

Yeah. I am actually really sorry.  I am a noob, you can tell. I just need help compiling, I do the command and I get frustrating errors that barely have information on google about. All I'm trying to say is that command line's isn't really noob friendly and that if you could find any tutorials of anyone having the same problems, it will deeply appreciated. I am sorry for being so annoying.
https://gyazo.com/6b931d7711c1b2b8b50423c2527bbb4b

There has to be more output than that. Run cargo run and screenshot the entire output.

Am I even supposed to use the actual rust "shell"
https://gyazo.com/b94e7e289dcf54536a3517838afb6820
https://gyazo.com/7ef6f498847869714938e8dd0de2a90b

It's failing because you don't have OpenSSL properly installed. Try following the instructions for Windows here: https://github.com/sfackler/rust-openssl

@marcusball Just tried that, still nothing. I also went on my linux laptop and tried, It looked like it was going to actually work but then i got a big bunch of errors all together right at the end of it. https://gyazo.com/aff45b41f5972743fcae14d3f77ebc76
Thanks for your help btw!

@marcusball @phase @Thinkofname @Techcable  Okay I managed to fix all of the errors and it completed but where is the .exe lmao

On linux the executable doesn't have a extension.
Everywhere it's in target/debug/ and called steven.

@bjorn3 Yeah I thought that but when i put it on my windows pc, i can't run it, i tried changing to .exe but comes up with https://gyazo.com/2bbe84f92b5d571a89579c7a3b9fa8f5

Strange

@bjorn3 Steven / this doesn't like me at all :|

You can't just copy a program for Linux and try to run it on Windows. They're two different operating systems with completely different program file types; to run something on Windows, it must be build for Windows. If you want to use this in Windows, you pretty much need it to get the compiling to work on Windows. Did following the instructions for OpenSSL actually change the error message? If it did, then please post the new errors; if you're still getting the same errors, then you did something incorrectly and need to try setting up OpenSSL again.

@marcusball Rip. It don't think it changed the message. https://gyazo.com/8701934262942fa6c8df564249ac3e3b

Can you put /include in your include path?

@bjorn3 I don't even know how to do that. Do you have skype? My skype: sylionskype

I don't have skype.
Set the INCLUDE_PATH environment variable to <openssl path>\include:<old content of INCLUDE_PATH>. Without : if INCLUDE_PATH was empty.
Do you have sdl2. (Not the current problem, but it will error when linking the exevutable when not).

I presume you followed these sections of instructions on the rust-openssl page:

Alternatively, install OpenSSL from here. Cargo will not be able to find OpenSSL if it's installed to the default location. You can either copy the include/openssl directory, libssl32.dll, and libeay32.dll to locations that Cargo can find or pass the location to Cargo via environment variables:
env OPENSSL_LIB_DIR=C:/OpenSSL-Win64 OPENSSL_INCLUDE_DIR=C:/OpenSSL-Win64/include cargo build

Please correct me if you followed one of the other Windows options from there; I assume you did this because I think it's the easier route.
If you followed these steps, first make sure you installed the correct version from the linked download page. You almost certainly are using 64-bit Windows, so you need to make sure you installed Win64 OpenSSL v1.0.2h (not the "light" version).
When the installer prompts to ask for the destination location, make sure the path doesn't have spaces and that you remember the location—you'll need it for the next step. For example, I installed it to C:\OpenSSL-Win64.
Now, if you're on Windows 10 or 8, you can right click on the Windows Start button on the bottom left of your screen, and select "System".

On the Left menu of the system screen, select "Advanced System Settings". The "System Properties" window will open to the "Advanced" tab; at the bottom of that tab, select the "Environment Variables..." button.

Under "System Variables" select the "New..." button. For Variable Name put OPENSSL_LIB_DIR, and for the Variable value, place the path to where you installed OpenSSL with "\lib" added to the end of the path—because there should be a "lib" folder within the install directory. For example, with my aforementioned install directory of C:\OpenSSL-Win64, the value here will be C:\OpenSSL-Win64\lib. You can use the "Browse" button to find this yourself, if you'd like.

Again, create another "New" variable, and for the name select OPENSSL_INCLUDE_DIR and for the value select the "include" directory within your OpenSSL install (ex: C:\OpenSSL-Win64\include).
Now, close your command prompt/terminal/shell, open a new one, then try building again.

@marcusball Okay I must be doing something wrong! Nothing changed ;-; Have you tried team viewer before? Hopefully you have Skype: sylionskype

Did you read and follow every step I posted there? You didn't skip anything? Are you absolutely sure nothing changed? I find it hard to believe that, if you did everything above, the error message is exactly the same.

@marcusball I will try and do it on my laptop, i think i might of done something wrong but your help has been really great. I hope it works. I will edit if it does or doesn't.

Are you referring to your aforementioned Linux laptop? The instructions I wrote are for Windows 10/8, and the setup is going to be quite different for Linux, if that's the laptop to which you are referring. I don't have any way to actually testing a Linux setup, so I can't help too much.
If you do want to try this on Linux, I can only give you a basic rough outline which might contain errors.
Approximate Linux instructions:
The first step of setting up Rust would be approximately the same; you need to make sure you're using the Nightly release. If you don't know which version you have installed (you can verify with rustc --version), I recommend you uninstall it, and reinstall Rust using rustup. Install rustup by following the instructions on the website, then follow the steps for Option 2 above; except, instead of nightly-x86_64 you can just write nightly.
Ignore most of the other stuff I wrote above if you're doing Linux. Execute these commands (taken from the CI config file) to install dependencies:
sudo apt-get update -qq

sudo apt-get install -y libsdl2-dev libsdl2-mixer-dev libssl-dev gcc

Note: Those will only work on Debian(?)/Ubuntu variants. If you get an error about apt-get not existing, you're on a different distro with which I'm not too familiar.
You should then be able to run cargo build again.

@marcusball I can compile / build perfectly fine on my Linux laptop but that's pointless since I can't get the .EXE nor run it D: Cross compiling looks way too hard and I know I will get something wrong.

@TestAccount404 why do you want to develop on Steven if you can even get basic things like SDL2 or OpenSSL running? I have compiled Steven on all 3 platforms successfully before - and yes, I had errors at first too.  Seriously. You are never going to learn how to use this if you want people to do the stuff for you. Also. When you compile on Linux the binary only runs on Linux, if you compile on macOS it only runs on macOS and you guessed it - if you compile on Windows it will only run on Windows. It's that simple. If you want your .exe you have to get your Rust and Cargo running properly on Windows. After that you install OpenSSL and SDL2 and that's it. I think @Thinkofname even added documentation for that. You just need to look at it instead of expecting other people to do it for you.
Steven Wiki
Install SDL2
Install OpenSSL

@lenovouser I have been looking it up. It's always the same problem. That's why i've asked.

 Being confused about running a Windows application on Linux (or whatever you're talking about) makes me wonder how you were able to install Linux in the first place.
The first thing you can do is specify what OS you're on. First you say you have Windows, then Linux, and now you're trying to cross-compile? What?!

@phase I am getting errors on my windows PC. When I tried to compile on my linux laptop, I got the same errors. I then fixed the errors on my linux laptop by installing "sudo apt-get install libsdl2-dev" and it compiled fine [but i can't use the .exe in anyway, can i..] when i tried to install / download libsdl2 on my windows pc, nothing changes. I know you guys are trying to help and are giving me very well written stuff that you know what you're talking about but it hasn't fixed anything atleast on my windows pc.

Executable files are different on Linux and Windows. Windows has .exe files, while Linux executable don't have a file extension.
Are you getting the same error (on the Windows PC) that you showed in https://gyazo.com/aff45b41f5972743fcae14d3f77ebc76 ?

@phase The extension thing has been explained a lot of times. That error in the image was on my linux laptop which has been fixed. This is the current error on my Windows PC which is the problem:
https://gyazo.com/e750ff98a258554301ed62867a22fe2c

Can you tell me the contents of C:\OpenSSL-Win64\include\openssl? If that folder doesn't exist, follow the steps above to install OpenSSL.

@phase Just C/C++ headers.
https://gyazo.com/4f501062ced2369a2c53f940d2742005
https://gyazo.com/e28a16b1fda2f70fce69526a0eb027a5

The error is saying that it can't find the file openssl/hmac.h, yet it is in the folder that is included in the compile command... Can you show me the contents of the file?

hmm
#ifndef HEADER_HMAC_H
define HEADER_HMAC_H
include <openssl/opensslconf.h>
ifdef OPENSSL_NO_HMAC
error HMAC is disabled.
endif
include <openssl/evp.h>
define HMAC_MAX_MD_CBLOCK      128/* largest known is SHA512 */
#ifdef  __cplusplus
extern "C" {
#endif
typedef struct hmac_ctx_st {
const EVP_MD *md;
EVP_MD_CTX md_ctx;
EVP_MD_CTX i_ctx;
EVP_MD_CTX o_ctx;
unsigned int key_length;
unsigned char key[HMAC_MAX_MD_CBLOCK];
} HMAC_CTX;
define HMAC_size(e)    (EVP_MD_size((e)->md))
void HMAC_CTX_init(HMAC_CTX *ctx);
void HMAC_CTX_cleanup(HMAC_CTX *ctx);
/* deprecated */
define HMAC_cleanup(ctx) HMAC_CTX_cleanup(ctx)
/* deprecated */
int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md);
int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
const EVP_MD *md, ENGINE *impl);
int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);
int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
const unsigned char *d, size_t n, unsigned char *md,
unsigned int *md_len);
int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx);
void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags);
#ifdef  __cplusplus
}
#endif
#endif

    ```
    put code between these
    ```

Can you attach a screenshot of your Environment variables window, with the aforementioned OPENSSL_ variables visible?

#ifndef HEADER_HMAC_H
# define HEADER_HMAC_H

# include <openssl/opensslconf.h>

# ifdef OPENSSL_NO_HMAC
#  error HMAC is disabled.
# endif

# include <openssl/evp.h>

# define HMAC_MAX_MD_CBLOCK      128/* largest known is SHA512 */

#ifdef  __cplusplus
extern "C" {
#endif

typedef struct hmac_ctx_st {
    const EVP_MD *md;
    EVP_MD_CTX md_ctx;
    EVP_MD_CTX i_ctx;
    EVP_MD_CTX o_ctx;
    unsigned int key_length;
    unsigned char key[HMAC_MAX_MD_CBLOCK];
} HMAC_CTX;

# define HMAC_size(e)    (EVP_MD_size((e)->md))

void HMAC_CTX_init(HMAC_CTX *ctx);
void HMAC_CTX_cleanup(HMAC_CTX *ctx);

/* deprecated */
# define HMAC_cleanup(ctx) HMAC_CTX_cleanup(ctx)

/* deprecated */
int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md);
int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
                 const EVP_MD *md, ENGINE *impl);
int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);
int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
                    const unsigned char *d, size_t n, unsigned char *md,
                    unsigned int *md_len);
int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx);

void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags);

#ifdef  __cplusplus
}
#endif

#endif

@marcusball I do not understand :l

Get to this screen. (google "windows environment variables" if you don't know how)
Copy the text within the System Variable called Path. Paste that code here.

@phase https://gyazo.com/fa15b9bb68d52de6ce00f6bfa2e278da

We need the full path.

@phase uh
%INTEL_DEV_REDIST%redist\intel64\compiler;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\010 Editor

Oh derp, @marcusball needed the OpenSSL variables, which are in the image.

I think you're close! In the image you posted, toy can see the OPENSSL_INCLUDE_DIR is set to C:\OpenSSL-Win64\include\openssl. Can you click that line in the window, hit the "Edit" button, then change the value to C:\OpenSSL-Win64\include. Then close your command prompt window, and open a new one, then run cargo clean, followed by cargo build

@marcusball @phase Thanks and I did that. But um..https://gyazo.com/b6c2320ccae03f8c21fd9de11ae275b9

@TestAccount404
Please rerun with the RUST_BACKTRACE set to 1.
The create a issue at rust-lang/rust with the output of cargo.
What you saw last time is a compiler bug :sob::sob::sob::sob:

Regarding what @bjorn3 said, if you're in command prompt, run set RUST_BACKTRACE=1, then run cargo clean and then cargo build. You should get a more verbose error message with RUST_BACKTRACE correctly set.

@marcusball @bjorn3 I don't know what else to say other than it didn't work? Why don't you guys get these errors, I mean, I've done that but It's not doing anything else but give me the same errors / messages. If you know anyone that could use skype and help me, I wouldn't mind screen sharing or even just using team viewer. This means a lot to me and your help has really helped me a lot :l

@TestAccount404 I technically could do that but I am not at home at the moment because of work. I'll fly back on the 21st - if you want to wait until then I'll add you. Otherwise try to go into the Rust IRC or Forum.

@lenovouser Sounds great! My skype: sylionskype
add me when you're back / free time.

@marcusball @bjorn3 Do you guys think it would be easier to try the go language version? If so, how do i start :u
https://github.com/Thinkofname/steven-go

Honestly, I don't know anything about Go, nor the implementation details of the Go version of Steven, so I can't answer that. Though, honestly, I feel like you're really close to getting this to work.
I sent you a text message on Skype, however, I didn't send you a friend request, so I don't know if it actually went through?

@marcusball Could you send a friend request? Didn't come through.

@Thinkofname talking about the Go version:

Oh and the code in this version is terrible and really messy (all fixable with time) . In comparison the rust version is neater has I had more of an idea of the end goals of the project (due to this version).

I would stick with the Rust version because you've done so much to try and run it.


added note about enabling account for sandbox

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

BingAds/hotel-service/get-started.md
:white_check_mark:Succeeded

BingAds/hotel-service/hotel-api.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Converted error handlers to TypeScript

@worksofliam I managed to test the old handler and it looks fine. However, I didn't manage to get some EXPANSION to test new handler. How do you get that?
Changes

Converted error handlers (new & old) to TypeScript
Updated CompileTools.ts accordingly

Checklist

[x] have tested my change
[x] updated relevant documentation
[x] eslint is not complaining

@sebjulliand EXPANSION is generated from any of the SQL precompilers.

Gotcha, thanks; seems like it runs just fine too 👌


Improvement for CircularFlow

Improvement for CircularFlow
I add new features for CircularFlow.
How update angle from a view in CircularFlow?
With method updateAngle you will can update angles from views in CircularFlow.
     /**
     * Update angle from a view in CircularFlow. The referenced view need to be a child of the container parent.
     * The view also need to have its id set in order to be added.
     * @param view
     * @param angle
     * @return
     */

Eg.
findViewById<View>(R.id.view2).setOnClickListener {
            findViewById<CircularFlow>(R.id.circularFlow).updateAngle(
                it, 90F
            )
        }

How update radius from a view in CircularFlow?
With method updateRadius you will can update angles from views in CircularFlow.
    /**
     * Update radius from a view in CircularFlow. The referenced view need to be a child of the container parent.
     * The view also need to have its id set in order to be added.
     * @param view
     * @param radius
     * @return
     */

Eg.
findViewById<View>(R.id.view3).setOnClickListener {
            findViewById<CircularFlow>(R.id.circularFlow).updateRadius(
                it, 150
            )
        }

How update angle and radius from a view in CircularFlow?
With method updateRadius you will can update angles from views in CircularFlow.
    /**
     * Update angle and radius from a view in CircularFlow. The referenced view need to be a child of the container parent.
     * The view also need to have its id set in order to be added.
     * @param view
     * @param radius
     * @param angle
     * @return

Eg.
findViewById<View>(R.id.view4).setOnClickListener {
            findViewById<CircularFlow>(R.id.circularFlow).updateReference(
                it, 160, 135F
            )
        }

@googlebot I consent


Refactor SVG paths with upstream processing

What does this change?

parse the outlines SVG as HTML to get the d attribute using linkedom
process the path with svg-path- commander to make them relative and extract their start and end points
rewrite the script that outputs the outlines to a JSON file
update the data model in the website to account for the new representation

Why?

with this data model we can write teeline shorthand by using all the building blocks of letters and groupings
end-to-end process for outline generation makes it easier to extend and update.

Duplicate of 174