ImGui throwing exception when creating font's texture atlast

So i'm getting the exception " OpenGL Error (GL_INVALID_OPERATION) at createFontsTexture" It's coming from the "lwjglGlfw.newFrame();" call. I think this may have something todo with the way i'm loading textures? Anyway, i've attached the exception image, an image of how I load textures, and an image of where the exception is coming from.

Before calling newFrame, could you do a call to checkError yourself? Your code may be throwing the error, but you do not check for it. If not, this [may] be a regression caused by 707e4bb as that was quick and hacky. If you can  confirm that there is no error before newFrame i'll come out with a new patch

Hi! There hasn't been activity here in a month, if there is nothing more, please close this. In a week, this will be assumed resolved.


Commits since badge is broken

Are you experiencing an issue with...

[x] shields.io
[ ] My own instance
[ ] gh-badges NPM package

:beetle: Description
The badge says repo or version not found.
This is the version I'm trying to use.
The badge worked previously, up until a few weeks ago. I thought it was my end until I realized I didn't modify anything.

:link: Link to the badge

https://img.shields.io/github/commits-since/S-B99/kamiblue/v1.0.1?label=commits since&logo=git&logoColor=white

:bulb: Possible Solution
None I've been able to find.

Hi, thanks for your question.
I think the problem is that the badge assumes your main branch is called master, so you need to tell it which branch you want to compare to.
https://img.shields.io/github/commits-since/S-B99/kamiblue/v1.0.1/feature/master?label=commits since&logo=git&logoColor=white

Ooooh, alright, that would explain it. Thanks!


Use membership ID's

Part of https://trello.com/c/VdQtNZeV/1122-spike-making-content-publisher-documents-show-up-in-whitehall-document-collections
Moves to using membership ID's rather than document ID's as a means of tracking the group of a document. This will make it easier to show content publisher documents in whitehall.
Whilst this appears to work testing manually, as it stands a few tests are failing, I suspect that a couple just need some variables renaming but that one may be a more major change.

Superseded by https://github.com/alphagov/whitehall/pull/4980


POSIX Make Compatibility

GNU Make is pretty wide spread nowadays, but it's not the most portable make out there. We really ought to replace the convenience functions we use given by GNU Make with lower-level methods that will work with POSIX Make.

GNU Make is pervasive enough nowadays, so I've decided against POSIX Make. I don't work on systems old enough or stripped-down enough for this to matter.


[BUG][Guest cluster] Permission denied for workload with security context

To reproduce:

Add Bitname Repo (https://charts.bitnami.com/bitnami) to the guest cluster.
Set storage class harvester as default to workaround bug https://github.com/harvester/harvester/issues/1629.
Install Wordpress using default options.
Manually modify the load balancer for Wordpress to include the healthcheck port 80.
Wait for the Pod to come up.

Result:
The mariadb pod failed to get up, with the error message.
mariadb 01:43:54.54
mariadb 01:43:54.54 Welcome to the Bitnami mariadb container
mariadb 01:43:54.54 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mariadb
mariadb 01:43:54.54 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mariadb/issues
mariadb 01:43:54.54
mariadb 01:43:54.54 INFO ==> ** Starting MariaDB setup **
mariadb 01:43:54.56 INFO ==> Validating settings in MYSQL_*/MARIADB_* env vars
mariadb 01:43:54.57 INFO ==> Initializing mariadb database
mkdir: cannot create directory '/bitnami/mariadb/data': Permission denied

I think something is wrong with the Harvester guest CSI driver here.

Might be the same reason as https://github.com/longhorn/longhorn/issues/2964

Should be addressed in https://github.com/harvester/harvester/issues/1369

@yasker what's your guest k8s version with either the RKE1/RKE2 node driver?

Thanks @gitlawr @guangbochen , confirmed it's fixed in v1.21.7+rke2r1.


fix [aur] license test

Fixes #4189

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @calebcartwright!

  Generated by :no_entry_sign: dangerJS against 796b9045d8072458854b957b06edc474f9bfe68b


[stable/ark]: Need a way to expose prometheus metrics and automatically create ServiceMonitor

Is this a request for help?: Yes
Is this a BUG REPORT or FEATURE REQUEST? (choose one): FEATURE REQUEST

Describe in detail the feature/behavior/change you'd like to see.

It should be easy to specify the port for exposing the prometheus endpoint for Ark.
Version of Helm and Kubernetes: 2.9.1
Which chart: stable/ark
What happened: No way to expose prometheus metrics
What you expected to happen: Set some values in the values.yaml file to expose prometheus metrics and automatically create ServiceMonitor so that prometheus operator can start scraping those metrics.
How to reproduce it (as minimally and precisely as possible): N/A
Anything else we need to know:
There are several examples such as incubator/kafka that support this expose of metrics easily.

@agolomoodysaada would you be interested in creating a PR to do this yourself?

Sure. I'll post here when I get around some time to do it.


Chrome does not open

When i use some automation flow work of web, like visit or login a portal and download some reports.
It all execute in backend. I want when these tasks performs it will open the chrome then and every step.
Please Help me @Aussiroth

Hey @balwant-sd. Have you tried running with the 'chrome' option, as stated here?
For example:
$ tagui samples/1_yahoo chrome

yes.
it will give error
./tagui: line 313: curl: command not found

Perhaps 'curl' is not installed. Try running the following line:
sudo apt-get install curl

Not it sits idle.

Issue occurring while using firefox
pericent@pericent-desktop:~/tagui/src$ ./tagui samples/1_yahoo firefox
1541069900896	addons.xpi	WARN	List of valid built-in add-ons could not be parsed.: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXPCComponents_Utils.readUTF8URI]"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm :: startup :: line 2111"  data: no] Stack trace: startup()@resource://gre/modules/addons/XPIProvider.jsm:2111
callProvider()@resource://gre/modules/AddonManager.jsm:206
_startProvider()@resource://gre/modules/AddonManager.jsm:654
startup()@resource://gre/modules/AddonManager.jsm:807
startup()@resource://gre/modules/AddonManager.jsm:2802
observe()@jar:file:///usr/lib/firefox/omni.ja!/components/addonManager.js:66
1541069900918	addons.xpi	WARN	No list of valid system add-ons found.
Error during the script execution
[Exception] TypeError: ioService.newChannel is not a function  filename:resource://slimerjs/slUtils.jsm  line:180

Stack trace:
0:readChromeFile@resource://slimerjs/slUtils.jsm:180:19
launchMainScript@resource://slimerjs/slLauncher.jsm:109:23
startup@chrome://slimerjs/content/slimerjs.js:20:9
onload@chrome://slimerjs/content/slimerjs.xul:1:1

Now what i do ??

Hi, if your firefox is on version 60 or later, TagUI will not work with firefox option. The framework TagUI uses for automating firefox, slimerjs, has not yet been patched to be able to work properly with firefox version 60 and later.
Regarding using chrome, can you check if the src/tagui_chrome.log has any text inside, or is it empty?

Hey @Aussiroth
src/tagui_chrome.log is empty.

Hi Alvin and Ryzal, I made a PR on patch-289-295 branch. It resolves PHP 7 warning messages at issue https://github.com/kelaberetiv/TagUI/issues/295#issuecomment-435471557 and also the dynamic wait issue for #289.
For the missing PhantomJS at issue #295 and the Chrome issue #303 here, it may be a non-issue for now as it can't be replicated. I borrowed an Ubuntu 14.04 and ran the yahoo sample using chrome option smoothly (using the Linux zip). Until more Ubuntu users report similar findings so that attempts to replicate can be made, there is probably nothing that can be done to troubleshoot.

Hey Alvin, I'll just close this since no further replication details..


Debug neetoDeploy issues

Fixes #653

Description

Debug neetoDeploy issues.

Checklist

[x] ~I have made corresponding changes to the documentation.~
[x] ~I have updated the types definition of modified exports.~
[x] ~I have verified the functionality in some of the neeto web-apps.~
[x] ~I have added the necessary label (patch/minor/major - If package publish
is required).~

Reviewers
@AbhayVAshokan _a

@subins2000 https://vimeo.com/803758139/7fa97f6328

@AbhayVAshokan https://vimeo.com/804059692/5822be7a8a

The neetoDeploy review apps are up 🎉


1.20.5, MinecraftClientMixin.java fix

They changed the joinWorld mixin, and pre.2 / beta.2 support

Updated to 1.20.5-sakura.1 release builds


Remove single_file_output option from FileSinkConfig and Copy statement

Which issue does this PR close?
Closes #8621
Rationale for this change
See #8621 for details
What changes are included in this PR?

Remove single_file_output in FileSinkConfig and  LogicalPlan::Copy, but using / in path to see whether it's a single file or not.
Remove the field in proto for serde
Change test cases, this includes two aspects, (1). Test cases will not need single_file_option as a param. (2). Test cases which used explicit single_file_output = false and didn't specify the path ended in / , (in modified code, the path will be treated as a single file which caused error)
Document update, though I think it needs to be polished.

Are these changes tested?
Yes, cargo test in local env
Are there any user-facing changes?
I think yes?

Haha, I'm happy that I could help it. :)


Examples continue to run long after exit on Mac

The triangle example hangs for a long time (10-20 seconds) after one presses the close button on Mac (Mojave developer beta 7, using MoltenVK via vulkansdk-macos-<IP_ADDRESS>).
The Teapot example exposes something much more interesting - it isn't hanging per se, because the teapot continues to animate after the close event is processed. If you add a println! as the very last statement in main, you can see that the program exits the main loop entirely, but continues to render and animate for 10 seconds or so.
I'm not entirely sure where to start debugging this. It seems as thought the program is only actually displaying 1 frame each time it should display 2, and after the program ends it proceeds to play back all the missing frames that have been queued up. I can't really tell if that's a Vulkano issue, a MoltenVK issue, or an issue in the sample code?

As an additional data point, the same samples run fine on Windows/NVidia (as expected), which tends to point to a MoltenVK-specific issue, or some sort difference in the way MoltenVK handles frame submit.

Yeah, someone needs to either:

Create a c++ repro of the frames stacking up.
Or find a bug in vulkano causing frames stacking up.

Is this still an issue?


s/TiledObject/MapObject

I wasn't quite sure what to name this at first, since obviously Object was out of the question. I've come to find out that they're called MapObject internally within Tiled; I think it has a better ring to it/looks more professional without the "Tiled" repetition.
The feature has already been released, but we could always alias it for backwards compatibility if that's important at this stage.
It's not really a big deal, figured I'd make an issue to make sure you're not opposed before sending a patch.

Until 1.0.0 backward compatibility isn't a concern, I think.
I like MapObject, TiledObject bothered me as well :)


using Solady LibBitmap speeds burn by several hunded (~500 avg) gas

https://github.com/nidhhoggr/ERC721Psi/commit/9b7a15fd2a0cf4c4392a26642370d5929ceadfa5

Solady's bitmap uses different ordering (LSB -> MSB) than solidity-bits (MSB -> LSB).
This will be a breaking change (especially to upgradeable contracts). I will be happy to include that in the next major version changes.

btw I like how you generate the gas report. lol
Do you generate with commands? I'm thinking of adding them to the CI and stores the report as artifacts.

I created a new branch for breaking changes.
https://github.com/estarriolvetch/ERC721Psi/tree/v0.8

Hello @estarriolvetch ,
That's interesting because after I swapped SolidityBits.scanForward  with SoladyLibBitmap.findLastSet all the test are still passing.
Here is the code for reference:
https://github.com/Vectorized/solady/blob/main/src/utils/LibBitmap.sol#L171
I'm not sure what the difference is between the ERC721Psi and ERC721PsiUpgradeable, all of the _batchHead BitMap operations seems to be the same.
For the reports I added the following bashscript:
npx hardhat run scripts/benchmark_mint.js > reports/.benchmark_mint
npx hardhat run scripts/benchmark_safemint.js > reports/.benchmark_safemint
npx hardhat run scripts/benchmark_burn.js > reports/.benchmark_burn
npx hardhat run scripts/benchmark_ownerOf.js > reports/.benchmark_ownerOf
npx hardhat run scripts/benchmark_transfer.js > reports/.benchmark_transfer
npx hardhat run scripts/benchmark_addressData.js > reports/.benchmark_addressData
REPORT_GAS=true REPORT_GAS_FILE=./reports/.hardhat_gas_report npx hardhat test

Not I did install hardhat-gas-reporter reported for the last command with the folliwing in hardhat config
  gasReporter: {
    enabled: (process.env.REPORT_GAS) ? true : false,
    outputFile: process.env.REPORT_GAS_FILE
  },

Yes, the test will pass. The problem will occur if the contract is deployed with solidity-bits version and later upgraded to the solady version.
Freshly deployed contracts are fine.

Okay, that makes sense.

@nidhhoggr Do you still plan to add this to v0.8?

Yes, hopefully I can get to that by the end of the weekend. Should be a pretty simple fix. In the meantime, did you look further into any way to start artifacting gas reports so we have commit-based benchmarks for optimizations? It's helpful to see exactly how a specific feature increases or decreases performance.

As mentioned in the PR #32 , these is the associated Benchmark comparison:
https://github.com/nidhhoggr/ERC721PsiReports/commit/522518ad7d9b6838fab5ee9d8089a8e38ace7e29


SAK-44666 Turnitin OC: Student changes to the similarity exclusions are saved in the viewer

https://jira.sakaiproject.org/browse/SAK-44666

LGTM.
And I never noticed that roles had been introduced in Similarity. This issue has been a big concern for us, so thanks Bryan!


Hide console exporter behind flag

This change is

Please create a new branch. Do not continue a branch that has already been merged.


Add e2e tests for mutliple ips per loadbalancer

Which issue this PR addresses:

Fixes https://issues.redhat.com/browse/ARO-4178
What this PR does / why we need it:
This PR adds e2e tests for increasing and decreasing load balancer managed outbound IPs
Test plan for issue:
e2e tests
Is there any documentation that needs to be updated for this PR?
N/A

/azp run e2e

/azp run e2e

/azp run e2e


Ling Bloodsystem

added new reagents for Ling Blood
if mixed whit parent blood it all becoms ling blood. this is to prevent there from being blood + blood in a beaker
Can test ling blood in a centrifuge will make same product as parents blood + explode + spawn meatkudzu
possible exploits
will not mix whit parents blood in crostastis beaker
will not combine if parents blood is used in recipie example: demnon blood drink or space Glue
tryed to remove the boubling sound when changling blood and parent blood mixxed but this gave me errors.

can't you parent all of reactions to reduce the amount of copypaste?
also fix merge conflicts


Add Action to deploy automatically with semver

Why
To avoid having to manually run npm publish from authenticated machines.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add a CHANGELOG for each releases

It would be nice to have a list of changes (especially breaking ones) available.
Also Github provides the release  system that can use this file.
If you also add a  CONTRIBUTING, contributors could write their PR changes under a Unreleased  section

I definitely agree. I will add changelog based on https://keepachangelog.com/en/1.0.0/ .

Great ! Not many people use this library but we added quite a lot of breaking changes recently and it would be good to have a changelog when the 0.10.0 is released


Invalid certificate! Code: 0x104

I am trying the demo app with a Smooth 4 and I am getting Invalid certificate! Code: 0x104.
How can we get a valid certificate?

The certificate is only open to company partners, you can send an email to<EMAIL_ADDRESS>for help.


test(ticdc): remove table actor integration test

What problem does this PR solve?

Issue Number: close #5126
What is changed and how it works?
As table actor is enabled by default,  table actor test case is duplicate,  we should remove it.
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Code changes

Has exported function/method change
Has exported variable/fields change
Has interface methods change
Has persistent data change

Side effects

Possible performance regression
Increased code complexity
Breaking backward compatibility

Related changes

Need to cherry-pick to the release branch
Need to update the documentation
Need to update key monitor metrics in both TiCDC document and official document

Release note
`None`.

/check-issue-triage-complete

/merge

/run-verify-test

Codecov Report

Merging #5127 (a43ae61) into master (687e248) will decrease coverage by 0.2304%.
The diff coverage is 57.4607%.

Flag
Coverage Δ

cdc
60.9125% <52.2283%> (+0.3138%)
:arrow_up:

dm
51.8990% <84.3373%> (-0.5706%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #5127        +/-   ##
================================================
- Coverage   56.1240%   55.8935%   -0.2305%
================================================
  Files           522        526         +4
  Lines         65325      67854      +2529
================================================
+ Hits          36663      37926      +1263
- Misses        25094      26197      +1103
- Partials       3568       3731       +163


Legion: semantics of deletion

Currently, deletion is recursive and applies to the entire subtree underneath the object in question.
The current semantics are not reference counted. Duplicate deletion is an application bug, and note that this includes transitive deletion.
I've been trying to implement correct automatic deletion of resources in Regent, and currently this makes it a pain to combine with manual deletion (i.e. Regent's __delete operator). In order to make sure that I don't double delete a region R, I need to track the dynamic liveness of R in a variable. But in order for this to be correct, I need to track all the way up the tree, i.e. with a chain like A->B->C->D, in order to make sure a deletion of D is safe I also need to check A, B and C.
I've been wondering if an alternative, reference counted semantics would be nicer to use. The tricky part here is that a naive semantics could be really painful---you probably don't want to have to go delete every single subregion of a partition, and so on.
My proposal is that only certain APIs, like create_* will add references. Hopefully we'll be able to come up with a rule that is reasonably obvious for which APIs would do this. To a first approximation, anything that is explicitly create_*'d should also be destroy_*'d. If a partition of P is deleted after its parent region R, R will be kept alive until P is deleted, since the creation of P holds a reference on the entire subtree up to the root.
Thoughts?

Can you list exactly which calls will create a reference? I'm fine with switching to reference counting semantics as it will make my life easier.  I'm also going to make it your responsibility to discuss to get everyone's approval too. :)

Unless otherwise specified I mean all overloaded versions of a method call under a given name.
Runtime method calls that create references:

create_index_space
union_index_spaces, intersect_index_spaces, subtract_index_spaces
create_index_partition (note: in this and all subsequent partition calls, the reference is on the partition only; the partition holds references on all direct subregions and keeps them alive as long as the partition is alive)
create_equal_partition
create_partition_by_weights
create_partition_by_union, create_partition_by_intersection, create_partition_by_difference
create_cross_product_partitions (note: creates references on all of the output partitions)
create_partition_by_restriction
create_partition_by_blockify
create_partition_by_domain
create_partition_by_field
create_partition_by_image, create_partition_by_image_range
create_partition_by_preimage, create_partition_by_preimage_range
create_pending_partition
create_field_space
create_logical_region
create_field_allocator (I'm not 100% sure about this one, but seeing as it's called "create" I suppose it should take a reference on the field space it's created for)

A non-exhaustive list of methods that DO NOT create references:

create_index_space_union, create_index_space_intersection, create_index_space_difference (note: the reference is held by the parent partition created with create_pending_partition, so there isn't a need for a reference on the individual subspaces)
get_index_partition
get_index_subspace
get_index_partition_color_space_name
get_parent_index_partition
get_logical_partition, get_logical_partition_by_color, get_logical_partition_by_tree (note: the logical partition is implicitly held as long as both the region and its index partition are held)
get_logical_subregion, get_logical_subregion_by_color, get_logical_subregion_by_tree (note: the subregion is held as long as both the region and its index partition are held)
get_parent_logical_region

Fortunately the current naming is pretty consistent so it fits the "create" heuristic pretty well.

 We can add an optional recurse parameter to destroy methods that defaults to true. When it is true, we keep the current semantics. When it is false we use the new semantics.
This is consistent because under the new semantics (most) runtime objects have their own reference count, and the old semantics (deleting the subtree under an object) amounts to recursing down the tree and clearing all child references. The new semantics would essentially skip the recursion but otherwise keep all the other reference counting behavior. In this way we can keep the utility of allowing users to do one delete call for an entire tree, but also allow the reference counting behavior that makes things easier for the compiler to code generate to.

Several questions:

Does recurse also imply deleting logical region trees associated with index space trees? For example, if I say recurse on the deletion of an index space tree, do that also imply deletion of any corresponding region trees instantiated from that index space tree? Or does recurse only imply "vertical" recursion and not "horizontal" recursion?

What about logical partitions? We never explicitly "create" those with an explicit call. They are lazily instantiated whenever a client program first asks for it with get_logical_partition_by_*. However, I think you want those to potentially live past when a call to delete_index_partition is performed, so I feel like there need to be references on those. However, it's racy to know which is the first task to instantiate one of those logical partitions, so how do you decide who ends up responsible for the deletion?

recurse: I can see arguments either way, but for consistency with our current semantics I'd be inclined to make it do both "vertical" and "horizontal" per your terminology.

One option is to add an explicit create_logical_partition call that is identical to get_logical_partition except that it also adds a new application reference. For our users' sanity I do not think we should allow get_* calls to add references. The other then has to call delete_* once for ever call to create_* (i.e. each create_* adds one reference and each delete_* removes one reference).
Another option is to add explicit reference counting calls add_reference and remove_reference, but I don't think I'm a fan of this approach.
A third option is to just say that the user has to keep the index partition alive as long as they want access to any corresponding logical partition. In a certain sense, this may actually be a more consistent semantics: because the index partition is going to keep alive not just the logical partition in the one region tree the user cares about, but in all region trees, the logical partition doesn't really "exist" in the same sense of the word as other objects. That's why we never gave it its own create method originally, and it may still make sense to keep things this way.

Presumably recurse means whatever the calls mean now, but that's not clear and not documented.  The tree model is not obvious (at least to this user): for example, if destroy_index_space takes logical regions down with it because they were made from it, why wouldn't destroy_field_space do the same thing, making it impossible to use both?  Can I destroy_logical_region long before I destroy the parent index space in case I want to switch to a new FieldSpace for work later in the process?
As a user of the C++ API, what I most want is class types that own Legion resources so that I don't have to do anything to have the correct set of objects live at any given time.  Maybe, absent reference counting, it's not possible to avoid certain dangling-reference situations (e.g., an index space owns its logical regions, therefore LogicalRegion is non-owning and can dangle if its parent index space has been destroyed), but in that case we should at least have Legion::RAIIIndexSpace (with a better name) that both manages lifetimes and indicates by its existence which things need their lifetime managed.  It's my attempt to make such classes myself (and thus cause FleCSI to reliably destroy things) that has gotten us talking about this situation.
I realize that the C++ API does not emphasize ease-of-use (hence Regent), but all these issues must be documented whether or not they are automated.

I think there is some slight confusion here, so let me clarify. Suppose you have a index space I, field space F, region R (of I and F) and partitions IP (of I) and RP (of IP and R).
Under the current semantics (using delete as a shorthand for the corresponding destroy_* method):
delete I // deletes I, IP, R, RP
delete F // deletes F

The second delete is valid because R is unlinked when it is deleted, so there is no double deletion.
Under the current semantics, the following would be a bug:
delete I // deletes I, IP, R, RP
delete R // ERROR, R does not exist any more

But if you do it in the other order it's fine:
delete R // deletes R, RP
delete I // deletes I, IP

The second deletion is fine because R is unlinked at the time it is deleted and doesn't get caught in the recursion from I.
The semantics above is equivalent to what I originally called my recurse semantics. Another alternative is have the recursion go down instead of across (what @lightsighter called "vertical" but not "horizontal" recursion):
delete I // deletes I, IP (not actually deleted yet because R still holds a reference)
delete R // deletes R, RP (now I and IP are actually deleted)

With the "vertical only" recurse semantics above it no longer matters what order you delete the index space and region; either order produces the same result. But watch out with partitions, because the same ordering rules will apply as above.
And then finally there are the non-recurse semantics that I originally proposed. I won't bother to show this one, because you just have to delete each object individually, and order doesn't matter because the reference counting keeps things alive until they're really free.
I think what this means is that you can build your own RAII class and it should work fine as long as you never let a region outlast the index space and field space it was created from. Some of the restrictions on ordering are lifted with the "vertical only" recurse or non-recurse semantics, you may prefer those depending on how strict you want to be about ordering.
Having said that, there are some tricks with RAII that you have to be very careful about. The first is that there are lots of places where you can lose track of references with Legion data structures, typically because those data structures get serialized. If you destroy the original copy then you lose the reference, and this may result in invalid execution (and worse, racy behavior). I think this is the reason why I think Legion requires users to explicitly delete their objects, so that they think explicitly about what the lifetimes of the data are.
It's also worth mentioning that the "reference counting" in my non-recurse semantics above is not really a full reference counting. There are no APIs to add and remove references. Every object has one and only one application reference (i.e., that can be cleared by destroy_*. But different objects in the tree independently hold references and deleting one doesn't automatically clear all references in the subtree below it, which eases certain implementation details, in my opinion.
I'm not sure it's possible to make something as seamless as shared_ptr for Legion objects (due to the issues around serialization and task calls), but if you want to do this in an application or library you can probably get most of the way by making your RAIIRegion class internally take a shared_ptr, in combination with the non-recurse semantics I described above. You still have to be careful around what you do with task calls and such.
If you want to propose a different semantics, we're all ears, and now is the time to do so while we're talking about this.

I think it's a perfectly reasonable semantics to say, in general, that destroy_ing a thing destroys everything made from that thing: in C++ terms, that every tree node owns the subtree rooted at that node.  (But that's not documented anywhere that I know...)  I can understand the other two equally well: the only difference with "vertical-only" is that you say that *Partition objects are owned and others are reference counted.
What's important for the application programmer to understand is when these things can be destroyed at all.  The tutorial says you can do so while tasks are still using them, which sounds like you can't "lose track" of them.  As for explicitly thinking about lifetime, I for one don't consider RAII a substitute for doing so, but rather a means for it expressed in terms of the structure of class types and the schedule of local variables.
The code that I've written is independent of model: I assumed that I needed to destroy each object and in "upwards" order (one of whose linearizations is RP, R, IP, I, and F) because it seemed plausible that destroying, say, a LogicalRegion needed to do something with (the internal objects referenced by) its IndexSpace and FieldSpace.  (How does this relationship work for an IndexPartition and its color IndexSpace?)
The shared_ptr issue I don't understand: I've just been making unique, owning handles for Legion objects.  If you're saying that I could make a std::shared_ptr<MyUniqueLogicalRegion> to control the lifetime of Legion's object via that of mine, then of course I could (but I haven't happened to need that yet).  You're right also that that approach would be much safer with non-recursive destruction.

@opensdh I think you should probably not conflate the way @elliottslaughter and I use the term "reference counting" with the more traditional sense of the term. Our references are conceptual and global in a distributed system. Normal reference counting algorithms just track references inside of a single address space for freeing memory. That's very much NOT what we're talking about here. In our "reference counting" we mean that there is a conceptual reference being held to these resource when calls to create or destroy things. There's no object like a smart pointer that is "holding references." Using C++ structures like std::shared_ptr are not going to help you maintain these kinds of references because you'll often want to create a resource in one task running on node A and then remove the reference it in a different task running on node B, and C++ smart pointers will not help you with that.

I didn't bring up std::shared_ptr.  I'm also not sure how to tell whether a reference is "conceptual": at some point some code on some node has to decide that the reference is gone and free the resources it was using, so it was evidently a detectable thing (however encoded) at at least one place.
I haven't had to deal with the disparate create/remove case yet: what does it look like?  Do you invoke a task and then walk the tree from its std::vector<PhysicalRegion> via functions like PhysicalRegion::get_logical_region, LogicalRegion::get_index_space, and Runtime::get_index_partition?  In any case, it's true that you can't use a smart pointer directly in such cases, but I might very well define (as part of our argument-passing system) that a unique_logical_region could be passed, only as an rvalue, to transfer (our notion of) ownership to a task.  (Maybe that seems obsessive, but I'll do it only if it seems like it will actually make something simpler or less error-prone for our non-C++-expert users.)

I was the one who brought up shared_ptr, but it was intended to be an illustration of the principle @lightsighter is talking about.
Just to be clear, I do think local reference counting can be useful, but only if you allow yourself to make some simplifying assumptions. That's why I feel this has to be application-specific or in a library, and it will not cover the full generality of cases that Legion handles. Creating a region in one task and destroying it in another is an example of this generality.
Also, I don't think it's accurate to call Legion's reference counting "conceptual". We do real, honest to goodness reference counting on the inside of Legion. The issue is, we don't trust "automatic" mechanisms like RAII to be responsible for adding and removing references. And we also historically haven't wanted to burden users with needing to explicitly add and remove references themselves. So that's why we made the rule that there is only one application reference and it gets cleared when you run destroy_*. But there are absolutely other kinds references: this is how we keep a region alive as long as there is any task that takes it as a RegionRequirement.
My recommendation to @opensdh is to think about what kinds of use cases you want to support. Do you need to:

Destroy a region in a task other than the one that created it?
Create a region inside a subtask and return it to the caller?

If you only use regions within a single task (i.e. the task that creates the region will eventually destroy it), then I do think you can get away with a fairly straightforward RAIILogicalRegion. And it might very well use shared_ptr internally to make it easier for your users to use. But as soon as you need any of the use cases above you need to think carefully about how to do this so that you don't destroy the underlying LogicalRegion too early.

Certainly neither copying nor moving a shared_ptr from one task to another is meaningful (lacking any means of coordination).  Nor should Legion necessarily expose a general, distributed reference-counting system, since lazy, extensive use of it (as happens with shared_ptr!) would have poor performance.  I personally would still recommend having official Legion owning classes and providing mechanisms to transfer that ownership to another task to help the user guarantee the single destroy_ call (but not everyone has to share my enthusiasm for destructors).
(I also asked some questions on Slack that I hope will eventually help me speak more intelligently on these topics; that seemed like a better venue for such education.)

Summarizing what I plan to implement. I am going to modify the semantics of the existing deletion calls to have reference counting semantics. There will be no option for the recursive semantics of deletion that we have today as I don't believe they are even well specified. I am also going to add calls to allow applications to request additional "ownerships" of each of the resources (effectively the ability to add a reference) so that different libraries can each hold ownership of partitions of data that they intend to use regardless of who made the partition.
With regards to dependence analysis, the runtime will continue to perform dependence analysis for deletions in the context in which they are performed and any ancestor task contexts, but will not handle sibling cases.

What are the semantics of field allocation? Does every field add a reference to its field space and then we require all the fields to be deleted before you can delete the field space? That feels like the natural answer to me, but also somewhat not ergonomic.

I guess the main thing that gets us is that libraries can allocate fields without needing to explicitly request ownership on the field space as a whole. But if you're using truly dynamic fields, you'd have to manage the allocation/deallocation of specific fields anyway. So to be honest, I'm not sure that's really an improvement in semantics.
I can see arguments either way, personally I'm not convinced that the effort to manually deallocate all fields is worth what it buys us in terms of semantics.

Does that mean that you believe that the deletion of a field space should transitively delete all it's fields? If so, how do you think we should deduplicate races between one task deleting a fields space and another one deleting a field in that field space?

If this is a substantial implementation issue, I'm fine with having that be the deciding factor in terms of what to implement. I don't feel that strong about the semantics either way, it just seems like a minor improvement in usability to not have to delete individual fields.

Yes, this "deletion from two directions" is exactly the problem that the current runtime suffers from which is why everyone gets crashes. As soon as you have two ways to delete the same object it's possible for there to be races from the application side that the runtime can't protect you from.

Making a small side-note for myself. Once we fix this, we should also fix the evaluation of projection functions with NO_ACCESS privileges which right now are turned into no NO_REGION results to avoid races with region tree deletions.

Tracking merge request: https://gitlab.com/StanfordLegion/legion/-/merge_requests/184

I've merged MR 184 into the master branch. This semantics of deletions should now match those describe above with the following clarifications:

There is an option on deleting index space and index partitions to recursively destroy partitions below them in the tree to match earlier semantics. It defaults to true to keep the previous semantics, but it can be set to false so you only delete the specific index space or partition.
https://gitlab.com/StanfordLegion/legion/-/blob/master/runtime/legion.h#L3819
https://gitlab.com/StanfordLegion/legion/-/blob/master/runtime/legion.h#L3993
You can continue to delete fields right up to the point where a field space is destroyed. At that point the runtime will transitively free all remaining fields in the field space.
Destruction of logical partitions are now a no-op. Logical partitions are deleted by the runtime once either the top-level logical region is deleted or their index partition object is deleted (whichever happens first).

If anyone has a problem with these semantics you've got 24 hours to comment before I close the issue.

Is the non-effect of destroy_logical_partition part of the interface or an implementation detail?  It's not documented.

I will mark it deprecated so that future users will not start to use it, but I do want to give people time to remove it before I delete it from the API.

It's been a week that everyone has been running with these changes and no major issues so I am closing this issue. If we have problems in the future then we can open new issues to address them. @elliottslaughter you might want to open a new issue to update the Regent compiler, but I believe all the things you need now are in Legion.


pythonPackages.transitions: 0.8.6 -> 0.8.7

Consequences of this change
Support for Python 2 is dropped. We could add pygraphviz to checkInputs only on Python 3.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Support for Python 2 is dropped.

If it is a widely used library we may need to add a disabled for python 2.

We could add pygraphviz to checkInputs only on Python 3.

We usually don't do this.

If it is a widely used library we may need to add a disabled for python 2.

transitions officially supports Python 2.7, only our version of pygraphviz doesn't

Result of nixpkgs-review pr 113037 at d72819ef run on aarch64-linux 1

19 packages built:

python37Packages.consonance
python37Packages.dissononce
python37Packages.hbmqtt
python37Packages.junos-eznc
python37Packages.roombapy
python37Packages.transitions
python37Packages.yowsup
python38Packages.consonance
python38Packages.dissononce
python38Packages.hbmqtt
python38Packages.junos-eznc
python38Packages.roombapy
python38Packages.transitions
python38Packages.yowsup
python39Packages.consonance
python39Packages.dissononce
python39Packages.junos-eznc
python39Packages.transitions
python39Packages.yowsup

Result of nixpkgs-review pr 113037 at d72819ef run on x86_64-linux 1

19 packages built:

python37Packages.consonance
python37Packages.dissononce
python37Packages.hbmqtt
python37Packages.junos-eznc
python37Packages.roombapy
python37Packages.transitions
python37Packages.yowsup
python38Packages.consonance
python38Packages.dissononce
python38Packages.hbmqtt
python38Packages.junos-eznc
python38Packages.roombapy
python38Packages.transitions
python38Packages.yowsup
python39Packages.consonance
python39Packages.dissononce
python39Packages.junos-eznc
python39Packages.transitions
python39Packages.yowsup


spline not capturing logs

Hi
i installed the spline on the  azure machine  with the docker  in order to catch lineage on databricks on azure
docker-compose up

i got the page
http://<IP_ADDRESS>:8080/index.html
I put on the  avdansed setting
spark.spline.lineageDispatcher.http.producer.url http://<IP_ADDRESS>:8080/producer
spark.spline.lineageDispatcher http

but cannot see lineage on
http://<IP_ADDRESS>:9090/app/events/list
please advise
where can i find logs
Zacay
<EMAIL_ADDRESS>

What do you mean by that? What logs are you looking for? Spline has many components. If you run docker all logs are inside docker components. Spline agent logs are where Spark logs are (it writes to Spark logs).


ENH: minimum_spanning_tree should handle zero weights

Is your feature request related to a problem? Please describe.
Currently, scipy.sparse.csgraph.minimum_spanning_tree is unable to distinguish between the absence of an edge and an edge with zero weight in the input. According to the function's documentation, "if graph[i, j] and graph[j, i] are both zero, then nodes i and j do not have an edge connecting them."
For example, consider the following graph:

The output from minimum_spanning_tree for this graph:
g = np.array([
    [0, 0, 1],
    [0, 0, 1],
    [1, 1, 0],
])
minimum_spanning_tree(g).toarray()

includes edges between nodes 0 and 2 and 1 and 2:
array([[0., 0., 1.],
       [0., 0., 1.],
       [0., 0., 0.]])

so that the resulting minimum spanning tree is:

However, one would expect the true minimum spanning tree of the original graph to include the edge with weight 0.
Describe the solution you'd like.
The function could take a special value to signify the absence of an edge as opposed to an edge with zero weight. Given that this would change the current behaviour, it could be controlled by an optional argument, or implemented in a new function.
Describe alternatives you've considered.
Explain the current behaviour for edges with zero weights more clearly in the documentation.
Additional context (e.g. screenshots, GIFs)
No response

I remember this being discussed at the SciPy sprint yesterday with @jarrodmillman consulted on graph theory/networkx side/perspective, I wasn't sure about what to do.


Added the Benefits page

Related Issue
Closes #694

Description

Added a new page for showing the benefits of reading.
Works well in both light and dark modes.
Created a navitem showing the section.

Screenshots

screen-capture (13).webm
Checklist

[x] My code adheres to the established style guidelines of the project.
[x] I have included comments in areas that may be difficult to understand.
[x] My changes have not introduced any new warnings.
[x] I have conducted a self-review of my code.

@abhinav-m22 Don't add this on navbar, add it in the footer section

@rohansx

Is this fine?

Thanks for reminding


adding ability to run as a windows service

Looks good to me, apart from misc code style which I'll fix myself.
Does everything work fine? :smiley:

It can successfully be installed and run as a local service. When doing so it works exactly as it run as a console app (without the console)

Great, thank you :+1:
Don't hesitate to send further pull requests or issues regarding the service. I'll need to test how it works on Mono, but there shouldn't be any incompatibilities.

By the way, If you want to test on windows you need to run InstallUtil.exe  to install it as a service. (InstallUtil should be in C:\Windows\Microsoft.NET\Framework64<net version>). The service just runs the exe so you don't need to reinstall the service to test exe changes.

Thanks :+1:
I tried it out and it indeed works fine, only shutdown was kinda broken, so I fixed it.

Feel free to test pre-release with all changes included: https://github.com/JustArchi/ArchiSteamFarm/releases/tag/<IP_ADDRESS>
It should work nicely, as I tested it and it did. I'm only not sure how well Windows handles AutoUpdate and AutoRestart of the process. AutoUpdate should not cause issues, but AutoRestart might make Windows believe that ASF died, and restart it, resulting in 2 processes running, which is bad.
On the other hand, disabling AutoRestart globally when ASF is running as a service is not nice either, as somebody might want to add service as one-shot and expect ASF to restart itself if needed, as opposed to adding service logic.
For now it's good enough, but if you have any thoughts let me know :+1:

Seems everything is a bit weirder than that. Right now the current autoRestart does not work with the service. When the old process dies the service is marked as stopped but I'm guessing because the other process is running in the previous processes isolated space it is not completely counted as stopped. This means the call to ServiceBase.Run(service); that would normally cause onStart to be called doesn't run and the new process just dies. From the research I have done it seems there are 2 main ways of restarting a service. 1) windows can be configured to restart on non-zero exit code. This would mean using a fail code to indicate update and require users to enable auto relaunch.

That means that AutoRestart should remain configurable to user and be false when ASF is supposed to run via service.
Also it broke Mono as Mono doesn't seem to support Environment.UserInteractive properly, so I'll need to make a fix :smile:

Nice, looking online it seems the best way in mono might be Console.In is StreamReader

I'm going to go get some sleep, if we can get this ironed out tomorrow I'll start on event logging

Ye, I should be going too :smile:. Good night.

Console.In was even decent at first but totally ruined simple redirect of stdout and stderr + running in background (&) on Linux, so I gave up for now. For now I just set it to always return true on Mono, and it's back to working.
However, that's my problem. I'm responsible here for making ASF work with Mono, not you. Your code is valid and works properly on Windows, which has best C# support at the moment, everything considering Mono including hacks, workarounds, fixes or bugs is my job, so don't mind me and feel free to contribute further :smile:

I'm running into a bit of an issue installing the newest released version as a service. specifically, System.InvalidOperationException: Unable to get installer types I think it may be related to the packing, Have you manged to successfully install a packed version?

Yep, confirmed, and I have no idea for now how to solve it in a way that will satisfy everyone. I'll probably end up building ASF-Service.exe with old ILRepack method (as I need it anyway for Mono) and provide as an extra to every release. I didn't manage to make current Fody/Costura solution work with it.

Would signing the ILRepack version with a code signing certificate be enough to move it out of the windows defender threshold? Certum offers them for 14 euro's to open source projects. If you want I'll cover half the cost.

It's not only paid, but doesn't even guarantee that WD will stop yelling about ASF. I'm definitely not going to make you spend money on this bullshit, neither force myself to do the same. I'm more likely to drop Windows support than paying for a workaround method - it's Microsoft fuckup, and they should be fixing it, not we. Besides, ASF-Service.exe idea doesn't have any disadvantages for now, even updates will work. I could as well name it ASF2.exe.

https://github.com/JustArchi/ArchiSteamFarm/releases/tag/<IP_ADDRESS>
This should work for now, until I find better solution or devs behind Fody add proper support.

https://github.com/Fody/Costura/issues/164
That's all I can do for now.


Not found CacheCard

The CacheCard was removed, but it is giving an error in the javascript.
https://github.com/stepanenko3/nova-cards/blob/bb9a7967f6b6fc51de50ccc9bfb9a50d5e7326e3/resources/js/entry.js#L38
But the entry.js file is still referencing the card removed in version 1.10.0.

yes, this is my case too.

Correct, having the same issue.


Lookup SIM card number (www type)

Was thinking the other day, i believe that it's 3.dk that has a web page where you can lookup a ICCID number (Sim card id number) and by a bit of reverse lookup via their web form you can instead find out what carrier that has the number. Perhaps that would make a fun transform :)

The url is: http://np.3.dk/


Documentation tests don't work with extension-trait

Nevermind, I'm stupid, I tried using doctests in a bin, not lib.

Seems like this confusion was caused by https://github.com/rust-lang/cargo/pull/5029.


Do not lose original inactivity timeout on disable

Saw this when trying to override the inactivity timeouts for a tunnel_route.  We could override the proxy.config.http.transaction_no_activity_timeout_in and proxy.config.http.transaction_no_activity_timeout_out to 600 seconds (from our default of 30 and 90).  But our test stalled tunnel timed out at 300 seconds because our proxy.config.net.default_inactivity_timeout was set to 300, and the inactivity cop resets the timeout to proxy.config.net.default_inactivity_timeout if the next_inactivity_timeout is set to 0.
However, for the tunnel case, there is not an opportunity to reset the timeout to the original value.  With this code change, the tunnel timeout works as expected without tripping up on the default_inactivity_timeout.  This chance also does not seem to impact regular traffic.
I am not sure why we are clearing the inactivity timeout if the netvc is both read and write disabled. Looking through the git blames it seems that this logic has been present since the code moved into github in 2009.

[approve ci docs]

@shinrich
git blame 6da43e2b75efe23524bf14394a07bca3fc8bf957 P_UnixNet.h shows that this logic has been present from the beginning.
To enable InactivityCop, we do not define INACTIVITY_TIMEOUT.
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 450) read_disable(NetHandler * nh, UnixNetVConnection * vc)
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 451) {
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 452) #ifdef INACTIVITY_TIMEOUT
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 453)   if (vc->inactivity_timeout) {
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 454)     if (!vc->write.enabled) {
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 455)       vc->inactivity_timeout->cancel_action();
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 456)       vc->inactivity_timeout = NULL;
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 457)     }
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 458)   }
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 459) #else
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 460)   if (vc->next_inactivity_timeout_at)
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 461)     if (!vc->write.enabled)
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 462)       vc->next_inactivity_timeout_at = 0;
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 463) #endif
01a15380d5 (John Bradley Plevyak 2009-12-09 23:01:29 +0000 464)   vc->read.enabled = 0;
01a15380d5 (John Bradley Plevyak 2009-12-09 23:01:29 +0000 465)   nh->read_ready_list.remove(vc);
a5345da86f (George Paul          2010-02-24 18:48:42 +0000 466)   vc->ep.modify(-EVENTIO_READ);
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 467) }
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 468)
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 469) static inline void
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 470) write_disable(NetHandler * nh, UnixNetVConnection * vc)
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 471) {
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 472) #ifdef INACTIVITY_TIMEOUT
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 473)   if (vc->inactivity_timeout) {
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 474)     if (!vc->read.enabled) {
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 475)       vc->inactivity_timeout->cancel_action();
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 476)       vc->inactivity_timeout = NULL;
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 477)     }
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 478)   }
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 479) #else
468058a255 (Mladen Turk          2010-05-13 07:09:39 +0000 480)   if (vc->next_inactivity_timeout_at)
01a15380d5 (John Bradley Plevyak 2009-12-09 23:01:29 +0000 481)     if (!vc->read.enabled)
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 482)       vc->next_inactivity_timeout_at = 0;
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 483) #endif
01a15380d5 (John Bradley Plevyak 2009-12-09 23:01:29 +0000 484)   vc->write.enabled = 0;
01a15380d5 (John Bradley Plevyak 2009-12-09 23:01:29 +0000 485)   nh->write_ready_list.remove(vc);
a5345da86f (George Paul          2010-02-24 18:48:42 +0000 486)   vc->ep.modify(-EVENTIO_WRITE);
a1651345d1 (Andrew Hsu           2009-10-29 23:01:48 +0000 487) }

Yes, this logic has been present since the code was placed into gihub in 2009.  I would assume that the timeout for the tunneling logic has never really worked appropriately either.  The default value of proxy.config.net.default_inactivity_timeout is quite high 86400, so it normally wouldn't cause a conflict as long as at least one of the netVC retains a valid timeout.
But stepping back, why do we do this clearing of the timeout when a netvc is both read and write disabled?  Is this something that used to make sense but does no longer?

I just pushed a less extreme change.  Rather than removing the inactivity logic completely from write_disable/read_disable, I reverted how the next_inactivity_timeout_at was cleared to 0 that variable directly rather than calling set_inactivity_timeout() which will also clear inactivity_timeout_in.  The call to set_inactivity_timeout() was added in the NetEvent restructuring I think.  Our ATS7 and the code @oknet references identifies the code that directly clears only net_inactivity_timeout_at.
I verified that this code works for my tunnel timeout case too.  UnixNetVConnection::set_enabled  is called well before inactivity_cop triggers, so the original inactivity_timeout is used to recompute next_inactivity_timeout_in.
I think UnixNetVConnection::set_default_inactivity_timeout should also be updated to not clear inactivity_timeout_in, but I will leave that to another PR.

[approve ci docs]

@shinrich
The InactivityCop will set default inactivity timeout if next_inactivity_timeout_at was set to 0
https://github.com/apache/trafficserver/blob/c8c9540b04b08d04bd44f6b8c7aa5d75d4a9e1a8/iocore/net/UnixNet.cc#L72-L78
The next_inactivity_timeout_at will be reset with net_activity() if you do not clear inactivity_timeout_in.
https://github.com/apache/trafficserver/blob/c8c9540b04b08d04bd44f6b8c7aa5d75d4a9e1a8/iocore/net/UnixNetVConnection.cc#L63-L73

@oknet I think having the netactivity revert to the original inactivity timeout is desirable behavior, isn't it?  Presumably it is the netactivity() that is fixing my tunnel timeout problem.

@shinrich The Inactivity Timeout is used to set a timeout for read/write transaction. The Inactivity Timeout should be disabled if both read and write are disabled.
The next_inactivity_timeout == 0 means inactivity timeout disabled, but the InactivityCop consider that it is default inactivity timeout.
To resolve your issue, IMO, it is better to clarify how to set default inactivity timeout within InactivityCop.

In the tunnel case, it seems that disabling both write and read on the netvc is a transient operation.  With the current code, we need to explicitly reset the inactivity timeout when the netvc is reenabled.  I'll. look around about how to do that at the HttpSM level.
I assume that netactivity() won't trigger until the netvc has been reenabled for read or write.  If that is the case, then having the netactivity reset the previously set inactivity timeout seems reasonable.

Looking at the code a bit more, I think this default takeover of the inactivity timeout could occur for regular (non blind tunneled) connections as well.  The code in question that sets the inactivity timeout in InactivityCop::check_inactivity was added somewhat recently by PR #6755.  The code in question
      // set a default inactivity timeout if one is not set
      if (ne->next_inactivity_timeout_at == 0 && nh.config.default_inactivity_timeout > 0) {
        Debug("inactivity_cop", "vc: %p inactivity timeout not set, setting a default of %d", ne,
              nh.config.default_inactivity_timeout);
        ne->set_default_inactivity_timeout(HRTIME_SECONDS(nh.config.default_inactivity_timeout));
        NET_INCREMENT_DYN_STAT(default_inactivity_timeout_applied_stat);
      }

Though if in fact next_inactivity_timeout_at and inactivity_timeout_in are cleared by write_disable/read_disable, I don't see a way to get those reset without the HttpSM level logic explicitly resetting it.  And most of the read/write_disable seems to occur at the NetVC level.
@sudheerv since you last touched the default_inactivity_timeout logic, do you have any thoughts here?

@shinrich Did you try to comment the codes which set default inactivity timeout within InactivityCop? Is it useful for your tunnel timeout case?

I didn't try that.  That would probably solve my specific tunnel case since only one end is being fully deactivated and having its inactivity timeout cleared, so the inactivity timeout of the other netvc would prevail.  But that is probably not a good solution, since that would leave connections with no inactivity timeout set, which is the whole purpose of the default inactivity timeout setting.

@shinrich The change in your PR looks reasonable to me. This is how the code looked in 6.2.x as well.
As you said, Inactivity cop's take over of inactive timeout when no timeout is set is by design, and we recently tried to analyze why we'd even have situations where such guard/catch-all is required. I think we sort of found most (probably all such) cases, one example was a missing SSL Handshake timeout and confirmed by adding explicit metrics to see how often is the Inactivity Cop tries to take over the inactive timeout with default timeout, and of those, how often it actually applies the default timeout. We found that the former is significant but the latter is 0 in prod after fixing some of the gaps (example below from a prod box).
{code}
[svinukon@ltx1-app42432 i001]$ sudo ./chroot-exec traffic_ctl  metric match  default
proxy.process.net.default_inactivity_timeout_applied 31593
proxy.process.net.default_inactivity_timeout_count 0
{code}
Also, I think the logic in inactivity cop taking over the VC's inactivity by setting default timeout is not actually introduced by PR 6755. PR 6755 merely did some refactoring to be able to detect default vs non-default inactivity timeout being set. The takeover logic has always been there AFAIR (at least, from 5.x?). I think @bryancall added this guard because we were seeing lots of connection leaks without that back in 5.x.

Cherry-picked to v9.0.x branch.


Various buildNpmPackage fixes

Description of changes
Things done

Built on platform(s)

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

[x] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@delroth @mweinelt Please test this branch to see if it's fixed your respective issues. Thanks!

@delroth @mweinelt Please test this branch to see if it's fixed your respective issues. Thanks!

On my side everything now Just Works as it should for etherpad-lite. Thank you so much for the quick turnaround!

Running into that new check, even though npmDeps is set.
evcc-0.106.3-go-modules> unpacking sources
evcc-0.106.3-go-modules> unpacking source archive /nix/store/7kxszkq3jd6x1dwl1va6n8fvqppsack5-source
evcc-0.106.3-go-modules> source root is source
evcc-0.106.3-go-modules> patching sources
evcc-0.106.3-go-modules> Executing npmConfigHook
evcc-0.106.3-go-modules> Configuring npm
evcc-0.106.3-go-modules>
evcc-0.106.3-go-modules> ERROR: no dependencies were specified
evcc-0.106.3-go-modules> Hint: set `npmDeps` if using these hooks individually. If this is happening with `buildNpmPackage`, please open an issue.

  npmDeps = fetchNpmDeps {
    inherit src;
    hash = "";
  };

  nativeBuildInputs = [
    nodejs
    npmHooks.npmConfigHook
  ];

@mweinelt Notice what derivation it's in -- it's the Go modules one, where it wouldn't be set. 😕
I'll get back to you with a solution on how to cleanly do that for now.

@lilyinstarlight What do you think of 4e730bbe4d567bbb65cc946fdbbadab0f4d99546, as opposed to having a separate npmPruneFlags? Or do you think I should adjust the diagnostic to suggest npmFlags = [ "--legacy-peer-deps" ]?

@lilyinstarlight Done in 1612525f97d2101963833ba5f1aa1ef7b01df64c.
@tjni How do you feel about the commit progression here, with your changes applied throughout? It took... a fair bit amount of time to do the rebasing required for this, so let me know if anything seems weird.

Looks great! Thank you for addressing my comments.

My main concern is doing too much in 83d240907a69684436ca82df80675a3b0c81e260, specifically referring to the if to filter change here, where it really doesn't relate to the other changes, but it kind of does since the change of Package::resolved to UrlOrString allows this to happen, mostly. I don't know.
Am I overthinking this? 😅

I think you should do whatever makes you feel best about the change. If it feels unrelated, feel free to pull it out or leave it out. None of my comments ever need to be addressed, I like and can iterate on code all day, but I almost always prefer to commit something instead of nothing.

Saw this mentioned on Discourse and thought I would try converting the FoundryVTT flake I maintain over to buildNpmPackage from node2nix. It went mostly smoothly, but I ran into a few issues. One is minor. I think the other was also reported in #189539.

I ran into trouble with the src. FoundryVTT is distributed as a zip file, so it took some time to figure out what I needed to override to let it unpack properly in fetchNpmDeps.
FoundryVTT uses a private fork of pdfjs. The source of their fork is available on GitHub, but the package itself is not. I work around this by changing the package.json to reference the GitHub fork, but that doesn’t work with buildNpmPackage. I get the following error and have to use that URL instead of the repo on GitHub.

Error: request to https://codeload.github.com/foundryvtt/pdfjs/tar.gz/2196ae9bcbd8d6a9b0b9c493d0e9f3aca13f2fd9 failed: cache mode is 'only-if-cached' but no cached response is available.

The revised flake is available at the buildNpmPackage-PoC branch of my repo for reference.

@reckenrode I can't look further into this right now, but as for the second point, can you please test if changing the lockfile is required when using this branch?

@reckenrode I can't look further into this right now, but as for the second point, can you please test if changing the lockfile is required when using this branch?

I was was referencing the PR in my flake (github:nixos/nixpkgs/pull/200470/head). That should be the same thing as the branch, shouldn’t it?

Yup, you're right. I'll take a look when I can and see what's up, on both fronts. Thanks for reporting!

@reckenrode Please test the latest commits, which fixes the issue by working around what might be an npm bug.
I've marked this PR as a draft until I can file an issue with npm about this and note it in the code.

I rebased my etherpad WIP on top of the latest changes here and --fixup-lockfile is failing to parse the package-lock.json:
Validating consistency between /build/source/src/package-lock.json and /nix/store/377pfxym8iy6dgv83a8bmmr9r668m39b-etherpad-lite-1.8.18-npm-deps/package-lock.json
Error: expected value at line 1 column 1

Haven't debugged this yet since I'm fighting with other stuff.

That's strange -- will look into it when I can.

I got the same error when I tried testing your changes with my FoundryVTT package-lock.json.

Looks like the hash mismatch issue is happening again (one, two).
I have access to one of the boxes it failed on, so maybe I'll be able to get there in time to deduce if it's an issue I can fix or not (e.g. if it's a filesystem issue due to multithreading I may just make it single threaded; since it's only failing on some of the boxes, this seems likely).

@reckenrode @delroth @mweinelt @lilyinstarlight Please test your packages with these new commits, note that this requires a hash change (see the descriptions of e543e08fd589a49c841eb9f74aa1354eae114984 and 718616f78ca67c243af0dec0c35ee13b830546d5 if you want to know why).
@tjni Do you mind doing a quick code review? Not too much changed is changed from when you last looked at it, just want another set of eyes on it.
Thanks all!

Things are looking good over in #131475. Thanks!

No clue why OfBorg suddenly thinks that more than one rebuild is happening on Linux, but only one on Darwin, when it should be the same on both...

@reckenrode @delroth @mweinelt @lilyinstarlight Please test your packages with these new commits, note that this requires a hash change (see the descriptions of e543e08 and 718616f if you want to know why).

Regenerated the npmDepsHash and nix build the derivation successfully.

🤨 something's up
@ofborg eval

Some form of nondeterminism is still creeping in, but I just can't tell what. If I build /nix/store/dmhdi149dv6ajh6z1wgkhq8l6y2jmg59-hosted-git-deps-salted-7s4fkx65dp9x.drv now, I get the new hash of tFy... (but the old one (qhm...) succeeded previously), but this hash sticks if I run it successively.
Guess I'll wait a few hours and try again, as that's the only thing that's changed since. 😪

Needs a rebase due to https://github.com/NixOS/nixpkgs/pull/201946.

Switched to packing with gzip -9 like npm does.

One last sanity check.
@ofborg eval


PushIOManager.getPreferences() does not return array of preferences

Method does not return preferences correctly. Our team has been using PushIOManager.getPreference() instead

getPreferences now returns the preferences correctly.
PushIOManager.getPreferences().then(response => {
      // response.success contains the object array.
});


Parse FAT Mach-O binaries and scan for the given section in all the THIN binaries

Completed with #4


About filter_bg_thresh

Hi,
It's excellent work. I found that when running your code, a parameter filter_bg_thresh will cause the output loss to be 0. Effective loss can only be produced if the threshold exceeds this parameter. I don't know if my understanding is correct. Can you tell me what this parameter does？
looking forward to your reply.
Best.

Hi @cainiaoshidai,
Thanks for your interest in our work!
filter_bg_thresh is a soft threshold to filter out points belonging to background classes (floor and wall). The 0 output loss only happens if you train the entire network from scratch. Please refer to our training guideline in which we first pre-train the backbone then train the entire model.
Best.

Hi @cainiaoshidai, Thanks for your interest in our work! filter_bg_thresh is a soft threshold to filter out points belonging to background classes (floor and wall). The 0 output loss only happens if you train the entire network from scratch. Please refer to our training guideline in which we first pre-train the backbone then train the entire model. Best.

Thanks for your reply. I made a mistake while reading the training guideline. By the way, I want to train in my own dataset. But my dataset doesn't have RGB feature.  So whether the RGB feature will have a significant influence on the result of indoor and outdoor datasets. Can you give me some advice?
Thanks.
Best.

I think the lack of RGB features is not a big problem. However, when adapting to a new dataset, you should fine-tune several hyper-parameters (as suggested in custom_data_guide of SoftGroup) such as the voxel_scale, instance_head_cfg.radius, instance_head_cfg.neighbor in the cfg file.
Best.

Thanks. I will have a try.
Best.


Use 'set' over 'in' chain

Check if BLOCKLIST contains at least a common element with set
Signed-off-by: Patrick José Pereira<EMAIL_ADDRESS>

Looks reasonable. This change remembered me that I didn't add any automated test.
This would probably be a good idea :P


have error

dockerfile should be change this line : "ADD licence /etc/tower/license"  to "ADD license /etc/tower/license"

Fixed in latest version as well as certificate mapping and ServerName in Apache config.
Thanks!

the README.md should be change this line : ' ~/certs/domain.license ' to '  ~/certs/license ' ,  or change the docker-entrypoint.sh:  ' if [[ -a /certs/license ]]; then ' -a /certs/domain.license  '   and 'cp -r /certs/license /etc/tower/license'  to 'cp -r /certs/domain.license /etc/tower/license'

Yea, it's a typo, thanks

docker-entrypoint.sh should be change this line : ' chown awx:awx /etc//tower/tower.cert ' to ' chown awx:awx /etc/tower/tower.cert '

vTNT,
Not a critical typo, but anyway - thanks. Do you tried run in by yourself?


chore(main): release 1.8.0

:robot: I have created a release beep boop
1.8.0 (2024-08-09)
Features

new header styles (11a1e49)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v1.8.0
:sunflower:


Fixing errors from Week1 Snippet

Change made to appengine-web.xml were incorrect, reverted and made correct changes to pom.xml

Perhaps I'm not using the github interface correctly, but when I look @ the files changed tab for this PR, I'm not seeing anything. Is that intentional?

I believe I am the one causing the problem, I do not merge the pull request because I thought we had to wait for your approval. Please check if you are able to see the changes now as I just merged the pull request.

I don't think that was the issue in this case. When commit is merged in, the pull request is closed. When I look at the first PR: https://github.com/CesarRiv/my-portfolio/pull/1 there's a tab named "files changed" and when I clicked on that, it showed me what the PR was changing. When I look at the second PR, the tab "files changed" still exists but it says 0 files changed.
Another difference I just noticed now is that PR 1 is merging from your dev branch into the master branch. PR 2 is merging from your master branch into your dev branch. The first direction is the one I'd generally expect. I'm also not certain that I'm right about this part so I asked for help on the technical channel.


Autocomplete component never shows the noResultsSlot content

As-is, the Autocomplete component in snap-preact-components accepts a noResultsSlot prop to display in the AC results area in the event the current query returns no results.
However, on line 496 there's a conditional checking for a result count of greater than 0 which effectively squashes the ternary on line 500, meaning the noResultsSlot will never display.
The higher level contentSlot can be used to work around this, but it's nice to override just the smaller slots when that's all that is required. Thanks!

Thank you for your useful feedback. We will get this fixed soon!

@korgon apologies, I appear to have been off-base with the initial bug report here - line 496 does not squash line 500 when there are merchandizing results or a search query in place.
In the time since I logged it, our store had enough search traffic to begin triggering trending searches. Now that trending searches are appearing, if a long query string is entered that has no results, I am in fact seeing the no results content. I was not seeing the no results content before this happened though - and it's not readily obvious to me why. Hope this helps! Thanks!


receiver cannot ack/nack by the the ReceiverFn result?

In the most MQ cases, like PubSub or kafka, we want  ack only when there is no errors, but in sdk-go v2, the receiver can NACK when ReceiverFn error.
In my case i just want the blew code in  PubSub or kafka.
ceClient.StartReceiver(ctx, func(ctx context.Context, event cloudevents.Event) protocol.Result {
       // do not ack if have some errors when handle event
	err := doSomething(event)
	if err != nil {
		return protocol.ResultNACK
	}
	return nil
})

Here is my merge request, Is there any other reason why it cannot ack manually when it is received?
https://github.com/cloudevents/sdk-go/pull/459

@yolocs @nlopezgi @slinkydeveloper


"go get ... pkg" says "@upgrade found (v0.51.0) but does not contain pkg"

$ go get github.com/hatchet-dev/hatchet/pkg
go: module github.com/hatchet-dev/hatchet@upgrade found (v0.51.0), but does not contain package github.com/hatchet-dev/hatchet/pkg

Using go 1.23.2.
https://docs.hatchet.run/sdks/go-sdk says
**Installation**

Run the following to install the Hatchet Go SDK:

go get github.com/hatchet-dev/hatchet/pkg

and it isn't specific
$ go get<EMAIL_ADDRESS>go: downloading github.com/hatchet-dev/hatchet v0.50.2
go: module<EMAIL_ADDRESS>found, but does not contain package github.com/hatchet-dev/hatchet/pkg

$ go get<EMAIL_ADDRESS>go: downloading github.com/hatchet-dev/hatchet v0.49.3
go: module<EMAIL_ADDRESS>found, but does not contain package github.com/hatchet-dev/hatchet/pkg

Hey @chadmiller-saq, apologies for the typo here - I believe the correct command is go get github.com/hatchet-dev/hatchet. I'm unsure of why we appended the /pkg here. We'll get the docs updated asap.

Maybe. Weird things happen there too. See #1021


ENH: allow users to pass options directly to Meson

Signed-off-by: Filipe Laíns<EMAIL_ADDRESS>EDIT: closes gh-54

@FFY00 would it be possible to give an example of how to use --config-settings KEY=VALUE with this PR? I wish to test whether it's possible to compile scipy with --cross-file with this patch..

It should be python -m build -C--cross-file=yourfile.

It should be python -m build -C--cross-file=yourfile.

Is -C equivalent to --config-settings? I don't understand what is this build module you refer to with python -m..

Is -C equivalent to --config-settings? I don't understand what is this build module you refer to with python -m..

https://github.com/pypa/build

Great to see this land!
One comment left unaddressed, and let's do a few doc updates in a follow-up PR. @FFY00 are you planning to do that? If not I can do it - already have a need to point people to it:)

It should be python -m build -C--cross-file=yourfile.

That seems wrong, I think it should be python -m build -Csetup_args="--cross-file=yourfile". If we want -C--cross-file to work, it looks like it should be special-cased like builddir.
This landed with underscores *_args, which is a little unusual for CLI arguments, so wanted to check that that was intended?
It's nontrivial to figure out the right invocations here, so we need quite a few examples in the docs. Here is another one:
pip install . --config-settings compile_args="-j1"

Another follow-up, unrecognized inputs should raise or give a warning, rather than be silently ignored. This will happily continue a build:
pip install . --no-build-isolation --config-settings nonsense=true

This landed with underscores *_args, which is a little unusual for CLI arguments, so wanted to check that that was intended?

This was done in gh-218.

Another follow-up, unrecognized inputs should raise or give a warning, rather than be silently ignored.

This was done in gh-219.
I'll open a new issue for the rest.


bug fix for special key in insert mode

key code of  "<C-@>"  is 0x00,  mpack_write_cstr can't handle this.

Looks good to me, I had no idea there was a 0x00 keycode in vim 😅


Add option to skip Checksum verif between doc storage and Redis #751

Context
See #751, we faced an issue where the checksum stored in Redis does not match the one of the document. This is due to the fact that the S3 upload finished but the server crashed before storing the checksum in redis.
So Redis had the checksum of the previous version of the document.
Solution
As suggested in the issue, it should be wise to just log a warning telling that the checksum does not match.
However there is some uncertainty around this. I propose to offer an experimental flag until we are comfortable with just warning the user (if that may be of some help until then?).

Closing for now, I have doubts about the usefulness of this PR.


Cannot run kernel tests on Windows.

Running tests as, e.g., python tools\test.py --strong -cdartk language_2/async_await_test fails.
It tries to run a bash script pkg/vm/tool/dart2. There is no corresponding .bat file.
Error message is:
Process error:
  Command: set DART_CONFIGURATION=DebugX64 & pkg\vm\tool\dart2 --no-background-compilation --ignore-unrecognized-flags --packages=.\.packages .\out\DebugX64\generated_tests\language_2\async_await_test_none.dart
  Error: ProcessException: The system cannot find the file specified.

  Command: pkg\vm\tool\dart2 --no-background-compilation --ignore-unrecognized-flags --packages=c:\src\dart\sdk\.packages .\out\DebugX64\generated_tests\language_2\async_await_test_none.dart

This is a decidedly Unixy command line.

Closing, Windows+dartk[p] is tested in CI and working.


GLFWvidmode refreshRate contains a truncated integer (on Linux)

I used const GLFWvidmode* mode = glfwGetVideoMode(monitor); to get at the refreshRate. This is an integer value in Hz. I observed a value of 59 on my linux machine. The actual refresh rate though is 59.97 as determined by xrandr.

The integer should be rounded to 60 I think.
IMO It would be more useful to make the refreshRate value frames/ms no frames/s.

Good point, rounding is a better approach than truncation here.
I agree that the refresh rate shouldn't be integer Hz. It will be addressed in the next API revision, see #230.

By a stroke of luck this affected only platforms where we can use C99. Fixed with round in 621ece63c8d31ae0dcf2196a3abde19ce8569984.


Stormer Numbers

Do the checklist before filing the issue:

[x] Do you have Node.js and all the relevant dev-dependencies installed?
[ ] Is this a bug fix?
[x] Is this an enhancement?
[x] Is this a feature request?

NOTE: Provide a clear and concise description of the feature that needs to be added! Or if its a bug, then provide the necessary steps to reproduce it along with screenshots.

Give your answer below:

[Function: M.isStormer()] needs to be added!
For more info:
https://www.geeksforgeeks.org/stormer-numbers/
M.isStormer() needs to accept a positive integer and all other arguments passed should throw a type error which needs to be handled gracefully! For error handling, you should refer to how M.isArmstrong() is implemented.
Category: Number Checker

It would be great if you assign me this issue.

The issue is open for claiming

I am sorry for the delay but I can still work on this as we were supposed to start from 1 March.

I am ready with the changes. Can I please make a PR?

@Dhruvi16 technically speaking, you had your 1 day for an easy issue counting from 1st March. Anyway, I'm giving you a pass since this is your first time contributing to these project! But from next PR onwards, claim an issue only if you're sure you can deliver within the time-frame mentioned in the guidelines

@Dhruvi16 you time's up and please claim a different issue!

I would like to work on this issue @pbiswas101 after my PR gets merged.

Hey, I wanna work on this issue. Assign it to me, please.

@thisisabdus you're assigned!

Thank you.

This issue is up for grab. I am not working on it.

I would like to work on this.
P.S. I have already written the codes for radian() and degree(). Waiting for your clarification over there, before submission.

@sateslayer I would suggest not to claim an issue before your current PR gets merged!

All right no problem!

@sateslayer You're assigned! But from next time onwards please claim an issue after your PR is merged!

Yeah sure


ChangeType leads to botched imports for nested fields

After

https://github.com/openrewrite/rewrite/pull/4291

We continued to see issues in

https://github.com/openrewrite/rewrite-jackson/pull/6

I've updated the test to better replicate the issue there. With this change the test fails with left imports.
Unexpected result in "A.java":
diff --git a/A.java b/A.java
index 98d3bcb..da17811 100644
--- a/A.java
+++ b/A.java
@@ -1,6 +1,8 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;

 import static com.fasterxml.jackson.databind.SerializationFeature.WRAP_ROOT_VALUE;
+import static org.codehaus.jackson.map.SerializationConfig.SerializationFeature.WRAP_ROOT_VALUE;

 class A {
     void test() {

@sambsnyd if you're up for a puzzle, here's that updated test. I didn't yet get into looking why this now happens

This comparison fails
https://github.com/openrewrite/rewrite/blob/f6473b6bab48a652629744c0633b84e20e7df2ce/rewrite-java/src/main/java/org/openrewrite/java/ChangeType.java#L272
For this test
https://github.com/openrewrite/rewrite/blob/1d8b3c3eb8616a84ecd0de1d44f2feb7f393a1ae/rewrite-java-test/src/test/java/org/openrewrite/java/ChangeTypeTest.java#L164-L166
Because everything up to java. is a J.FieldAccess, all of it ending up in maybeClass, whereas that should only contain the simple class name.


Skip current file or directory when traversing a directory using find

Would it be possible to define a function which skips current file or directory when traversing a directory using find?
For example Ruby has Find::prune, and Go has SkipDir for this purpose. Do you have any idea to define it in turtle?

Sorry for the late response.
You can just use guard or any pattern-match failure to skip a directory.
For example:
example :: Shell FilePath
example = do
    file     <- find (has "foo") "."     -- Loop over all files with "foo" in their name
    Just ext <- return (extension file)  -- If the pattern match fails, skip this file
    guard (ext == "txt")                 -- If the test fails, skip this file
    return file

More generally, anything that calls empty or mzero (like guard does) will skip the current file.

The Shell monad is trippy!

Yeah, the shell monad behaves the same way as the list monad.  In the list monad, you can abort the current branch using guard/mzero/empty/pattern-match-failure, too:
example :: [(Int, Int)]
example = do
    x <- [1, 2]
    y <- [3, 4]
    guard (even (x + y))
    return (x, y)

-- example = [(1, 3), (2, 4)]

Ah sorry, I should have clarified what I wanted more specifically.
Suppose you'd like to list up all git repositories under a given root directory. The following snippet can do the job.
{-# LANGUAGE OverloadedStrings #-}
import Prelude hiding (FilePath)
import Turtle
import System.Environment

main :: IO ()
main = do
  dir:_ <- getArgs
  view $ findGitRepos $ fromString dir

findGitRepos :: FilePath -> Shell FilePath
findGitRepos rootDir = do
  path <- lstree rootDir
  isDir <- liftIO $ testdir path
  guard isDir
  hasDotGit <- liftIO $ testdir $ path </> ".git"
  if hasDotGit
    then return path
    else empty

What I'd like to archive here is that to prevent lstree (or find) from traversing further child directories when a .git directory is found. Find.prune or SkipDir exist for exactly this purpose, whereas IIUC empty just skips the current entry and will continue the further traverse. This feature is quite important if you have a huge git repositories (like GHC) under rootDir.

lstree is implemented in terms of ls like this:
lstree :: FilePath -> Shell FilePath
lstree path = do
    child <- ls path
    isDir <- liftIO (testdir child)
    if isDir
        then return child <|> lstree child
        else return child

The only thing you'd have to change is to add another test to decide whether to descend (by taking the second branch of the if), like this:
prune :: IO Bool -> FilePath -> Shell FilePath
prune test path = do
    child <- ls path
    isDir <- liftIO (testdir child)
    continue <- liftIO test
    if isDir && continue
        then return child <|> lstree child
        else return child

Is that what you need?

I'd expect test to be FilePath -> IO Bool.

Oops, yes, test should take the file path as an argument.

Sorry for the late reply. I was thinking something like https://hackage.haskell.org/package/hierarchy-0.1.1/docs/Pipes-Tree.html#v:winnow.

Okay, so the rough API I'm aiming for is this:
??? :: (FilePath -> IO Bool) -> FilePath -> Shell FilePath
??? test path = do
    child <- ls path
    isDir <- liftIO (testdir child)
    if isDir
        then do
            continue <- liftIO (test child)
            if continue
                then return child <|> ??? test child
                else return child
        else return child

The only thing that's missing is a good name for this function.  I might suggest lswhen but I'm open to other suggestions.


Scrollbars not setted until first mousewheel event.

Issue Summary
Browsers tested: Chrome + Safari  in mac
Current Behavior
When Scrollbar initalizes, the scrollbars and functions like scrollTo are not set until user scrolls.
Steps to Reproduce
I have a staging here -> http://www.ssll.zalo.nyc/
You can see what I'm saying in two ways:

Load the home (http://www.ssll.zalo.nyc/) and try to click on the arrow to scroll down. It doesn't work until you scroll a little with the mouse.

In the console you can play with the scrollbar instance under the var Scroll. To test it you can use the function Scroll.scrollTo(0, 50, 1700); (it only works after user has been scrolled)

Online demo
http://www.ssll.zalo.nyc/

I think this issue is due to dynamically inserted contents. I would suggest you to call scrollbar.update(true) after appending contents.
P.S. true will force an asynchronous update (uses requestAnimationFrame).

A) I'm using scroll.update and it doesn't work in the first load.
B) the first load is not rendering dynamic contents, it's a plain php without ajax (only some images are load asynchronously, but they replace an existing low res image)
Zalo Lorza Planes
US: +1<PHONE_NUMBER>
ES: +34 686 513 584
<EMAIL_ADDRESS>www.zalo.cat
El 22 juny 2017, a les 2:11 a. m., Dolphin Wood<EMAIL_ADDRESS>va escriure:

I think this issue is due to dynamically inserted contents. I would suggest you to call scrollbar.update(true) after appending contents.
P.S. true will force an asynchronous update (uses requestAnimationFrame).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

So what about calling scrollbar.update() (synchronously) in click event
handler?
2017年6月23日(金) 0:33 zalolorzaplanes<EMAIL_ADDRESS>
A) I'm using scroll.update and it doesn't work in the first load.
B) the first load is not rendering dynamic contents, it's a plain php
without ajax (only some images are load asynchronously, but they replace an
existing low res image)
Zalo Lorza Planes
US: +1<PHONE_NUMBER>
ES: +34 686 513 584
<EMAIL_ADDRESS>www.zalo.cat
El 22 juny 2017, a les 2:11 a. m., Dolphin Wood<EMAIL_ADDRESS>va escriure:

I think this issue is due to dynamically inserted contents. I would
suggest you to call scrollbar.update(true) after appending contents.
P.S. true will force an asynchronous update (uses requestAnimationFrame).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/idiotWu/smooth-scrollbar/issues/79#issuecomment-310416756,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFvmEBCKzqTnPIp-28P1gWKauQatjACpks5sGolbgaJpZM4OB1fd
.

--
Dolphin Wood

It works! thanks!


WIP: Add JMH benchmark to determine the overhead of the agent

Codecov Report

Merging #61 into master will increase coverage by 0.01%.
The diff coverage is 84.21%.

@@             Coverage Diff              @@
##             master      #61      +/-   ##
============================================
+ Coverage     75.28%   75.29%   +0.01%
- Complexity      545      547       +2
============================================
  Files            71       71
  Lines          1922     1919       -3
  Branches        143      146       +3
============================================
- Hits           1447     1445       -2
+ Misses          399      397       -2
- Partials         76       77       +1

Impacted Files
Coverage Δ
Complexity Δ

...main/java/co/elastic/apm/web/WebConfiguration.java
95.12% <ø> (ø)
2 <0> (ø)
:arrow_down:

...rc/main/java/co/elastic/apm/servlet/ApmFilter.java
78.74% <100%> (+2.22%)
39 <0> (-1)
:arrow_down:

...src/main/java/co/elastic/apm/impl/context/Url.java
100% <100%> (ø)
15 <1> (ø)
:arrow_down:

...ain/java/co/elastic/apm/impl/ElasticApmTracer.java
79.2% <50%> (-0.48%)
33 <2> (ø)

...n/java/co/elastic/apm/matcher/WildcardMatcher.java
95.38% <84.61%> (-3.11%)
40 <3> (+3)

Continue to review full report at Codecov.

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


Consistent tab indentation for all source files

This is hygiene PR. I have changed semi-automatically indent in all .less and .tmpl files to use tabs, same as for .go files. Also I have indented all .tmpl files consistently:

Indents both HTML containers such as <div>, <p> and Go HTML template blocks such as {{if}} {{with}}
Cleans all trailing white-space
Adds trailing last line-break to each file

This change only changes indention not content, so git blame -w ... still works well (where -w means ignore whitespace).
This may help Gogs opening for more contributors.

Hi, thanks your work!
But the diff is too large and GitHub does not allow me to review it and I've spotted some incorrections.
And .go files are not needed for this process as you should always use gofmt.
So why don't we separate it into two steps, first .less files and them .tmpl files?

But the diff is too large and GitHub does not allow me to review it and I've spotted some incorrections.

Click on 2 individual commits, 1st for .less, 2nd for .tmpl.

And .go files are not needed for this process as you should always use gofmt.

I didn't touch .go files.

So why don't we separate it into two steps (PRs), first .less files and them .tmpl files?

Both are separated into 2 commits, so changes are independent.

OK... Just to make sure that everything is changed to 1 tab?

OK... Just to make sure that everything is changed to 1 tab?

Yes, single indent == 1 tab for all .less & .tmpl files.
(I simply followed Go indent that uses tabs, also .editorconfig file suggest that tabs should be used exclusively.)

Thank you very much!