1937 Adds an indentation preference to the decompiler output

Resolves #1937.
This change also adds support for two indentation styles:
K&R style,
while (x == y) {
    something();
    somethingelse();
}

Allman style,
while (x == y)
{
    something();
    somethingelse();
}

The default style is K&R.

I'm conscious that the PR rules state that all commits should be squashed into one commit - and that this PR is now four commits having made some suggested changes and fixing merge issues.
What is expected at this point? Should I delete this PR and resubmit as a single commit?

A lot of people don't know how to squash or rebase, so I that rule has been relaxed.  However, I would want to see any bad merge commits squashed out of the final product, even if the result is more than one commit.

Sorry, been a while since I last looked at this - I have now updated to remove the previously unintentionally included errors, and squashed back down to one commit.

Is there anything which I can do to aid the merging of this PR?

It looks like the conflict-diffs were taken care of, but I'll have to defer reviewing the rest of the PR to our decompiler expert.

Thanks Ryan! Will resolve those new conflicts asap

I believe the conflicts are resolved! Do let me know if there's anything else I can do to help with the review process.

Is there anything else that I can do to help with the review process?

Now there are new conflicts again. @js53867 we also have this change, I wonder if it makes sense to incorporate in your work as well: https://github.com/rizinorg/ghidra/commit/5f1f3cf869edda0e596bdb295c1c8c7df68abf96 @ryanmkurtz @caheckman if there is a potential interest in this change I can also send a separate PR with them, just let me know.

Obsoleted by #4914


calculateItemWorth() still not handling items / children without upd

General information
Project issue is for:
Server
Expected result:
Items with children without upd should be able to be have their tax calculated
Actual result:
Error
TypeError: Cannot use 'in' operator to search for 'Dogtag' in undefined
TypeError: Cannot use 'in' operator to search for 'Dogtag' in undefined
    at RagfairTaxService.calculateItemWorth (C:\snapshot\src\services\RagfairTaxService.ts:139:13)
    at RagfairTaxService.calculateItemWorth (C:\snapshot\src\services\RagfairTaxService.ts:128:35)
    at RagfairTaxService.calculateTax (C:\snapshot\src\services\RagfairTaxService.ts:65:32)
    at RagfairController.chargePlayerTaxFee (C:\snapshot\src\controllers\RagfairController.ts:741:38)
    at RagfairController.createSingleOffer (C:\snapshot\src\controllers\RagfairController.ts:463:45)
    at RagfairController.addPlayerOffer (C:\snapshot\src\controllers\RagfairController.ts:392:29)
    at RagfairCallbacks.addOffer (C:\snapshot\src\callbacks\RagfairCallbacks.ts:88:39)
    at RagfairItemEventRouter.handleItemEvent (C:\snapshot\src\routers\item_events\RagfairItemEventRouter.ts:29:46)
    at ItemEventRouter.handleEvents (C:\snapshot\src\routers\ItemEventRouter.ts:36:35)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
TypeError: Cannot use 'in' operator to search for 'Dogtag' in undefined
TypeError: Cannot use 'in' operator to search for 'Dogtag' in undefined
    at RagfairTaxService.calculateItemWorth (C:\snapshot\src\services\RagfairTaxService.ts:139:13)
    at RagfairTaxService.calculateItemWorth (C:\snapshot\src\services\RagfairTaxService.ts:128:35)
    at RagfairTaxService.calculateTax (C:\snapshot\src\services\RagfairTaxService.ts:65:32)
    at RagfairController.chargePlayerTaxFee (C:\snapshot\src\controllers\RagfairController.ts:741:38)
    at RagfairController.createSingleOffer (C:\snapshot\src\controllers\RagfairController.ts:463:45)
    at RagfairController.addPlayerOffer (C:\snapshot\src\controllers\RagfairController.ts:392:29)
    at RagfairCallbacks.addOffer (C:\snapshot\src\callbacks\RagfairCallbacks.ts:88:39)
    at RagfairItemEventRouter.handleItemEvent (C:\snapshot\src\routers\item_events\RagfairItemEventRouter.ts:29:46)
    at ItemEventRouter.handleEvents (C:\snapshot\src\routers\ItemEventRouter.ts:36:35)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)

The fix applied here
https://dev.sp-tarkov.com/SPT/Server/src/tag/3.9.6/project/src/services/RagfairTaxService.ts#L131
child.upd?.StackObjectsCount ?? 1,

Now fails in the following lines for the same reason
https://dev.sp-tarkov.com/SPT/Server/src/tag/3.9.6/project/src/services/RagfairTaxService.ts#L139-L173
Since the method will try to calculate the tax of the children recursively, and these children might not have upd
https://dev.sp-tarkov.com/SPT/Server/src/tag/3.9.6/project/src/services/RagfairTaxService.ts#L128-L134
worth += this.calculateItemWorth(
  child,
  this.itemHelper.getItem(child._tpl)[1],
  child.upd?.StackObjectsCount ?? 1,
  pmcData,
  false,
);

Log files
Server: Attached
BepinEx: Attached
Client: See next comment for traces
Profile
You can optionally include your game profile if you think it would help us reproduce the error easily
See next comment for profile

Attachments

server-2024-08-17.log (2482 KiB)
LogOutput.log (140 KiB)

Originally written by blacky

Profile and traces here

Attachments

2024.08.17_21-38-16_<IP_ADDRESS>.30626 traces.log (114 KiB)
669401180002b97546c7ccd0.json (3578 KiB)

Originally written by blacky

It is not clear to me how to properly obtain items without upd, it just happens naturally through insurance sometimes (this affects vanilla weapons not modified by any mod and bought through the traders) and 100% with gear spawned in bots from mods (like realism or alb)
In the linked profile there is an AK in the stash where if this method is invoked it will fail; 100% reproducible with lootvalue quick sell

Originally written by blacky

Simple unit test to verify behaviour
(() => {

    // given object without inner object
    const given = {

    };

    // when trying to use 'in' operator of non existing inner object
    const actual = (() => {

        try {
            "any" in given?.non_existing;
        } catch(error) {
            console.log(error);
            return error;
        }

    })();

    // then should be error
    return actual instanceof TypeError &&
        actual.message == `Cannot use 'in' operator to search for 'any' in undefined`;

})();

Originally written by blacky

Thank you for the investigation, it's tricky to replicate as the calculateTax() function is only called when a client-retrieved tax value isn't found, which should be never!
The only way i can think of is via mods that call this function for their own purpose.
I've added some code to hopefully fix the issue:
We clone the children and add a upd object to all of them (we clone to prevent the underlying data being modified in a function just for calculating tax) https://github.com/sp-tarkov/server/commit/fd50ec4ad82c5f984dabb4ffd4b3d22b270d58ba

Originally written by chomp

Hey! Thanks for the fix, i was hestitant to report this before because as you said, this is mostly a mod issue and this issue cannot be replicated by using the actual UI to list on the flea market; but since you actually added a fix on the latest issue i took it as accepted! :)
I actually had a "patch" that replaced this function and did exactly as you fixed it, just adding an empty upd if the object didn't have any!
Thanks for your time 👍

Originally written by blacky


[Viewer Desktop Go] Fix .gitignore file.

Edited the .gitignore file with Wails and Golang ignore files and directories following the standard practice.

@aked21 Please merge I've reviewed

@AhmarZaidi @saadjameel
Please fix the conflicts

Let me check

I've resolved the conflicts.


⚠ API - Lens has degraded performance

In 883040c, API - Lens ($LENS_API_URL) experienced degraded performance:

HTTP code: 504
Response time: 10338 ms

Resolved: API - Lens performance has improved in 68d6cae after 6 minutes.


Inconsistent result for Spark Round function

Bug description
We noticed that the result was inconsistent with Spark for round(0.575, 2). The desired result is 0.58, but since double cannot accurately represent 0.575, which is 0.57499999999999999, we obtained 0.57. https://github.com/facebookincubator/velox/pull/5992 was proposed to fix this case, which uses std::nextafter to enlarge the input slightly, yielding a result of 0.58. This change was not accepted by Velox since receiving double means we can not recover the original value.
We introduced this function internally to Gluten to handle the majority of cases, but for a high-precision case like round (0.5549999999999999, 2), the result will become 0.56 rather than 0.55. This prompts us to reconsider this issue. One idea is to map the Spark double type to a higher-precision C++ type, such as boost::multiprecision::cpp_dec_float_50, but this will take a lot of changes in Velox.
The following table lists the expected and actual results from the Velox and Gluten rounds for some special cases. All cases can be reproduced with https://github.com/facebookincubator/velox/commit/8408d33121eb06695330ec5c3c7b75711c4453a8.

Input
Round to scale
Expected
Velox round
Gluten round

0.575
2
0.58
0.57
0.58

0.5549999999999999
2
0.55
0.56
0.56

0.499999999999994
0
0
1
0

* Velox round: refers to the round implementation under presosql in Velox.
* Gluten round: refers to the Gluten proposed round implementation with nextafter used.
Additionally, the Velox round results do not fully match the Presto outputs.
presto:test> select round(cast(0.575 as double), 2), round(cast(0.5549999999999999 as double), 2), round(cast(0.499999999999994 as double), 0);
 _col0 | _col1 | _col2
-------+-------+-------
  0.57 |  0.55 |   0.0

System information
Velox System Info v0.0.2
Commit: fc5889f6e276109b40645bdcddde61ca71f4c7fd
CMake Version: 3.28.3
System: Linux-5.4.0-189-generic
Arch: x86_64
C++ Compiler: /usr/bin/c++
C++ Compiler Version: 11.1.0
C Compiler: /usr/bin/cc
C Compiler Version: 11.1.0
CMake Prefix Path: /usr/local;/usr;/;/usr/local/lib/python3.8/dist-packages/cmake/data;/usr/local;/usr/X11R6;/usr/pkg;/opt
Relevant logs
No response

@majetideepak Opened this issue for the round result issue we met and added reproducible tests. Could you spare some time to take a look? Thank you.

@rui-mo So, adding afternext can't completely solve this issue, right? And when you say "map the Spark double type to a higher-precision C++ type", you mean just in some functions like round or every expressions?

@ViggoC Yes, 'nextafter' cannot solve the high-precision cases. I assume this solution requires a complete replacement for the double type, because once the precision gets lost during computing, the original precision cannot be recovered. Alternatively, we might recommend customers use the decimal type if they have a requirement for high precision.

@rui-mo You mean cast all floating-point numbers to a high-precision type, and do the expression calculation base on the high-precision and cast then back to the origin precision before return result. But no matter how high the precision of a floating-point number is, it cannot accurately represent a decimal value. The high-precision type should be Decimal is no precision loss is accepted. So that the difference between the two solutions at this point is that the user specifies through a configuration whether to use decimal for internal expression calculations or explicitly convert all floating-point number fields to decimal.

@rui-mo In our internal Velox repository, we have aligned Spark's behavior by converting it to BigDecimal. If we only consider the round function, I think this is enough.

@ViggoC Thank you so much for sharing this information. May I ask if you are following

@ViggoC Thank you so much for sharing this information. May I ask if you are following the below conversion in BigDecimal or using a similar conversion as the cast implementation in Velox? Just wondering if it is too heavy to implement as the BigDecimal one.
https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/math/BigDecimal.java#L991-L1007
https://github.com/facebookincubator/velox/blob/c04652462250469d759396aac9d68d441ac1eb2a/velox/expression/CastExpr-inl.h#L426

@rui-mo We implemented it by converting to string and then parsing, not sure if this is the best practice. You can do a performance comparison, it should not be complicated.

Hi @majetideepak, to cover more cases, do you think it makes sense to convert floating-point numbers as decimal before round? Similar to Spark, more cases could be covered, but not all of them because the floating-point input for the to-decimal conversion is not precise.

@rui-mo As @ViggoC mentioned, we need to convert the string-literal to a decimal value so as to not lose any precision.
Regarding round(cast(0.575 as double), 2), the results can vary between C++ and Java since the double semantics vary. Decimal is expected to be the same.
However, in practice, for Presto, a string-literal is converted to a decimal value at the coordinator before being passed to worker(Velox).
How does this work with Spark? Where does the string to double conversion happen?


Fixed some bugs and usage issues detected by Clang-tidy.

depend #214, and when #214 is merged, the clang-tidy will be added to the CI.

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


CSS

CSS
As a boot camp student
I want the prework notes to be structured on a webpage
So that I can easily find and read the information
GIVEN a Prework Study Guide website
WHEN I view the study guide
THEN I see a dark blue header and footer, and four boxes with a shadow

Added CSS notes to the prework study guide and added more HTML to study guide


No error handling for Imgur response "HTTP error before end of send, stop sending"

Image uploading seems flakey today, imgur.sh gives no error.
I am getting the same results on Mac and linux on one network, and on linux at another site.
Next I tried uploading the same image(s) via Imgur's native web interface - it failed the first time, but worked a few minutes later. It's still not working for me via imgur.sh (at both sites).
I think the cause of the upload failure is that Imgur is acting flakey today, but imgur.sh should give better error handling.
$ ls
13554887.jpg  13560798-large.jpg
$
$ imgur.sh 13554887.jpg

Delete page:
Haven't copied to the clipboard: no xsel, xclip, or pbcopy
$ apikey="b3625162d3418ac51a9ee805b1840452"
$ curl -vF "key=$apikey" -H "Expect: " -F<EMAIL_ADDRESS>http://imgur.com
/api/upload.xml
* Hostname was NOT found in DNS cache
*   Trying <IP_ADDRESS>...
* Connected to imgur.com (<IP_ADDRESS>) port 80 (#0)
> POST /api/upload.xml HTTP/1.1
> User-Agent: curl/7.39.0
> Host: imgur.com
> Accept: */*
> Content-Length: 54203
> Content-Type: multipart/form-data; boundary=------------------------2e14a811f0c38497
>
< HTTP/1.1 404 Not Found
< Content-Type: text/html; charset=utf-8
< X-Post-Rate-Limit-Limit: 1250
< X-Post-Rate-Limit-Remaining: 1228
< X-Post-Rate-Limit-Reset: 1321
< Cache-Control: max-age=60, stale-while-revalidate=600, stale-if-error=86400, public
< Accept-Ranges: bytes
< Fastly-Debug-Digest: aa0b0512927e5582948d16bac6e05e68fc14dacba45a1df9a77350b56609b2ab
< Transfer-Encoding: chunked
< Accept-Ranges: bytes
< Date: Thu, 31 Mar 2016 05:27:59 GMT
< Connection: keep-alive
< X-Served-By: cache-iad2129-IAD, cache-lhr6333-LHR
< X-Cache: MISS, MISS
< X-Cache-Hits: 0, 0
< Vary: Accept-Encoding
< Server: cat factory 1.0
< X-Frame-Options: DENY
* HTTP error before end of send, stop sending
<
* Closing connection 0
$

I was keen to keep any error handling as simple as possible, since this is meant to just be a little bash script, not some fully-fledged uploader. But a better message than a blank response would certainly be good.
I never expected a 404, though. This suggests more than just a flaky server to me. I think it's possible they've done a major upgrade, and have finally switched off the v1 API, which this script always relied on.
At one point in the past they did such a rollout and forgot to switch the v1 API back on, and soon did. I'll send an email and ask what's up.
Thanks.

I never had a response but it looks like the v1 API is permanently gone. The script now uses the v3 API, so this issue is now moot, I believe.


[otel-agent] report and build with proper versioning

What does this PR do?
This PR attempts to introduce proper versioning for the otel-agent. The goal is that otel-agent and agent are aligned with the respective pkg/version versioning pattern. We also still need to understand what OTel Collector version is being used (currently reported in BuildInfo as v0.104.0) and submitted in the metadata as the extension version).

Motivation

Proper version tracking for the otel-agent and the OTel Collector internals moving forward.
Additional Notes

We may want to add additional fields to the OTel metadata payload. We may need to discern between:

otel-agent version
extension version
collector component version

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

OTel metadata payloads in the app should reflect the updated versioning.
otel-agent version and agent version commands should reflect the same version.

another thought: for BYOC, this requires users to set a distribution version number, right? Will it cause issues if they either don't specify a distribution version number or have a number different than the underlying components?

/merge


Provide tab management Tabs functionality for Privacy Sandbox Panel

Feature Request
Description:
Allow users to toggle off/on specific tabs in the Privacy Sandbox panel. This will allow the tool to account for a wider range of analysis scenarios for cookies and Privacy Sandbox APIs, while making it easier for users to focus their attention on specific areas/APIs.
Acceptance Criteria:

[ ] Make tabs present in the Privacy Sandbox panel configurable
[ ] Explore the use of the options page
[ ] Add options to toggle on/off specific tabs
[ ] Provide easy access to the option page from the extension UI
[ ] Improve UI of tab rendering and manipulation

Related to #13.  Let's revisit that PR and build a tab configuration, selection, and management capability.

Closing this issue as replacing the tabs with menu elements.


Implement "star merge" functionality

This issue was originally created at: 2008-02-09 05:06:00.
This issue was reported by: gregnoel.
gregnoel said at 2008-02-09 05:06:00

If the same repository is used for all files and directories within some subtree (that is, a SourceCode('.', xxx) was given for some directory and never changed below it), then only issue one call to the repository to refresh the entire directory tree.  This is the simple case that will cause 99.44% of repository fetches to be a single operation.
For the more complex cases where repository sources are intermixed, surely some of fragments can be combined.  In the worst case, fall back to file-by-file access.
I'd request that the simpler case in the first paragraph be implemented as soon as possible; the more complex case can be delayed until there's some convergence on the API.

gregnoel said at 2008-02-19 15:13:04

I'm having second thoughts about this.  I think I was too glib with my initial assessment.
Let's consider the case where the variant, working, and source directories are all different.  In this case, you want to do a full checkout in source directories, a file-by-file checkout in working directories, and no checkout in variant directories.  The rationale is that the full-directory fetch in the repository gets all the updates in a single operation; much less load on a remote repository.  The file-by-file fetch in the working directories picks up changes to files that the user is working on; there are usually only a few files, relative to the number of files in the full checkout.  If there's a built file that's also in the checkout (including a foo.c file derived from a foo.y file for people who didn't have yacc used to be a common paradigm) you don't want to update your built file (mostly because it'll probably fail) and a routine rebuild will cause the file to be regenerated anyway.
The interesting cases are where the directory trees overlap.
If the source and working directories are the same, you still want to do a full checkout to reduce server overhead and you don't want to do file-by-file checkouts since the full checkout would have taken care of it.
If the working and variant directories are the same, you still want to do a file-by-file checkout for leaf files but suppress checkouts for built files.
The most difficult case is when all three directory trees are the same.  On the one hand, you want to do a full checkout in one operation and not do file-by-file checkouts.  On the other hand, you want to suppress checkouts for built targets so that spurious upstream changes don't cause errors.  I'm pretty sure that neither SCS nor SVN can have exclusion lists, so the only way to deal with it seems to be to identify when built files have conflicts and ignore those errors, something that sounds awfully hard to do in general.
What is really needed initially is an API that will cause a full checkout into the source directories.  Since that could be chancy if there are more than one set of source directories (which one to update?), perhaps a starting point would be an API that would do a full checkout if the source and working directories are the same, since this case is the most common one.
Some way of doing a full checkout as part of the normal processing probably needs to be in place prior to 1.0.

stevenknight said at 2008-04-10 01:59:23

Target milestone 1.0 per spreadsheet consensus.

stevenknight said at 2008-04-11 04:57:50

Put 1.0 target milestone on wrong issue, resetting to -unspecified-.

gregnoel said at 2008-04-14 12:57:25

Bug party triage: Steven to float a message on the mailing lists about retiring SourceCode() (and CVS(), SCCS(), RCS(), Perforce(), Subversion(), et.al.).

stevenknight said at 2009-02-25 07:12:16

I polled the mailing list back in November (and then didn't follow up and update this issue).  Here's the original message:
http://scons.tigris.org/ds/viewMessage.do?dsForumId=1272&dsMessageId=92706
Unfortunately, tigris.org didn't thread the replies, so you need to search for SourceCode in the subject to see the ones that went to the ML.  A few people replied to me off-line.
Of the 16 respondents, only one used SourceCode():

I vote for keeping the SourceCode() feature. I think until a solution is found, it is the only thing we have. It is better than nothing.
This feature is absolutely crucial for component based builds, where each components brings in their dependency from the repository or for that matter from anywhere else. It seems to me people have done a lot of acrobatics to get this requirement implemented using other methods. A lot of acrobatics indicates usually a real unmet need. If SCons solves it in its own context, so much the better.
<<<<
There was some sentiment from people saying they'd like to use it, but tried and found that it was not scalable, or didn't work as they expected when things like VariantDir are configured.
It sounds like we can make a pretty good case for getting rid of it, at least in its current form.  It also sounds like the real underlying issue here is that people might like some way for the build system to be able to fetch components for building automatically, but SourceCode() definitely isn't it, and if we were to design a good mechanism for this it might be really valuable.
(Note on this score that Bram Moolenaar's A-A-P build tool had a model for fetching Open Source software components for building that some people found pretty compelling.  And it was in Python, too, so there might be some stuff to borrow there.)
I'm changing the Target milestone back to -unspecified- so we can discuss these issues at the next Bug party.

gregnoel said at 2009-03-03 17:00:13

I agree with Steven, we should remove SourceCode().  I propose to replace the functionality with two other features: the ability to run commands before walking some part of the source tree (already in the TaskmasterNG design) and the ability to do a star-merge from a repository into a file in the working directory.
The former capability could be used to do a checkout in any variation the user desired.  We'd document some of the obvious examples.  Here's one, assuming that 'Sequential()' is the API to get the before/after functionality:

    Command(Alias('checkout'), [], 'svn update')
    AlwaysBuild(Alias('checkout'))
    Sequential(Alias('checkout'), '.')

This idiom would update the local directory before starting to process it.  Or if the source tree is to be kept pristine:

    rep = Dir('/some/path/to/a/directory')
    Repository(dir)
    Command(dir, [], 'svn checkout ... $TARGET')
    AlwaysBuild(dir)
    Sequential(dir, '.')

I haven't tried a repository that's also a build target, but there's no obvious reason why it shouldn't work.
The idea behind the star-merge is suggested by the second example.  Note that if a new source file shows up and it's also being edited in the working directory, the changes aren't merged into the working directory.  That's what the star-merge does.  At least two Python implementations (Hg and Bzr) already exist; we may be able to steal one of them.  One would then say

    StarMerge('src')

to indicate that if there's a local file and the upstream file changes, the changes should be merged into the local file.  Exactly how that should happen will need to be worked out, but it should be independent of how changes are made to the upstream file.  This will presumably require SCons to keep track of the previous contents of the upstream file.

gregnoel said at 2009-03-05 10:41:31

Bug party triage.  Spin off an issue to deprecate SourceCode() and its related functions.  Spin off an issue to document patterns that will do a VCS checkout into a directory.  Make this issue be about implementing a "star-merge" feature so a locally-modified file will be updated if the upstream source changes.

garyo said at 2012-09-01 10:04:01

de-assigning all tickets assigned to Greg Noel (no longer working on SCons)

Hmmm, SourceCode is gone, but I'm not sure whether that means this can all go away...

Closing. Won't implement.


apply_bias_correction fix: add handling for missing forecast cube

Addresses #1994
This PR the function split_forecasts_and_bias_files to separate out the forecast cube from the forecast_error (bias) cubes based on cube.name(). Raises a Value Error when the forecast cube is not present, or when multiple forecast cubes have been passed in.
The CLI now adds a warning when no bias_cubes are present and adds a comment to the attributes in the forecast (in line with how apply_emos_coefficients handles similar use case.
Acceptance tests have been added to test this behaviour explicitly to ensure #1994 has been resolved. There is a new kgo that has been added for the case where no bias-cubes are added, included in the following PR: https://github.com/metoppv/improver_test_data/pull/47.
Testing:

[x] Ran tests and they passed OK
[x] Added new tests for the new feature(s)

Thanks @benowen-bom 👍
I think that this essentially looks fine. I've suggested some minor typo corrections.

Thanks Gavin for the review and picking up those typos. All fixed.


Add customer-supplied encryption to storage

Possible solution to resolve #1841.
I think my tests could use some feedback.

@tseaver @dhermes PTAL when you have a moment.

@dhermes I think I got your comments addressed.
@tseaver Let me know what you think as well.

@dhermes I squashed the commits for this. Let me know if you have any other feedback.

@dhermes @jgeewax, are we all set here? Shall we merge?

@jgeewax updated!

LGTM


Fix some typos

looks like we are having an issue with our build systems.  I'll merge as soon as it passes.


Added DoubleClick methods

Added DoubleClick methods. I'm aware of bug report https://github.com/christianrondeau/SikuliSharp/issues/12 but I kept the timeout parameters in the methods for now, hope that's ok. Thanks for creating this .Net wrapper for Sikuli, it's the best of the three I tried!

That's perfect, thanks :) I'll have to do something about #12 eventually...


Pretrained weights for backend

What pretrained weights for backend contains? Whether is it DarkNet53 model or model with YOLO3 headers containing predictions at three different scales?

Duplicate of #169
https://s3-ap-southeast-1.amazonaws.com/deeplearning-mat/backend.h5

Is there a reason not to update the README with this new URL?

How do these weights differ from the ones available here? Are they based upon a different backbone, etc.? Apologies for the naive/newbie question...

Thanks, but where the file house?


Randomize version nr of transactions

It is already possible to change the header version nr when reviewing a transaction before broadcast. Would be interesting to either have this randomize by default, or have an option to in settings that enables this. Makes tracing transaction a little bit more difficult.

Changing the transaction version randomly would affect the interpretation of sequence numbers, which would potentially be confusing. I haven't managed to find a chart of transactions against their version numbers - it would be interesting to see which anonset is larger. I think I prefer standardisation of version 2 rather than keeping version 1 alive.

the interpretation of sequence numbers

I do not understand what that means. In any case, looks like version 2 is winning out: https://transactionfee.info/charts/transaction-versions/

See BIP68 (or https://bitcoin.stackexchange.com/questions/51394/what-is-version-used-for-in-bitcoin-transactions-does-it-have-any-meaning).
Closing this off.


No recipes available for weston_1.6.0.bbappend

Hi,
I am getting the following error when I follow the tutorial from: http://mickey-happygolucky.hatenablog.com/entry/2015/03/01/160138
ERROR: No recipes available for:
  /media/storage/poky-rpi2/meta-weston-rpi/recipes-graphics/wayland/weston_1.6.0.bbappend

As far as I see the version of Weston in the master on Poky is 1.8.0. Which release of Poky is supposed to be used to build successfully an image with this tutorial?
Thanks,
Leon

Hi, Leon
A version of Weston was 1.6.0, when I was create this recipe.
Could you try renaming the recipe from "weston_1.6.0.bbappend" to "weston_%.bbappend" ?
Thanks,
Yusuke MITSUKI

Hi Yusuke,
Thank you for the feedback. You have done very good job in meta-weston-rpi.
I submitted a pull request with several fixes for the latest Yocto release:
https://github.com/mickey-happygolucky/meta-weston-rpi/pull/2
I hope you will approve and merge it.
Best regards,
Leon

Hi Leon
Thanks for your contribution!!
I approved.
Would you close this issue?
Thanks,
Yusuke MITSUKI

I close. thanks.


Add new FlagSet.Get{Int,String,...} accessor functions

If I declared a bool flag named "hello" I can call
b, err := f.GetBool("hello")
And b will hold the value of the flag
We can see this is already done in
https://github.com/codegangsta/cli/blob/bcec9b08c7e5564f7512ad7e7b03778fe1923116/context.go
If people use the codegangsta/cli
Other projects have done it themselves using pflags (what inspired this
patch)
https://github.com/GoogleCloudPlatform/kubernetes/blob/cd817aebd848facda29e0befbbd6e31bf22402e6/pkg/kubectl/cmd/util/helpers.go#L176
Lets just do it ourselves...

I should point out the horrificness of ParseIPv4Mask()
We wrote our own parser, which took it in a.b.c.d format. But the actual net object String() output gives you something like ffffff00.   So we couldn't do parse->string->parse.


Updated textField to allow use of 'maxlength' and 'minlength' attributes

Summary
Usual html input components allow you to set a maxlength and minlength, which sets the number of characters that can be entered into a field. The ic-text-field component should also provide this functioanlity.
This differs from the existing prop max-length which is used to display a character count. The terminology used here is a bit confusing, as max-length may cause misunderstanding of its function, as it doesn't actually limit the number of characters that can be entered into the field.
💬 Description
New properties should be created for maxlength and minlength that would work similarly to the html defintion.
Maxlength
An integer value that specifies the maximum allowable characters that can be entered into the field. This actually limits additional characters being entered into the field. This value must be greater than or equal to minlength. If maxlength is exceeded then an error message should be shown stating 'Maximum input is X characters'.
minlength
An integer value that specifies the minimum allowable characters that can be entered into the field.  This value must be less than or equal to maxlength. If minlength is not achieved then an error message should be shown stating 'Minimum input is X characters'.
Existing max-length prop
This property currently is used to show the character count. The terminology here is incorrect, as it it doesn't actually affect the maximum allowable input characters, but instead sets the value of the character count. The user can still enter more characters than the character count into the field.
Change docs to more accurately describe what this prop does. Breaking change ticket will be raised to change the prop name in next major release.
💰 Use value
This attribute can be useful when creating forms as it makes sure the correct input length is adhered to.
Additional info
Tell us anything else useful to help us understand your suggestion.

Validation needs clarification, should it display warning/error when limit reached (as maxlength should never be able to be exceeded)? Old max-length should perhaps be changed to 'show-character-count' and be a boolean value, only applicable when new maxlength value set.


[Bug]: cannot create note

Bug Description
When triggered keywords or hotkeys , cannot create a notes into goal file.(obsidian show cannot find notes in literaurenotes.
Relevant Screenshot

To Reproduce
No response
Debugging Log
[16:47:21.368] Logging Started...
[16:47:39.541] PDF Annotation Extractor[File Filter] Processing complete
[16:47:39.542] PDF Annotation Extractor[File Filter] Passing output '/Users/zephyrfang/Zotero/storage/JKQDT4CA/dunlosky2013_improving_students’_learning_with_effective_learning_techniques.pdf' to Run Script
[16:47:39.951] PDF Annotation Extractor[Run Script] Processing complete
[16:47:39.952] PDF Annotation Extractor[Run Script] Passing output '' to Post Notification

Workflow Configuration

Checklist

[X] I have updated to the latest version of this workflow.
[X] If the extracted text is all jumbled up (special characters, spaces missing, etc.) then the issue is not with this workflow, but the underlying extraction engine, pdfannots2json. Upgrade it to the latest version with brew upgrade pdfannots2json and try again. If the issue persists, file a bug report at pdfannots2json.

PR #17 has fixed the issue. Works again in the latest release: https://github.com/chrisgrieser/pdf-annotation-extractor-alfred/releases/download/8.8.0/pdf-annotation-extractor-alfred.alfredworkflow


CPS-0014? | Register of CBOR Tags

This is the first of three PRs that should be considered together for context.
See also:

#752
#753

(draft rendered from working branch)

@stevenj we've also had consensus at the CIP meeting today that these CBOR subssions (this and two subsidiary CIPs) should have a category Tools because of their potential to produce & consume these forms across a wide variety of off-chain contexts.

@rphair @Ryun1 This CPS is now numbered properly, and the license notifications have been updated as requested.


When creating a username, make the confirmation screen say "Confirm Username" in the title

@islandbitcoin You mean in this screen?


Label positioning after setting interface stereotype

Setting the property for a Interface Ball programmatically breaks the label of the interface. After restart you can move it to the right place, but upon relayouting the diagram it breaks again.
Right now the feature is disabled for correction.

Opened a ticket support with Visual Paradigm Support
Ticket number: #FSY-438-59938


Correct the suffix of Voxceleb2 audio files in README.md

Correct ma4 to m4a.

Thanks @KPatr1ck LGTM. I'll merge after the tests.


Not be able to select a non-existing variant

1. Why is this change necessary?
Not created or afterwards deleted product variants may be selectable in the storefront which lead to a selection of the default product variant instead of the expected configurated variant.
2. What does this change do, exactly?
The logic changes from:

does configuration option x has a variant with this option in this set

to

is there a possible one step change to an other configuration that result in an existing product variant

This is majorly done via SQL and less with storefront structs than before. A lot of joins are used that are optimized to use existing indices to maintain execution speed.
3. Describe each step to reproduce the issue or behaviour.

have a product with a set that contains at least three groups with at least two options

generate variants

delete a variant that is not the default variant

open the product in storefront
choose configuration that just got deleted

get forwarded to default variant

install this plugin that hotfixes this PR

retry

4. Which documentation changes (if any) need to be made because of this PR?
The interface documentation already changed but as this changes the interface signature there is a need for a upgrade hint.
5. Checklist

[x] I have written tests and verified that they fail without my change
[x] I have squashed any insignificant commits
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.
[x] Attribute @yarisade for finding this bug, keeping our sanity during the night where we solved this

Hey @JoshuaBehrens,
simply changing the interface or the return value is not an option for us.
The only way to implement this feature / bugfix would be to create a separate interface / service and make the choice configurable.

make the choice configurable.

Where would one configure this? What will be the default? It will fix an error so is my PR the new default or is it to BCy? If I can fix this Problem without altering the signatures and return value structure I do not need an extra service, do I?

There are two layers to this:

For one, we cannot allow Plugins that rely on this interface or decorate the service to break. So a change to this function signature isn't possible.
Second: There are shop owners relying on this behavior, wrong as it may seem. Even if you are able to fix the issue without breaking any code, it still would change current (expected) behavior, what we try to minimize as much as possible.

So that is why we think the solution should be to create a new, improved service that can be activated by a shop owner in some way in the settings, maybe deprecating the current service along the way.

I see. So there has to be a new service. I will investigate whether it is a viable solution to simple copy the service or to have a new service with more benefits.
Were should one configure the choice of service?

I just had a look but didn't find any obvious place for it. Maybe Settings / Product details ?

After chatting with @soebbing about a deadlock issue that will arise with this change I came to the conclusion that I will work on a different point to solve this issue. I keep you posted

Hey @JoshuaBehrens,
as usual we're closing this PR after a week of inactivity.
We'd love to see a new PR from you with your new changes though! 💙


Android app exits on theme change

There is a problem, that most likely related to SDL.
If I change Android theme from light to dark and vice versa, OpenFL app closes.
It is not really crashing, as I couldn't find much in logs.
Happens to any app, here is PiratePig video of the problem:
https://youtube.com/shorts/hZSR0HdVa2Y
It wouldn't be a big deal, but Samsung AppStore suspended my game because of this. :confused:
Anyone has any idea on how to fix that?
Thank you!

Obvious answer is to try updating SDL. Check out #1531 and see if that helps. (Remember to run both git submodule update and lime rebuild android -clean.)

lime rebuild android -clean does nothing, no errors either.
Does anything specific I need to do it on Windows?
I have MSVC and Android NDK 21e installed and have no problem doing lime rebuild windows -clean.

lime rebuild android -clean does nothing, no errors either.

That's very weird. No output at all?
Uh, ok. Check the ndll/Android folder to see if the files are there, and if so, check their timestamps to see if lime rebuild even touched them. Not sure what that would tell us, but I figure it'd be nice to have more info.
Next, move or delete those files to force it to rebuild.

Android NDK 21e installed

Also go through lime setup android and make sure you've got it selected. (Sheesh, there are a lot of little easy-to-forget steps...)

Channel is unrecoverably broken and will be disposed!

The logs for the Android app, right? Not lime rebuild? That's a fairly common message and doesn't mean much.

Yep, no output at all for lime rebuild android -clean, ndll/Android is empty.
lime setup android done of course, cause I'm building android projects, no problem.
I've also tried with the latest dev version of ndll/Android from github Artifacts, but still the same problem.
These logs from Android app, I guess I've found the whole trace:
#00 pc<PHONE_NUMBER>0b3e8c  /apex/com.android.runtime/lib64/bionic/libc.so (__cxa_finalize+148)
#01 pc<PHONE_NUMBER>0aee88  /apex/com.android.runtime/lib64/bionic/libc.so (exit+24)
#02 pc<PHONE_NUMBER>f753dc  /data/app/~~KGQ4XeKrfFz1uUggaqoxDA==/org.openfl.samples.piratepig-QdRUZFT0P2K505H_XKzHpA==/lib/arm64/libApplicationMain.so
#03 pc<PHONE_NUMBER>bc9b20  /data/app/~~KGQ4XeKrfFz1uUggaqoxDA==/org.openfl.samples.piratepig-QdRUZFT0P2K505H_XKzHpA==/lib/arm64/libApplicationMain.so
#04 pc<PHONE_NUMBER>717e4c  /data/app/~~KGQ4XeKrfFz1uUggaqoxDA==/org.openfl.samples.piratepig-QdRUZFT0P2K505H_XKzHpA==/lib/arm64/libApplicationMain.so
#05 pc<PHONE_NUMBER>e6ce30  /data/app/~~KGQ4XeKrfFz1uUggaqoxDA==/org.openfl.samples.piratepig-QdRUZFT0P2K505H_XKzHpA==/lib/arm64/libApplicationMain.so
#06 pc<PHONE_NUMBER>e6b6bc  /data/app/~~KGQ4XeKrfFz1uUggaqoxDA==/org.openfl.samples.piratepig-QdRUZFT0P2K505H_XKzHpA==/lib/arm64/libApplicationMain.so
#07 pc<PHONE_NUMBER>ed55cc  /data/app/~~KGQ4XeKrfFz1uUggaqoxDA==/org.openfl.samples.piratepig-QdRUZFT0P2K505H_XKzHpA==/lib/arm64/libApplicationMain.so
#08 pc<PHONE_NUMBER>ed546c  /data/app/~~KGQ4XeKrfFz1uUggaqoxDA==/org.openfl.samples.piratepig-QdRUZFT0P2K505H_XKzHpA==/lib/arm64/libApplicationMain.so (hxcpp_main+56)
#09 pc<PHONE_NUMBER>49e254  /data/app/~~KGQ4XeKrfFz1uUggaqoxDA==/org.openfl.samples.piratepig-QdRUZFT0P2K505H_XKzHpA==/lib/arm64/liblime.so (Java_org_libsdl_app_SDLActivity_nativeRunMain+484)
#10 pc<PHONE_NUMBER>13ced4  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148)
#11 pc<PHONE_NUMBER>1337e8  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568)
#12 pc<PHONE_NUMBER>1a9804  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228
#13 pc<PHONE_NUMBER>31c040  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376)
#14 pc<PHONE_NUMBER>312228  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912)
#15 pc<PHONE_NUMBER>68861c  /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+548)
#16 pc<PHONE_NUMBER>12d994  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
#17 pc<PHONE_NUMBER>00cc44  [anon:dalvik-classes.dex extracted in memory from /data/app/~~KGQ4XeKrfFz1uUggaqoxDA==/org.openfl.samples.piratepig-QdRUZFT0P2K505H_XKzHpA==/base.apk:0000006f1865c000] (org.libsdl.app.SDLMain.run+156)
#18 pc<PHONE_NUMBER>6873a4  /apex/com.android.art/lib64/libart.so (MterpInvokeInterface+1812)
#19 pc<PHONE_NUMBER>12da14  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_interface+20)
#20 pc<PHONE_NUMBER>0eb930  /apex/com.android.art/javalib/core-oj.jar (java.lang.Thread.run+8)
#21 pc<PHONE_NUMBER>3094d0  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.15352004904310312929)+264)
#22 pc<PHONE_NUMBER>6740c0  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+776)
#23 pc<PHONE_NUMBER>13cff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88)
#24 pc<PHONE_NUMBER>133564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
#25 pc<PHONE_NUMBER>1a97e8  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#26 pc<PHONE_NUMBER>55c384  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrI
nterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+460)
#27 pc<PHONE_NUMBER>5ac204  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1308)
#28 pc<PHONE_NUMBER>0b0bd8  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#29 pc<PHONE_NUMBER>0505d0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
...
InputDispatcher: channel 'e1814d8 org.openfl.samples.piratepig/org.openfl.samples.piratepig.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

What about updating Lime's SDL files with the latest files from SDL?
Github then will build me a nice ndll/Android on Pull request, hopefully without any errors and I can test it.
Lime's SDL version is 2+ years already, should be updated sooner or later anyway, right? :smile:

I did that in d21847e65c8c63811fc089cd9bc9e87e99751e6b. Not that Java files are included in the ndll...

OK, I wasn't sure about that.
But I've tried to take Lime from github + latest SDL java files, while app was building fine, it was crashing on start.

I mean, if you didn't already have the correct Java files, then you may not have checked out my pull request, or perhaps didn't switch to the correct branch. If you run git log, does it match these commits?

Nope, I didn't check your pull request, will try that.
Thank you!

So, I took Lime files from your Pull request #1531, and I took ndll/Android from this last Run, but now am getting an error on app launch:

Also, ndll/Android/liblime.so was missing, don't know if it's a problem.

I'm getting an error on app launch

Oh, you're right. Seems the arm64 target requires a few more files, but that's easy enough. New ndlls coming soon.
My one gripe is, the linker really should have been able to catch this. If it had, I could have fixed it much sooner.

Also, ndll/Android/liblime.so was missing, don't know if it's a problem.

That's the armv5 version, which I'm pretty sure no one uses anymore. Certainly hxcpp dropped support for it, so I removed it in 4d096d03e22c9377dfa8cef13d39af37071123e6.

Unfortunately, this update didn't help with theme change, app still closes by itself.
On top of that, I see just blank screen, so graphics stopped working.
And if tap this blank screen long enough app crashes, see android log trace in attachment.
adblogcat_crash.txt
.

You'll need to compile with -DHXCPP_DEBUG_LINK to get a readable stack trace. It needs to be a complete rebuild, so delete Export/android/obj before compiling, and be prepared to wait a while.
I'll have to try the PiratePig sample for myself.

Added -DHXCPP_DEBUG_LINK to lime build didn't change much, I'm getting the same log output.
My build command: lime build android -debug -DHXCPP_DEBUG_LINK.
Do I need to rebuild ndll/Android with this flag? But I can't. :(

Wow, you're right, it doesn't print the details. That's annoying, because it definitely used to. Oh well, that just means it's time to break out the big guns.
The link goes into depth, but a simple and reusable solution is to make yourself a .bat file.
adb logcat -d > logcat.txt
C:\path\to\ndk\r21e\ndk-stack -sym Export\android\bin\app\src\main\jniLibs\arm64-v8a" -i logcat.txt
del logcat.txt

Fill in the correct path to the NDK, save it somewhere in your PATH, and run it from your Lime project root.

Finally had time to do it.
Here is the file, there are 2 crash dumps in there, as they are a bit different:
crashdump.txt

Finally got around to building PiratePig, and... it works for me. I tried it with the ndlls I compiled myself, and the ones from GitHub Actions. Both worked.
Here's the APK I made, if you want to try that. If not, we can try other things.

Yep, your apk works for me, but still closing on theme change.
I guess, I've messed up something with Lime files, will try from scratch next week.

Seems I can reproduce the error. I'll take a closer look.

You are talking about "theme change" problem, right?
Is it related to SDL? Then I can open an Issue with them.

We can't tell if it's related to SDL.

Nope, not SDL. Not exclusively SDL, anyway.
I used their androidbuild.sh script to generate a sample project, and it survived the theme change just fine.

Poking around some more, it seems unlikely that the mutexes are causing the issue. Rather, they've been disposed by something else that went wrong, and then they make it official when some other code attempts to use them. I say this because my tests involve closing the app at various points, and one of those was theoretically a clean exit, but the same two threads still ended up calling SIGABRT.
So perhaps something is interpreting the theme change as an instruction to exit, and the OS just sees an app exiting normally, which is why there's no error message.

I think I'm done with this. In case someone else wants to pick up the torch, here's what I've found.

Each time you switch from dark to light or vice versa, Android recreates any ongoing activities. (It isn't only once as I said above.)

Dark mode can be found in the quick settings menu. Place it near the top to make it easier to access.

To see Android recreate an activity, make a sample project in Android Studio. (I recommend one with moving parts such as menus.) This sample project will be able to recover after a theme change, continuing as if nothing happened.

Set a breakpoint in onCreate() and/or onDestroy(). This breakpoint will come up with every theme change, proving that all activities are treated equally. (Assuming you run the debugger, of course.)
Check over the debugger settings by going to Run -> Debug...; there are some quality of life features in there.

If you download SDL's full source code, you can use androidbuild.sh to generate an empty Android project.

As above, it'll survive theme changes. The only way to tell is because Android will never show an "app not responding" message.
IIRC, you need to supply one source file containing int SDL_main() { SDL_Event event; while (SDL_PollEvent(&event)) {} return 0; }.

You can open a Lime project's Export/android/bin folder as an Android Studio project.

Put a breakpoint in SDLActivity.onDestroy(), and it'll pause there on theme change. You can see a stack, but most of it is OS code that's off-limits.
If you step through the function and wait a little after each step, you'll find that the app closes as soon as nativeSendQuit() is called. The debugger will just shut down without you telling it to.
You can't step into C++ functions, but trust me when I say that eventually nativeSendQuit() leads to System.exit(). If you comment the latter, the app will no longer close.
Click "resume program," and the app will minimize before calling onCreate() again. That's similar to the behavior of the working apps, except for the fact that it isn't visible.
Then it calls onDestroy() again, unlike the working apps. Why? I don't know. The only source is a message in the message queue that could have come from anywhere. Maybe another thread, or maybe it was there all along waiting for the previous messages to finish.
The debugger will still be running after all this, because apparently System.exit() is the only thing that fully closes the app. If you select the app again, it'll be stuck on a blank screen. You'll have to force close it to get the functionality back.

There's no documentation on any of this. Barely anyone talks about handleRelaunchActivity() or DestroyActivityItem, and never in the context of theme switching. Debuggers are not built to debug seemingly-legitimate shutdowns. And the only thing that even remotely seems to help actually gets the app stuck on a permanent blank screen.

Thanks for all your help @player-03, I'll try to look into this myself.

Oh wait, they did document it after all. Not only is it explained, there's a very easy way to make it keep the activity. Give my pull request a shot and let me know.
We still don't know why Lime has to exit completely or get stuck with a blank screen, and it'd be nice to know, but I'm a lot less worried about that now that we have a workaround. Even if we knew the answer, we wouldn't do anything with that information. "Not restarting the activity in the middle of gameplay" is always going to be preferable to "successfully restarting the activity in the middle of gameplay."

Unfortunately, I will only be able to check it somewhere at the end of June.
I'm on vacation right now... 🍹
I was planning to spend countless hours on this when come back, but looks like you have found an easy solution.
Thanks a lot!

It works, adding uiMode fixes the problem, app doesn't exit anymore on them change.
Thank you @player-03!


putty freezes when authenticating

i've run into an issue where putty frequently, although not always, freezes when i'm trying to log into linux servers using winssh-pageant and openssh with ecdsa-sk key backed by Yubikey 5 acting as FIDO2 token.
i'm worndering if you have any suggestions how to find the root cause of it, enable more verbosity in different elements of this stack.
this is what happens oftentimes when i'm trying to log in via putty which uses winssh-pageant - putty window freezes with 'Not responding' in its title bar:

and after ~20s i get below, but it's too late for key touching - login via that method already failed:

versions:

Windows 11
OpenSSH-Win64-v<IP_ADDRESS>
putty 0.79 64 bit
winssh-pageant 2.3.1 64bit

when i've found out:

if ssh-agent on windows is using file-based key, without involvement of token - all seems good - i can log in both via openssh ssh and via putty without issues, multiple times,
if ssh-agent on windows is using ecdsa-sk key and i'm using openssh's ssh client - all works smoothly as well

thank you in advance for your suggestions and thank you for winssh-pagent!

Thanks for the detailed report, apologies for the slow response.
I have some ideas but its stabbing in the dark. Could you run winssh-pageant manually from a CLI and then try authenticating? hopefully winssh-pageant will output some helpful info.
I'm realizing the lack of verbose logging is a glaring hole in, so I'm writing some code to add verbose logging, hopefully I'll get it out before you see this reply.

thanks for getting back to me! sadly with the recent Windows 11 update things got even worse. now i'm getting this pop-up, in which i cannot click on any of choices if i'm using putty combined with winssh-pageant.

logging in via openssh's ssh works fine [ well.. now i have an extra click in the popup, but the click is possible at least ].
winssh-pageant shows "Timeout waiting for user input \.\pipe\openssh-ssh-agent: i/o timeout"
thx!

That info did help, I've added a lot of debug logging to this in a new branch If you want to build it yourself.
here's a built binary, extract it and run it with winssh-pageant.exe --verbose and try again and copy + paste the logs back here.
winssh-pageant-verbose-logging.zip
Thanks.

thanks a lot! i've:

built from source code taken from https://github.com/ndbeals/winssh-pageant/tree/verbose-logging
ensured that no winssh-pageant.exe is running
started winssh-pageant.exe --verbose from the freshly made build

sadly there's no output on the console and with 2nd or 3rd use of putty i'm getting this:

after ~60s followed by this:

there are no logs in the cmd where i've started winssh-pageant.exe --verbose
thank you!

I can confirm this is the case with WinSCP as well, it is rather slow before you can use the Windows dialogue for selecting the security key. I am also using Win11 and OpenSSH_for_Windows_9.4p1, LibreSSL 3.7.3. It only happens via pageant access, cannot identify any slowdown when using windows terminal for SSH connections.
BTW: Very helpful piece of software 👍😊

Thanks for trying that build @pakud but something went wrong with the --verbose flag, there should have been some log lines from the startup of winssh-pageant.  I'll provide better instructions below.
This is what the startup should look like:
PS H:\Home\code\winssh-pageant> go run ./ --verbose
2023-12-27 13:40:53 INF Starting winssh-pageant
2023-12-27 13:40:53 INF Pageant pipe proxy started
2023-12-27 13:40:53 DBG Locked OS Thread
2023-12-27 13:40:53 DBG Allocated global memory for message data, Starting message loop

How to run winssh-pageant using the verbose-logging branch
Open a cmd or powershell window:
1. Clone the repo
Navigate to a folder and run:
git clone https://github.com/ndbeals/winssh-pageant.git
2. Checkout the verbose logging branch
CD into the newly cloned repo:
cd winssh-pageant
Checkout the branch
git checkout verbose-logging
Confirm you're on the correct branch:
git branch --show-current -> Should output verbose-logging
3. Use "go run" to run the code
From the same directory as the earlier steps, run:
go run ./ --verbose
Alternatively, you could build it and run it:
go build ./ IMPORTANT: The exe name from this command is winssh-pageant.exe
./winssh-pageant.exe --verbose
Here's what it looks like all together:
PS H:\Home\code\delme> git clone https://github.com/ndbeals/winssh-pageant.git
Cloning into 'winssh-pageant'...
remote: Enumerating objects: 293, done.
remote: Counting objects: 100% (171/171), done.
remote: Compressing objects: 100% (99/99), done.
Receiving objects:  89% (261/293)sed 105 (delta 65), pack-reused 122
Receiving objects: 100% (293/293), 166.11 KiB | 2.72 MiB/s, done.
Resolving deltas: 100% (120/120), done.
PS H:\Home\code\delme> cd .\winssh-pageant\
PS H:\Home\code\delme\winssh-pageant> git checkout verbose-logging
Switched to a new branch 'verbose-logging'
branch 'verbose-logging' set up to track 'origin/verbose-logging'.
PS H:\Home\code\delme\winssh-pageant> git branch --show-current
verbose-logging
PS H:\Home\code\delme\winssh-pageant> go run ./ --verbose
2023-12-27 13:50:43 INF Starting winssh-pageant
2023-12-27 13:50:43 INF Pageant pipe proxy started
2023-12-27 13:50:43 DBG Locked OS Thread
2023-12-27 13:50:43 DBG Allocated global memory for message data, Starting message loop

Once you've done that successfully, could you try once more to get me some debug logs? I'd appreciate it if you copy+pasted the log outputs (instead of a screenshot, but I'm not picky if you cannot copy+paste).
I'm looking into getting my hands on a yubikey so I can replicate and test this issue myself.

thanks a lot for detailed instruction @ndbeals !
i've followed it and was able to connect ~5 times by running putty.exe user@hostname and then closing putty.
then i got this:

but this time touching the yubikey token to confirm sign it did not make the standard popup [which shows with every FIDO2-based ssh authentication] go away and putty froze.
exact output from the console:
C:\temp\winssh-pageant\winssh-pageant>go run ./ --verbose
2023-12-27 23:33:53 INF Starting winssh-pageant
2023-12-27 23:33:53 INF Pageant pipe proxy started
2023-12-27 23:33:53 DBG Locked OS Thread
2023-12-27 23:33:53 DBG Allocated global memory for message data, Starting message loop
2023-12-27 23:33:59 DBG Received WM_COPYDATA message
2023-12-27 23:33:59 DBG Passed security checks
2023-12-27 23:33:59 DBG Received pageant request message of size: 5
2023-12-27 23:33:59 DBG Querying OpenSSH Agent pipe_name="\\\\.\\pipe\\openssh-ssh-agent"
2023-12-27 23:33:59 DBG Dialing agent pipe
2023-12-27 23:33:59 DBG Dialed successfully
2023-12-27 23:33:59 DBG Writing putty request to openssh pipe
2023-12-27 23:33:59 DBG request wrote successfully, reading response
2023-12-27 23:33:59 DBG message size: 153
2023-12-27 23:33:59 DBG reply code: 12
2023-12-27 23:33:59 DBG message contents length: 152
2023-12-27 23:33:59 DBG response size: 157
2023-12-27 23:33:59 DBG Sent request to openssh handler, result size: 157
2023-12-27 23:33:59 DBG Copied 157 elements to shared memory
2023-12-27 23:33:59 DBG Received WM_COPYDATA message
2023-12-27 23:33:59 DBG Passed security checks
2023-12-27 23:33:59 DBG Received pageant request message of size: 422
2023-12-27 23:33:59 DBG Querying OpenSSH Agent pipe_name="\\\\.\\pipe\\openssh-ssh-agent"
2023-12-27 23:33:59 DBG Dialing agent pipe
2023-12-27 23:33:59 DBG Dialed successfully
2023-12-27 23:33:59 DBG Writing putty request to openssh pipe
2023-12-27 23:33:59 DBG request wrote successfully, reading response
2023-12-27 23:34:05 DBG message size: 125
2023-12-27 23:34:05 DBG reply code: 14
2023-12-27 23:34:05 DBG message contents length: 124
2023-12-27 23:34:05 DBG response size: 129
2023-12-27 23:34:05 DBG Sent request to openssh handler, result size: 129
2023-12-27 23:34:05 DBG Copied 129 elements to shared memory
2023-12-27 23:34:09 DBG Received WM_COPYDATA message
2023-12-27 23:34:09 DBG Passed security checks
2023-12-27 23:34:09 DBG Received pageant request message of size: 5
2023-12-27 23:34:09 DBG Querying OpenSSH Agent pipe_name="\\\\.\\pipe\\openssh-ssh-agent"
2023-12-27 23:34:09 DBG Dialing agent pipe
2023-12-27 23:34:09 DBG Dialed successfully
2023-12-27 23:34:09 DBG Writing putty request to openssh pipe
2023-12-27 23:34:09 DBG request wrote successfully, reading response
2023-12-27 23:34:09 DBG message size: 153
2023-12-27 23:34:09 DBG reply code: 12
2023-12-27 23:34:09 DBG message contents length: 152
2023-12-27 23:34:09 DBG response size: 157
2023-12-27 23:34:09 DBG Sent request to openssh handler, result size: 157
2023-12-27 23:34:09 DBG Copied 157 elements to shared memory
2023-12-27 23:34:09 DBG Received WM_COPYDATA message
2023-12-27 23:34:09 DBG Passed security checks
2023-12-27 23:34:09 DBG Received pageant request message of size: 422
2023-12-27 23:34:09 DBG Querying OpenSSH Agent pipe_name="\\\\.\\pipe\\openssh-ssh-agent"
2023-12-27 23:34:09 DBG Dialing agent pipe
2023-12-27 23:34:09 DBG Dialed successfully
2023-12-27 23:34:09 DBG Writing putty request to openssh pipe
2023-12-27 23:34:09 DBG request wrote successfully, reading response
2023-12-27 23:34:11 DBG message size: 124
2023-12-27 23:34:11 DBG reply code: 14
2023-12-27 23:34:11 DBG message contents length: 123
2023-12-27 23:34:11 DBG response size: 128
2023-12-27 23:34:11 DBG Sent request to openssh handler, result size: 128
2023-12-27 23:34:11 DBG Copied 128 elements to shared memory
2023-12-27 23:34:17 DBG Received WM_COPYDATA message
2023-12-27 23:34:17 DBG Passed security checks
2023-12-27 23:34:17 DBG Received pageant request message of size: 5
2023-12-27 23:34:17 DBG Querying OpenSSH Agent pipe_name="\\\\.\\pipe\\openssh-ssh-agent"
2023-12-27 23:34:17 DBG Dialing agent pipe
2023-12-27 23:34:17 DBG Dialed successfully
2023-12-27 23:34:17 DBG Writing putty request to openssh pipe
2023-12-27 23:34:17 DBG request wrote successfully, reading response
2023-12-27 23:34:17 DBG message size: 153
2023-12-27 23:34:17 DBG reply code: 12
2023-12-27 23:34:17 DBG message contents length: 152
2023-12-27 23:34:17 DBG response size: 157
2023-12-27 23:34:17 DBG Sent request to openssh handler, result size: 157
2023-12-27 23:34:17 DBG Copied 157 elements to shared memory
2023-12-27 23:34:17 DBG Received WM_COPYDATA message
2023-12-27 23:34:17 DBG Passed security checks
2023-12-27 23:34:17 DBG Received pageant request message of size: 422
2023-12-27 23:34:17 DBG Querying OpenSSH Agent pipe_name="\\\\.\\pipe\\openssh-ssh-agent"
2023-12-27 23:34:17 DBG Dialing agent pipe
2023-12-27 23:34:17 DBG Dialed successfully
2023-12-27 23:34:17 DBG Writing putty request to openssh pipe
2023-12-27 23:34:17 DBG request wrote successfully, reading response
2023-12-27 23:35:17 ERR cannot read response message size from openssh pipe error="i/o timeout"
2023-12-27 23:35:17 DBG Sent request to openssh handler, result size: 5
2023-12-27 23:35:17 DBG Copied 5 elements to shared memory

Thanks for getting back to me, these logs were very helpful.
I've ordered my own Yubikey 5 to test this.
The logs you've posted show an ERR cannot read response message size from openssh pipe error="i/o timeout" which happens if it takes 1 minute to read response data. I have a suspicion that the Windows Hello popup just isn't "popping up", it's still there but hidden behind other windows. The random nature of this not working for you does support that suspicion, but I'll learn more once I get my own yubikey

@ndbeals - thanks! i'm happy to test in the next iterations.
once you get hold of the yubikey or other FIDO2-compatible hardware token you can:
run ssh-keygen -t ecdsa-sk -C "my-yubikey" -f .ssh/privatekey-id_ecdsa_sk to generate a pair of SSH keys [ or rather handles, since part of private key will reside on the token ]. some devices dont support scdsa-sk, you can replace it with more widely available ed25519-sk.
than handle privatekey-id_ecdsa_sk.pub like usual public key - add it to .ssh/authorized_keys and on widows run .ssh/privatekey-id_ecdsa_sk

@ndbeals - one more thought about your theory: "have a suspicion that the Windows Hello popup just isn't "popping up", it's still there but hidden behind other windows".
i think it's incorrect - whenever i use openssh's ssh from windows to connect to a host where FIDO2 key is used two things happen:

windows popup shows up asking me to touch the token
yubikey token blinks signaling it's waiting for the touch

in case when i try to log 2nd and next times in via putty which uses winssh-pageant and openssh's ssh-agent combined with FIDO2 token - there's no popup and token does not blink. exactly after 1 minute popup shows up and token starts to blink but it's too late for putty - winssh-pageant has already given up with error '2024-09-15 14:47:01 ERR cannot read response message size from openssh pipe error="i/o timeout"'

Hey @pakud , Thanks for your patience and the gentle reminder to take a look at this again. I have a yubikey now so I can start testing soon.


Prevent XSS by stripping tags from $_SERVER['REQUEST_URI'].

When $og->url() is called, without a parameter, tags can be injected into the page where the og tags are rendered. Here's an example of how it can be done:
http://example.com/?"><script>alert(1234)</script>

Hello,
thank you for reporting this security issue.
What is the intention of the second line?
$safeRequestURI = preg_replace('/alert|log/is','',$safeRequestURI);

For example, this is a valid URL:
http://localhost/opengraph/test.php?alert=test

Your code transforms this URL to:
http://localhost/opengraph/test.php?=test

This seems unnecessary to me?

I was testing something else it is unnecessary. I'll remove it now.

Thanks!


Printer media support with notes(docs) section

Make notes(docs) pages printer-friendly by using @media(print) in plain SCSS, or d-print in Bootstrap to control the layout of pages when being printed.
Examples are available at https://doowzs.com/docs/.

We can print a single page in a pretty layout now.
However, more has to be done in order to print all pages in one section into one file. Since there is no way to use two different output layouts of same file type for a page, methods considered are:

Manually add a printing page for each section and create a new layout (need extra work for each section);
Use a different layout format and force browser to open it as text/html (Hugo lacks per-type layouts support so this would affect other types, or extra work is required for each section);
Use JavaScript to manually load the data and print it out.

Reference:

https://github.com/gohugoio/hugo/issues/5652 lacking per-type layouts
https://github.com/gohugoio/hugo/issues/6332 lacking PDF outputs


network_self_link isn't a self link

The network_self_link attribute actually will not accept a network's self_link. If a self link is provided, an error like the below is seen:
Error: Error creating Cluster: googleapi: Error 499: malformed network path: "https://www.googleapis.com/compute/v1/projects/myproject123/global/networks/mynetworkname"

The usage example in the main README.md composes the value as below:
  network_self_link = "projects/${project_id}/global/networks/${network_name}"

I believe that format is known as a resource's id. In my experience, the convention is to pass self_links around, so ideally the module internals would be changed to support accepting an actual self_link (perhaps falling back to accepting an id if possible).

@ashleyghooper According to the doc it accepts network ID. I think we can add mode details in description or perhaps add another variable network_id and deprecate network_self_link variable.
variable "network_self_link" {
  description = "Network ID where the AlloyDb cluster will be deployed."
  type        = string
}

Hi @imrannayer, thanks for your reply. I just noticed looking at a Compute instance just now in the GCP Console and clicking the Equivalent REST response, that the selfLink property is also specified without the https://www.googleapis.com/compute/... prefix.
Maybe my assumption that self links should always be full URLs is incorrect?

seems like self link and ID have same value


Add copy button to Code Blocks in docs

With this change, users will be able to copy code-blocks with one click as shown in the video below.
https://user-images.githubusercontent.com/8811558/178005659-cded8d0f-a384-4648-bfbc-acd7e3ab6082.mp4

wondering why mypy check is failing for conf changes

wondering why mypy check is failing for conf changes

Let me take a look in a separate PR


[fix][broker] Introduce the last sent position to fix message ordering issues in Key_Shared (PIP-282)

PIP: #20776

Motivation
Key_Shared has a mechanism called the "recently joined consumers" to keep message ordering.
However, currently, it doesn't care about some corner cases.
More specifically, we found two out-of-order issues cased by:

[issue-1] The race condition in the "recently joined consumers", where consumers can be added before finishing reading and dispatching messages from ledgers.
[issue-2] Messages could be added to messagesToRedeliver without consumer-side operations such as unacknowledgement.

We should care about these cases in Key_Shared subscription.
(For more details, please see the PIP document.)
Modifications

Introduce the new position (the lastSentPosition and individuallySentPositions) and use them in PersistentStickyKeyDispatcherMultipleConsumers.
Rename the consumer stats readPositionWhenJoining to lastSentPositionWhenJoining.
Modify the subscription stats (consumersAfterMarkDeletePosition) of the definition.

(For more details, please see the PIP document.)
Verifying this change

[x] Make sure that the change passes the CI checks.

This change added tests and can be verified as follows:

Unit tests for the lastSentPosition and individuallySentPositions
Test for guaranteed message ordering in corner cases

Does this pull request potentially affect one of the following parts:
If the box was checked, please highlight the changes

[ ] Dependencies (add or upgrade a dependency)
[ ] The public API
[ ] The schema
[ ] The default values of configurations
[ ] The threading model
[ ] The binary protocol
[ ] The REST endpoints
[ ] The admin CLI options
[x] The metrics

https://github.com/apache/pulsar/blob/43a2dc3f9fd9ab68e7429f2345899a6b0cb0bcbe/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentSubscription.java#L1281-L1288
https://github.com/apache/pulsar/blob/43a2dc3f9fd9ab68e7429f2345899a6b0cb0bcbe/pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/policies/data/ConsumerStats.java#L72-L73

[ ] Anything that affects deployment

Documentation

[ ] doc
[x] doc-required
[ ] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository: https://github.com/equanz/pulsar/pull/6

LGTM

/pulsarbot rerun-failure-checks

Codecov Report
Attention: 14 lines in your changes are missing coverage. Please review.

Comparison is base (b14fcb4) 73.60% compared to head (43a2dc3) 73.61%.
Report is 42 commits behind head on master.

Additional details and impacted files

@@             Coverage Diff              @@
##             master   #21953      +/-   ##
============================================
+ Coverage     73.60%   73.61%   +0.01%
- Complexity    32411    32441      +30
============================================
  Files          1861     1861
  Lines        138674   138764      +90
  Branches      15182    15205      +23
============================================
+ Hits         102070   102155      +85
- Misses        28702    28707       +5
  Partials       7902     7902

Flag
Coverage Δ

inttests
24.07% <44.82%> (-0.13%)
:arrow_down:

systests
23.70% <49.13%> (-0.02%)
:arrow_down:

unittests
72.88% <87.93%> (+<0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files
Coverage Δ

...che/bookkeeper/mledger/impl/ManagedCursorImpl.java
79.60% <100.00%> (+0.57%)
:arrow_up:

...che/bookkeeper/mledger/impl/ManagedLedgerImpl.java
80.78% <ø> (-0.17%)
:arrow_down:

...ava/org/apache/pulsar/broker/service/Consumer.java
87.00% <100.00%> (ø)

.../common/policies/data/stats/ConsumerStatsImpl.java
97.61% <100.00%> (ø)

...mon/policies/data/stats/SubscriptionStatsImpl.java
94.21% <100.00%> (+0.09%)
:arrow_up:

...ker/service/persistent/PersistentSubscription.java
77.05% <92.85%> (-0.01%)
:arrow_down:

...ersistentStickyKeyDispatcherMultipleConsumers.java
86.02% <85.55%> (+0.38%)
:arrow_up:

... and 59 files with indirect coverage changes

Hi @poorbarcode.
Thank you for your review. What is the current status?

Hi @poorbarcode.
Thank you for your review. What is the current status?

Sorry, I am busy for other things before, I will done this review soon

Rebased to fix conflicts.
BTW, can someone review this? I've been trying to fix the issue for a year now... (cf. https://github.com/apache/pulsar/pull/20179)

@codelipenghui Could you take a look?

@codelipenghui @poorbarcode
Looking forward to your review.

@equanz @poorbarcode Sorry for the late response, I will review this week.

Hi @codelipenghui . Do you have any comments?

Hi @codelipenghui . Do you have any comments?

Sorry, I'm struggling in other tasks. Please go ahead to merge the PR. @poorbarcode

@equanz Could you please handle the conflicts?

/pulsarbot rerun-failure-checks

@poorbarcode Addressed. PTAL

@poorbarcode Could you take a look?

@equanz do you have a chance to update the documentation in https://pulsar.apache.org/docs/next/concepts-messaging/#preserving-order-of-processing to reflect the PIP-282 changes?
it seems that "Once the connection has been established, the broker will record the current read position and associate it with the new consumer. The read position is a marker indicating that messages have been dispatched to the consumers up to this point, and after it, no messages have been dispatched yet. The broker will start delivering messages to the new consumer only when all messages up to the read position have been acknowledged." would have to be updated in https://github.com/apache/pulsar-site/blob/main/docs/concepts-messaging.md?plain=1#L797-L801.
/cc @poorbarcode @codelipenghui

I forgot it. I'll fix it.

Here is a fix of the docs.
https://github.com/apache/pulsar-site/pull/953


Not working after upgrade to 2023.3

Hi, is it just me that has this issue, i see no other reports.  I roll back to 2023.2 and no issue
Logger: homeassistant.config_entries
Source: custom_components/weatherflow/init.py:72
Integration: WeatherFlow Weather (documentation, issues)
First occurred: 4:27:04 PM (1 occurrences)
Last logged: 4:27:04 PM
Error setting up entry Green Farm for weatherflow
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 383, in async_setup
result = await component.async_setup_entry(hass, self)
File "/config/custom_components/weatherflow/init.py", line 72, in async_setup_entry
if hass.config.units.is_metric
AttributeError: 'UnitSystem' object has no attribute 'is_metric'
I am a basic user, apologies if a simple error on my part

Duplicate of #59. If you update to the latest version this issue is fixed. HACS is not automatically checking for new versions so you need to trigger this manually by updating the Repository info. See more info in #59


When converting potential IUO bindings to optional

This PR cherry-picks change 778a4ee13650 (rdar://problem/26360502) from master to swift-3.0-preview-1-branch.
Details:
When converting potential IUO bindings to optional ones, look through any lvalue types.
Doing so can prevent improper double-optional binds, which can cause unexpected runtime behavior.

@swift-ci Please test.

@jrose-apple Hey Jordan, could you take a look at the test I modified?

That looks correct under SE-0054. Is that really all that changes, though? There's no other relevant test?

Not as far as I can tell - this really represents just one minor issue that slipped past the SE-0054 implementation.


[Question] Running this on Docker + nginx

Hello,
I'm a back-end developer inexperienced when it comes to webpack and React. I have set up a Docker compose file with 3 containers: db, nginx and app. In app I'm running supervisor which then runs php-fpm, yarn run webpack-serverside and yarn run webpack-dev. The nginx configuration is more or less standard Symfony 4 one from documentation.
What's working: Symfony + server-side rendering (apart from some array to string conversion notices, fixed with this https://github.com/Limenius/ReactRenderer/commit/d48630434c374031041a21a7875e899e19f5958d). What's not working: client-side rendering, I get connection refused errors for public/build stuff (I guess proxy_pass is needed?), which doesn't seem to be generated in the first place - there's only manifest.json.
What am I missing?

Did you manage to install v8js extension on docker PHP ? @Destroy666x

I am closing this because lack of activity. If someone is running a similar setup, please don't hesitate to respond.


os: ErrProcessDone not defined on windows

What version of Go are you using (go version)?

$ go tip

Does this issue reproduce with the latest release?
It reproduces on tip
What operating system and processor architecture are you using (go env)?
go env Output
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\Dante\AppData\Local\go-build
set GOENV=C:\Users\Dante\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\Dante\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\Dante\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Users\Dante\Documents\Code\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Users\Dante\Documents\Code\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=C:\Users\Dante\Documents\Code\helloworld\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\Dante\AppData\Local\Temp\go-build704363910=/tmp/go-build -gno-record-gcc-switches

What did you do?
Use the error os.ErrProcessDone with GOOS=windows, which has just been exported in tip CL 242998.
Playground link: https://play.golang.org/p/OMXQb0DeySn
What did you expect to see?
Code compiling and p.Signal() returning os.ErrProcessDone
What did you see instead?
.\main.go:23:13: undefined: os.ErrProcessDone
It seems that os.ErrProcessDone has only been exported for Unix, even though this same error can also be returned on Windows (see os/exec_windows.go#L64).
It was probably forgotten in CL 242998 because the error was declared as a sentinel error on Unix and inlined on Windows.

I´ve just found that os.ErrProcessDone could also be used on plan9 (see os/exec_plan9.go#L55).

I see that in os/exec_unix.go method signal returns ErrProcessDone but the same function in os/exec_windows.go returns errors.New("os: process already finished").
Is the solution to this issue as simple as exporting the variable ErrProcessDone in os/exec_windows.go and returning this error in appropriate functions?

Marking as release-blocker because this is a defect in a new API being added in Go 1.16 (#39444).


Hdc1008

Summary
Example application showing how to use the hdc1008 driver (see pull request 975: https://github.com/apache/incubator-nuttx/pull/975). Let me know if the copyright stuff needs to change.
Impact
Testing

Should we remove the 2nd patch and merge the 3rd into the 1st? also the copyright need change to Apache for the new file.

Headers are now updated to the apache 2.0 license. Not sure what you meant about merging the patches @xiaoxiang781216 . Is that something I can do on my branch or is it done by whoever merges this to master?

Headers are now updated to the apache 2.0 license. Not sure what you meant about merging the patches @xiaoxiang781216 . Is that something I can do on my branch or is it done by whoever merges this to master?

This PR has four patch, but it make sense to merge into one like this:
git rebase --interactive HEAD~4
select squach
git push -f origin hdc1008

I think I screwed something up now....

Try rebasing against the master then doing a force push to your branch.  That might do it.

If something get wrong, create a new branch, cherry-pick and rebase the change again.

Go ahead and close this one, I opened up a new pull request.


Travis exits due to timeout and fails

Issue
The project builds locally, but when sending a PR travis seems to fail because of an unknown reason:
(node:3012) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Page crashed!

(node:3012) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

(node:3012) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Navigation Timeout Exceeded: 30000ms exceeded

No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.

Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received

The build has been terminated

For example, see PR #128.
Info

Operating System: Linux
Node-Version: 8.8.1

Reproduce
It seems to happen occasionally on commits.

Hi @lielfr
The travis-issues should be fixed now.


Vulkan pipeline manager and textures

Closing #65
Closing #53
Closing #45
Closing #59

I think we can merge this

MERGE IT!!!! 🚀🚀🚀🚀🚀

no


Unimplemented component:

Environment
System:
OS: macOS 12.3.1
CPU: (10) arm64 Apple M1 Pro
Memory: 511.44 MB / 32.00 GB
Shell: 5.8 - /bin/zsh
Binaries:
Node: 16.14.0 - ~/.nvm/versions/node/v16.14.0/bin/node
Yarn: Not Found
npm: 8.3.1 - ~/.nvm/versions/node/v16.14.0/bin/npm
Watchman: Not Found
Managers:
CocoaPods: 1.11.3 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.4, iOS 15.4, macOS 12.3, tvOS 15.4, watchOS 8.5
Android SDK: Not Found
IDEs:
Android Studio: 2021.1 AI-211.7628.21.2111.8193401
Xcode: 13.3/13E113 - /usr/bin/xcodebuild
Languages:
Java: 11.0.11 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: 18.1.0 => 18.1.0
react-native: 0.70.0 => 0.70.0
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Platforms
iOS
Versions

iOS: 15.4
react-native-modal-datetime-picker: 14.0.0
react-native-community/datetimepicker: 6.5.2
react-native: 0.70.0
react: 18.1.0

Description
I have been using this package previously without any issues. In my latest project, using React Native version 0.70.0, I am getting the following error:
Unimplemented component: <ModalHostView>

I found this related issue https://github.com/facebook/react-native/issues/33652 and it seems to be a problem with the new Architecture and the new renderer (Fabric).
Will react-native-modal-datetime-picker implement Fabric in the future?
Reproducible Demo
This error message can be seen by simply using DateTimePickerModal component.

Not running in Android too.
the same issue.
Hermes and newArchEnabled enabled.
CMake Error at /home/marconi/Documentos/pocs/testingLibrariesnewArc/android/app/build/generated/rncli/src/main/jni/Android-rncli.cmake:6 (add_subdirectory):
add_subdirectory given source
"/home/marconi/Documentos/pocs/testingLibrariesnewArc/node_modules/@react-native-community/datetimepicker/android/build/generated/source/codegen/jni/"
which is not an existing directory.
Call Stack (most recent call first):
/home/marconi/Documentos/pocs/testingLibrariesnewArc/node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake:59 (include)
CMakeLists.txt:7 (include)

If interested I have achieved this functionality for new architecture using fabric https://www.youtube.com/watch?v=W3m-8_QuC14&list=PLQhQEGkwKZUrempLnmxjt7ZCZJu1W3p2i&index=4 and
https://www.youtube.com/watch?v=38dpw_s2YKE&list=PLQhQEGkwKZUrempLnmxjt7ZCZJu1W3p2i&index=3

The one thing I'm missing here is: what changes should we make to react-native-modal-datetime-picker to support the new arch? We don't deal directly with native code in this project, that lives in @react-native-community/datetimepicker.

This was an issue with React Native. React Native's Modal component now supports the new architecture.


Move repo to expr-lang/expr

I’m thinking of migrating main repo (this repo) to https://github.com/expr-lang/expr.
What do you think? Should I?

What is the motivation?

Tested move with https://github.com/antonmedv/module-test. Looks like users will need to upgrade the module path.
I think I will add a such banner to a new repo:

[!IMPORTANT]
The repository github.com/antonmedv/expr moved to github.com/expr-lang/expr.

@antonmedv JFYI, https://expr.medv.io/#install still says go get github.com/antonmedv/expr

It is probably too late to revert now, but this rename is a violation of semantic versioning and results in all importers being unable to run go get -u ./... normally. Instead, they have to manually find and replace all instances of github.com/antonmedv/expr with github.com/expr-lang/expr, except for those in go.mod and go.sum, as that would result in checksum mismatches. In my case, I did replace the instances in go.mod and go.sum, meaning that I had to manually edit go.sum files in more than 10 repositories to remove security errors. This rename places a burden on importers that they should not expect to receive under the Go versioning and semantic versioning guidelines.
The only way you could have done this rename without violating semantic versioning would be to update the major version to 2 (with module URL github.com/expr-lang/expr/v2), which would have kept the previous version at github.com/antonmedv/expr fully functional. You could still theoretically do this, but the damage in terms of importers having to fix all of their imports is probably mostly already done, so it probably isn't worth it. However, if you did want to do this, you would release a new version, v.15.7, with retract directives in the go.mod file retracting v.15.6 and v.15.7. Then, you would release v2.0.0 with the module URL github.com/expr-lang/expr/v2.

they should not expect to receive under the Go versioning and semantic versioning guidelines.

Go modules are badly designed.

you would release v2.0.0 with the module URL github.com/expr-lang/expr/v2

I will never release v2 module. Same, for example, as Kubernetes team doing. Only v1. Again - go modules not great.

this rename is a violation of semantic versioning

Semantic versioning is not a silver bullet. I never claimed I was following it. And I will not. Same, for example, as TypeScript.


Avoid ptr_cast feature as it was not yet stable in Rust 1.36.

Pull Request Test Coverage Report for Build 1298

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+1.03%) to 95.18%

Totals

Change from base Build 1294:
1.03%

Covered Lines:
3179

Relevant Lines:
3340

💛  - Coveralls

It would be nice to add a new check to the CI to check for the lowest rust version we support. Also a PR that adds it back and bumps the minimum version for the next major release. Thanks
bors: r+

@Dylan-DPC This does need a GitHub review in addition to the Bors approval.
I will create another MR add the CI test. But I do not really understand

bumps the minimum version for the next major release.

I thought 1.36.0 is the current minimum supported Rust version so nothing changes with this fix?

I will create another MR add the CI test.

Added it here as another commit since the approval state was insufficient anyway.

No idea what the AppVeyor failures are rooted in. Seems unrelated as I did not touch anything there...

Especially since exit code 2 supposedly implies that xcopy was terminated using Ctrl+C...

bors: r+

Build failed

AppVeyor seems to be really shaky today and I have to admit that I have no idea why. :-(

bors: retry

bors: retry

bors: retry

Looks like an issue...

Looks like an issue...

Do you think this is something affecting the master branch as well? Or should we just give AppVeyor a day or two and retry?

It seems to affect master as well, c.f. #409 I'll some more xcopy flags, maybe the caching makes it necessary to override files in the target directory...

@kpp @Dylan-DPC So this was an issue on master, we just did not always hit it as AppVeyor's caching is best-effort. Adding /y  (never prompt before overriding a file at the destination) seems to fix it. Sorry for the mess. :-\

bors: retry


provide dll file.

to support C# Programs as build process is not working and too complex.

What don't work for you in our example?

Sir i'am not able to build the file following the instructions for Windows and C# , Please Can you elaborate it more clearly?

What have you tried and what you don't understand?

I managed to compile for C#.
As a result, I simply received a .so file and connected it to the project. According to the instructions of the lion in readme.


Fix pedantic typo in the index.html template

1 liner

Nice! But why the comma before the "and"?

nvm, I'll fix it some more myself. thanks for bringing it to my attention :)

Nice! But why the comma before the "and"?

@cyberw that's an Oxford comma: https://www.grammarly.com/blog/what-is-the-oxford-comma-and-why-do-people-care-so-much-about-it/


Remove version: kangfenmao.CherryStudio version 0.8.21

All InstallerUrls returned 404 Not Found

https://github.com/kangfenmao/cherry-studio/releases/download/v0.8.21/Cherry-Studio-0.8.21-setup.exe

Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/kangfenmao/cherry-studio/releases/download/v0.8.21/Cherry-Studio-0.8.21-setup.exe
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 924)


Remove blog name from body content

It is redundant to show blog name in the body content

Fixed by https://github.com/ymita/Lifelog/commit/b587fe2dbb0b143205ad87ede79685787c773441.


[gcp][feat] OnDemand cost data for GcpMachineTypes

Description

collects SKUs for the Compute Engine service
normalises SKU cost data
connects GcpMachineType to SKU, transfers ondemand_cost information
adds wait_for_all_submitted_work method to ExecutorQueue, to wait for futures in case of nested work submission

To-Dos

[x] Add test coverage for new or updated functionality
[x] Lint and test with tox

Code of Conduct
By submitting this pull request, I agree to follow the code of conduct.

@aquamatthias I tried to piece together GcpMachineType and GcpSku so that we can test for GcpMachineType.ondemand_cost (see latest commit) - but it doesn't go well with the random number of GcpSkus that we get, because of:
        if len(skus) == 1 and self.name in ("g1-small", "f1-micro"):
            builder.add_edge(self, reverse=True, node=skus[0])
            self.ondemand_cost = skus[0].usage_unit_nanos /<PHONE_NUMBER>
            return

        if len(skus) == 2 or (len(skus) == 3 and "custom" in self.name):
        .....

in GcpMachineType.connect_in_graph() - makes it really tricky to test 😵💫

but it doesn't go well with the random number of GcpSkus that we get,

This is a pretty good example where random data does not make too much sense.
Consider using predefined objects.


Separating ERC-20 tokens from other coins

I think it would be nice to separate the coins that run on their own chains from the ERC-20 tokens.
I will try and take a pass at it at some point.

I wonder if this is something that would be possible to note in the manifest rather than having separate folders?
I'm not too familiar with all the coins and tokens in the project so I don't know which ones are ERC exactly.

I don't see how it would help this project.
The goal is to provide a consistent library of icons, not to classify or to give information about cryptos.

Fair points :)
I just had to go through the icons to weed out the fiat and coin-based tokens. Not a huge issue.
Sent via Superhuman<EMAIL_ADDRESS>)
On Sun, Feb 25, 2018 at 00:55:15, imnotadeveloper <<EMAIL_ADDRESS>> wrote:

I don't see how it would help this project.
The goal is to provide a consistent library of icons, not to classify or
to give information about cryptos.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub (
https://github.com/cjdowner/cryptocurrency-icons/issues/60#issuecomment-368273197
) , or mute the thread (
https://github.com/notifications/unsubscribe-auth/AAavkJNXhnmhl-SkiZl9zi7NMMWKA4KCks5tYK9zgaJpZM4SRuaS
).


ExpLeak inheriting from LIF is inconsistent

Do you mean it is semantically inconsistent because ExpLeak is not a form of LIF?
Would it make more sense to invert this oder, i.e. LIF inheriting from ExpLeak?

I think that is what @sheiksadique meant.

The problem with making ExpLeak the parent class is that IAF inheriting from ExpLeak is also not consistent. We should come up with a way to favour composition rather than inheritance

I think the important aspect to retain is code retention.
So if we move towards a more functional approach, we could move all of the logic to functions and leave the classes to just call the appropriate function with the necessary activation functions. This way, we won't have to do too much re-writing of classes but design the class inheritance to be as logical as necessary.
This would also make it easier to use the exodus framework and classes/functions.

To be honest, I am still not sure why this issue is relevant. Could someone please explain this to me? Does this affect usability, confuse users or developers, make the code less readable, ...?
I think we shouldn't rack our brains about what would be a semantically meaningful order of inheritance. There will always be different ways to interpret things.
I agree with @sheiksadique  that we should focus on clean, concise and readable code. However, with respect to the more functional, modular approach, I believe we are already there. Forward pass, spike generation, surrogate gradients are already functions that get called by the different layers. The layer classes mostly take care of handling states and parameters.
In that regard, if we really need to change things, I suggest a flat hierarchy. I imagine this is congruent with  @biphasic 's suggestion about composition rather than inheritance:
Let ExpLeak, IAF, LIF,... all inherit from StatefulLayer and configure their spike functions, time constants, etc. such that they yield the correct behavior. Also, the does_spike property could simply check whether the spike function of that object is 'None', so we don't have to re-define it for every class.


Using Newer Nix Versions for Flake Evaluation

Hello! I've been working on setting up a nix-on-droid configuration using flakes, and I ran into issues with evaluating flakes that use newer nix builtins. I'm currently using this branch for my own configuration, but that's not a solution for everyone, as merging that would break things for anyone using a version of nixpkgs whose current nix package doesn't support flakes.
I'm not sure what the best solution is, because we do need to force nix_2_4 or higher for people on older nixpkgs versions, but we shouldn't force people who want to use newer versions into using nix_2_4. Maybe we could add a check in nix-on-droid/default.nix to check whether the version of nix provded in the nix input is 2.4 or later, then just don't use the nix_2_4 input when it is? Just an idea, there might be a more elegant way to do it though.

Do you know why we need >= 2.4? I can't recall what was the reason TBH :D
But your solution sounds about right then: Use default nix if >=2.4, elso use nix_2_4. Feel free to create a PR for that, would be worth adding that to the 22.05 release I think (@t184256).

Do you know why we need >= 2.4? I can't recall what was the reason TBH :D

I don't think nix <= 2.3 supports flakes, when I run nix build .# with nix 2.3.16, it errors out with: don't know what to do with argument '.#'.

But your solution sounds about right then: Use default nix if >=2.4, elso use nix_2_4. Feel free to create a PR for that, would be worth adding that to the 22.05 release I think (@t184256).

Will do!

would be worth adding that to the 22.05 release I think (@t184256).

Maybe even to this release; will have a deeper look at it sometime this week.