Possible memory leak when parsing mails in a loop

Hello, I recently discovered that the library seems to be leaking memory when used to parse multiple emails in a loop.
<?php declare(strict_types=1);

use ZBateson\MailMimeParser\Message;

echo "Memory usage before: " . (memory_get_usage() / 2**20) . PHP_EOL;
echo "Memory peak usage before: " . (memory_get_peak_usage() / 2**20) . PHP_EOL;

$i = 0;
while ($i++ < 100) {
    $message = Message::from('whatever-string-content', true); //doesn't matter if attached param is true or false
    unset($message);

    $usage = round(memory_get_usage() / 2**20, 2);

    echo 'Current memory usage: ' . $usage . ' MB' . PHP_EOL;
}

echo "Memory usage after: " . (memory_get_usage() / 2**20) . PHP_EOL;
echo "Memory peak usage after: " . (memory_get_peak_usage() / 2**20) . PHP_EOL;

Playground with the issue replicated: https://play.phpsandbox.io/zbateson/mail-mime-parser/oqy8M5NeDDKGABzl
I'm always passing the contents of the message as a string to Message::from() factory. From what I've tested, it's the same using the other approach, e.g.: https://play.phpsandbox.io/zbateson/mail-mime-parser/mN7g4E117xEWn281
I found a "fix" to this, by calling gc_collect_cycles() in the loop after instantiating the message:
<?php declare(strict_types=1);

use ZBateson\MailMimeParser\Message;

$i = 0;
while ($i++ < 100) {
    // ... do everything as before

    gc_collect_cycles(); // -> With this at the end of the loop the issue is solved
}

Is this correct behaviour? Thanks a lot.

Hi @t0maash77 --
Yeah, that's just how "safe" languages work.  Internally when you delete an object the memory isn't recovered till garbage collection deems it necessary to happen (or you manually instruct it to).
All the best,
Zaahid


Exclude $id from dereferenced schemas

when using $RefParser.dereference resolved referenced objects have the $id property as per the resolved schema, this can cause $id clashes using the schemas with other tools relying on multiple schemas, as per: https://github.com/nearform/openapi-transformer-toolkit/issues/179
would you consider the possibility to add an option to dereference() in order to prevent adding $id to the resolved schemas?
as an example of usage:
consider the following schemas
Post.json

{
  "title": "Post",
  "type": "object",
  "properties": {
    "postId": {
      "type": "string"
    },
    "titleTx": {
      "type": "string"
    },
    "postTx": {
      "type": "string"
    },
    "author": {
      "$ref": "User.json"
    },
    "comments": {
      "type": "array",
      "items": {
        "$ref": "Comment.json"
      }
    }
  },
  "required": [
    "postId",
    "titleTx"
  ],
  "$id": "Post.json"
}

User.json

{
  "title": "User",
  "type": "object",
  "properties": {
    "userId": {
      "type": "string"
    },
    "userNm": {
      "type": "string"
    },
    "emailAddr": {
      "type": "string"
    }
  },
  "required": [
    "userId",
    "userNm"
  ],
  "$id": "User.json"
}

The dereferenced Post schema would be:
Post.json

{
  "title": "Post",
  "type": "object",
  "properties": {
    "postId": {
      "type": "string"
    },
    "titleTx": {
      "type": "string"
    },
    "postTx": {
      "type": "string"
    },
    "author": {
      "title": "User",
      "type": "object",
      "properties": {
        "userId": {
          "type": "string"
        },
        "userNm": {
          "type": "string"
        },
        "emailAddr": {
          "type": "string"
        }
      },
      "required": ["userId", "userNm"],
      "$id": "User.json"
    },
    "comments": {
      "type": "array",
      "items": {
        "$ref": "Comment.json"
      }
    }
  },
  "required": ["postId", "titleTx"],
  "$id": "Post.json"
}

with a configuration flag like dereference({removeResolvedIds:false}) the output schema in the example would not have the  "$id": "User.json" in the author property

Cant you just recursively iterate over the properties and remove $id? It is valid JSON schema to include it so I dont think it's the responsibility of this library to provide that option

We had already solved it on our side, as you can see from the linked issue, we just thought it may make sense to include the feature directly in the library, so we took the time to create the issue.


Documentation link

Can the following readme be added to the repo or an external link provided?
https://github.com/Azure-Samples/Custom-vision-service-iot-edge-raspberry-pi/blob/397d17e0d536ae972b76b43caea47f6b0e9070f7/modules/ImageClassifierService/readme.txt#L25

Hello,
I removed the pointer to AzureML since this sample does not use AzureML. If you want to learn more about how to use CustomVision with AzureML, you can go to the CustomVision website (free), create a small project, export it as a docker container and in the downloaded zip file you will get all the instructions to use CustomVision with AzureML.


Hi, I added optional parameters for the ESP 32

They allow to select the TX and RX pin as well as inverting or non inverting mode. Tested and working fine on the ESP32  and on  the ATmega 328 platform. I'm using it on my ESP32 RC engine sound & light controller as well as on my "Micro RC" 2.4GHz receiver.
I did not change anything else in the code, so it should merge without issues.

These changes worked with my TinyPICO, thanks!


request: tag/release gravity SDK module

ABCI applications wishing to integrate the gravity bridge as it exists today would have to resort to Go's default dependency version management, e.g.:
require (
	github.com/peggyjv/gravity-bridge/module v0.0.0-20210629194415-c9d37207deff
)

The following lists no versions:
$ go list -m -versions github.com/peggyjv/gravity-bridge/module

Instead, we should consider tagging/releasing the sub-module itself. e.g.:
$ go list -m -versions github.com/hashicorp/vault/api

github.com/hashicorp/vault/api v1.0.1 v1.0.2 v1.0.3 v1.0.4 v1.1.0

Fixed by @jackzampolin. I would recommend this gets integrated into the release flow automatically.


olapR links are broken

olapR links are broken:
https://github.com/MicrosoftDocs/machine-learning-server-docs/blob/live/sql/machine-learning/r/ref-r-olapr
where can I find olapR package code?

@minemR
The package is included in SQL Server Machine Learning Services and SQL Server 2016 R Services.  Please see this document for a location depending on your version: olapR (R package in SQL Server Machine Learning Services)

@s-polly Can olapR be used without installing SQL Server Machine Learning Services or SQL Server 2016 R Services?

@minemR  I don't believe it can. The documentation I can find doesn't indicate as such. To get faster help I suggest you go to Microsoft Q&A and see if you can find an answer there.

#please-close


Set template framework to latest

Update the template wizard to set template projects to the latest supported target framework version.

Looked at the change, and while it looks good, the problem with this approach is that you never actually update the dependencies in the project.json nor generate an updated .csproj. Meaning that yes, you change the target framework version, but the project is still using ASP.NET Core 1.0, when it should be using the version of ASP.NET that matches the target version.
We really need to have separate 1.1, and now 2.0, project templates.

I am going to close this, as the framework chooser dialog is a better solution.


doesn't open Dreamview

From build to bootstrap.sh, everything works, but doesn't open Dreamview

I saw the same issue.

Can you be more specific about how Dreamview is not working? Also taking a look at logs under data/log/dreamview* will also help reveal things that went wrong.

Hi,syangy,
I just followed the README in https://github.com/ApolloAuto/apollo/tree/master to try to build and run the dreamview.
The dev PC is a Lenovo ThinkPad without nVidia GPU. The Ubuntu version is 16.04 installed the docker-ce per docker.io suggested linux installation steps and also added the user in order to use docker without sudo.   The docker version is 17.09.1-ce and go version is 1.8.3 and gcc version is 5.4.0.
The build and run steps are:
(1)git clone https://github.com/ApolloAuto/apollo.git
(2)cd apollo
(3)bash docker/scripts/dev_start.sh
(4)bash docker/scripts/dev_into.sh
#in dev docker
(5)./apollo.sh clean
(6)bash apollo.sh build
(7)bash scripts/bootstrap.sh
Every step seems OK except no ESD and no GPU warnings.
The issue is that http://localhost:8888 cann't be reached or accessed from Chrome browser after Step(7).
By the way,I have tried ./apollo.sh build_fe before or after step (6)bash apollo.sh build,I got the error message as:
System check passed. Build continue ...
[WARNING] ESD CAN library supplied by ESD Electronics does not exist. If you need ESD CAN, please refer to third_party/can_card_library/esd_can/README.md.
yarn build v0.27.5
warning package.json: License should be a valid SPDX license expression
$ ./setup.sh; node_modules/.bin/webpack -p --progress
./gen_pbjs.sh: line 32: node_modules/protobufjs/bin/pbjs: No such file or directory
./gen_pbjs.sh: line 38: node_modules/protobufjs/bin/pbjs: No such file or directory
sh: 1: node_modules/.bin/webpack: not found
error Command failed with exit code 127.
I also tried "npm install pbjs" to try to fix the error.It didn't work.
I checked data/log/dreamview.out per your suggestion.There is nothing in the dreamview.out file.
So the dreamview doesn't work.
Pls help to figure it out.
Thanks a lot for your help in advance!
-Alex

@hushuitian @siyangy
Thank you, it has been resolved.
Found a solution under other issues
Is a question about PCL Lib
I can already see Dreamview after recompiling PCL Lib
#3615

@hushuitian You can run ./scripts/dreamview.sh start_fe to see how it exits abnormally, and if it crashed there would be a core dump file generated under /apollo/data/core, and you can use gdb to look into it.
Also the frontend code is precompiled so you don't need to do ./apollo.sh build_fe.


Replace &Option<T> with Option<&T>.

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Actually, I file this issue because I just remember we've ever done the same thing in arrow-rs: https://github.com/apache/arrow-rs/issues/1556
And I find a discussion about the trade-off between &Option<T> and Option<&T>: https://www.reddit.com/r/rust/comments/wqsxk2/is_it_better_to_pass_optiont_or_optiont/
Describe the solution you'd like
A clear and concise description of what you want to happen.
It isn't the goal to replace all the occurrences of &Option<_>, but to do the replacement if we can benefit from it.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
We could not do this
Additional context
Add any other context or screenshots about the feature request here.

I can't think of a valid reason to ever return &Option<T>, so :+1:


Request Deployment for DreyerX Mainnet

Chain Name
DreyerX Mainnet
Chain ID
23451
RPC URL
https://rpc.dreyerx.com
Block Explorer URL
https://scan.dreyerx.com
Deployment Funds
Yes

Contrary to the issue description, deployment funds have not been sent, so I have not deployed
$ cast balance 0x05f32b3cc3888453ff71b01135b34ff8e41263f2 --rpc-url https://rpc.dreyerx.com
0

Done, thanks!


[Snyk] Security upgrade mlflow from 1.30.1 to 2.12.1

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

requirements.txt

⚠ Warning
kedro 0.18.14 has requirement importlib-metadata<5.0,>=3.6; python_version < "3.8", but you have importlib-metadata 6.7.0.

Vulnerabilities that will be fixed
By pinning:

Severity
Priority Score (*)
Issue
Upgrade
Breaking Change
Exploit Maturity

663/1000  Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 5.4
Improper Access Control SNYK-PYTHON-MLFLOW-6859930
mlflow:  1.30.1 -> 2.12.1
No
Proof of Concept

768/1000  Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 7.5
Path Traversal SNYK-PYTHON-MLFLOW-6860431
mlflow:  1.30.1 -> 2.12.1
No
Proof of Concept

(*) Note that the real score may have changed since the PR was raised.
Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.
Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Improper Access Control

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

Project coverage is 99.90%. Comparing base (64b8e94) to head (d9e8a44).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #555   +/-   ##
=======================================
  Coverage   99.90%   99.90%
=======================================
  Files          29       29
  Lines        1021     1021
=======================================
  Hits         1020     1020
  Misses          1        1

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


add array(len, fillFunction?)

Because who wants to constantly write new Array(len).fill().map(...)?

added


fix: set xec as default currency

Related to https://github.com/PayButton/paybutton/issues/313

Description

Changed default currency to be XEC instead of BCH

Test plan
Run story book using this steps
Check if the components are set to pay with XEC by default

I noticed that there's some 'EUR' currency examples in there but I'm fine leaving them as we'll eventually add EUR exchange rates down the road.


Notification read in Participating is unread in Everything

If I read a notification in the Participating list and then go to the Everything list, it's marked as unread.
This could be some variant of #117.

Browser
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36

Also hitting this.


fix(SharedMethods): change FindEvenInactive to search all loaded scenes

Search all loaded scenes instead of just the active scene

merged 3.3.0


Uploads to iTunes Connect fail when framework's Info.plist versions do not conform to %d.%d.%d format

Hi,
I've encountered with en error uploading my app integrated with 'Instructions' framework to the store. That's because Instructions.framework has '1.0.0-beta.1' version number.  Please see screenshot.

I work with XCode 8.3.2
Thanks for help

Sorry about that @dmitrysimkin. Oversight on my end.
I assume you're using Carthage. Once in the project directory, you can use the following commands to change the version strings:
$ defaults write $PWD/Carthage/Build/iOS/Instructions.framework/Info.plist CFBundleShortVersionString 1.0.0
$ defaults write $PWD/Carthage/Build/iOS/InstructionsAppExtensions.framework/Info.plist CFBundleShortVersionString 1.0.0

The beta phase will be very quick.

Thanks!


Add option to select color field in selectable_axes_plot

Building on the recent generalizations of the selectable_axes_plot, this branch starts to add functionality to allow for selcting a field that controls the color of the points.

Commit history got messed up, closing in favor of #374.


This has a couple of advantages:

Adheres to the Open/Closed principle as you will not have to touch the DomServiceProvider again for registering more macros (which is very likely).
Co-locates the name of the macro with its direct behaviour, unlike the "classic" way of macro registration.
You don't have to invoke app()->call(...) as the underlying mixin registration does all of the heavy lifting for you.

I have also gone ahead and made 2 other small changes to DomServiceProvider, namely:

Renamed register to boot. Even though the macro registration works perfectly fine in register, it is semantically not correct as the official Laravel documentation commands to only bind services to the container.
As the primary purpose of the package is to enhance test assertions, I've wrapped the macro registration in an if-check for slight performance improvements.

Thanks for the package 🙏

Sounds like a good idea. I cannot recall why I chose the other way. I'll get this merged


fix osx-install structure

add salome.patch

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Screen flickering between menu option change via keystroke

That is because we recreate the panel on each keystroke. When it is already open we must only repopulate de SelectItemView items.


Update cats-effect, cats-effect-laws, ... to 3.0.0-RC2

Updates

org.typelevel:cats-effect
org.typelevel:cats-effect-laws
org.typelevel:cats-effect-testkit

from 3.0.0-M5 to 3.0.0-RC2.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (3.0.0-M5).
You might want to review and update them manually.
website/src/hugo/content/changelog.md

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel" } ]

labels: library-update, semver-pre-release, old-version-remains

#4471


Feature: keystaticToAstroCollections

As mentioned in https://youtu.be/6l2YWCyPsWk, it would be great to have a keystaticToAstroCollection utility exported by @keystatic/astro to translate the Keystatic config to the Astro collections config.
Example usage:
// src/content/config.ts
import keystaticConfig from "../../keystatic.config"
import { keystaticToAstroCollection } from "@keystatic/astro"

const keystaticCollections = keystaticToAstroCollection(keystaticConfig)

export const collections = {
	...keystaticCollections
}

I made some experiments at the type level but collections and singletons specific types are lost once past to the config

💯 yes this
I was looking further into astro content collections (and zod specifically) and actually think we could go both ways:
As an easy way to start with Keystatic, you can introspect the content collection types and (for the most part) convert them into keystatic collections. It would miss some features like field descriptions and labels but it'd be neat for people already using content collections and things like validation rules could mostly come across.
Then, if you're using keystatic schema (or if you migrate from zod types to keystatic to get more UI customisation) it would make sense to go the other way as well, generate content collection types from keystatic. Zod types are useful for validation / etc as well, so I don't think it would actually be limited to astro, although a high level API that exports the content collections definition like you suggest would be very neat.
Adding this to the roadmap 🗺

Awesome! Is the roadmap public?

me, on slack, five minutes ago:

... feels like maybe I should write up a readme on all the stuff we've discussed / planned / ideas, but not thought through fully or implemented yet

without wanting to get too much into "making promises that could change as we learn more" I'm really keen to write something up, yeah, especially to get feedback on design / priorities of things etc. before we actually implement them
will either post something to the docs site, or a discussion, soon and let you know 🤞

in the meantime by the way @florian-lefebvre I know we've been a bit slow to reply to the issues you've opened in the last week, but it's great getting feedback and questions, please do keep it coming and we will get through the backlog 🙌
thanks!

I will keep creating issues as I have feedbacks 👍
Regarding the roadmap, I think you could use a simple GitHub project so that you avoid duplication and allow the community to contribute/discuss

Came across this today -> https://github.com/gxjansen/Astro-CC2KS. Haven't tried it out, but looks promising.

To broaden the scope a bit, it would be ideal, if this could be extended to also work for Keystatic-fields.mdx-components. In https://github.com/Thinkmill/keystatic/discussions/1290 I am looking for a way to add types to the Keystatic-RTE-preview and Astro <Content components=* />-component.


Revision 374: libatomic.so.1 error

The issue from #8 appears to have returned:
2024-05-28T11:52:07-04:00 zwave-js-ui.zwave-js-ui[1604]: node: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory
I am currently on revision 374:
Name         Version  Rev  Tracking     Publisher       Notes
zwave-js-ui  v9.12.0  367  latest/edge  giaever-online  disabled
zwave-js-ui  v9.12.0  374  latest/edge  giaever-online  -

Using sudo snap revert zwave-js-ui to revert to revision 367 got me working again for now.

Thanks,
Seems to only affect armhf. I've staged it. Should be a new release available in 30 minutes ish

Dang, sorry for not providing my architecture.  Will do next time.
Nice job pinpointing the issue, and thanks for the amazingly fast response!

Confirmed that revision 378 is working. Thanks!

Released. Please give it a try!


What's the version of pytorch? cpu or gpu?

when solving the environment, i encountered some problem.
I followed the instruction at first, but failed to install "gym", i thus followed a closed issue mentioned previously.
but after that, when i typed "bash scripts/train.sh", the output are as follow:
TYPE  state+image
Found 1 GPUs for rendering. Using device 0.
camera traj len: 50
Working directory: logs/robot_reach/sacv2_3d/default/0
Traceback (most recent call last):
File "src/train.py", line 240, in
main(args)
File "src/train.py", line 104, in main
assert torch.cuda.is_available(), 'must have cuda enabled'
AssertionError: must have cuda enabled
I am now wondering if i have installed the right version of pytorch.
Could you offer any help or instructions about that? many thanks!

Supplement:
(rl3d) user@user-System-Product-Name:~/rl3d-main$ conda list pytorch
packages in environment at /home/user/miniconda3/envs/rl3d:

Name                    Version                   Build  Channel
pytorch                   2.1.0           cpu_py38hab5cca8_0    defaults

I have updated my torch to gpu version and it works.


Rendering to a Image no longer works since #10520

Bevy version
https://github.com/bevyengine/bevy/commit/44424391fe217d9b0b4b0be2649b44a994983a59
What you did
I updated my library bevy_smooth_pixel_camera  to https://github.com/bevyengine/bevy/commit/44424391fe217d9b0b4b0be2649b44a994983a59 (I know that it's caused by this exact commit)
What went wrong
The viewport texture is no longer updated unless I move my cursor or resized the window.
This means the viewport texture is not getting updated by the world camera (Which is supposed to render to that texture via RenderTarget::Image). It updates when I move my cursor because of my update_viewport_size system, which only runs when the Window is changed. This system, among other things, resizes the viewport texture with Image::resize. And that appears to make the texture update for some reason.
Additional information
Here is the source code that reproduces this issue.

duplicate of https://github.com/bevyengine/bevy/issues/11240

Ah my bad


Skip test_up_bridge_solver_numeric on MacOS

This is temporary because of a crash during UP solve().

Not needed thanks to #295


Change the use statements for smart contracts

Motivation
The smart contract code has some use statements with use linera_views::.
This is not great, since we want to use only the linera_sdk.
Proposal
The following was done:

The use linera_views::* is eliminated because it is not great code, also it leads to code such as use linera_sdk::views::views::ViewError.
It is replaced by adequate use linera_views::views::ViewError and similarly for other variables.
The use linera_views are eliminated from the smart contract code.

Test Plan
The CI.
Release Plan
It is possible that the manual needs to be updated.
Links

reviewer checklist

Need to run cargo +nightly fmt inside examples :)


Fix REF_PRINT_COUNT argument in ecx_key_free

Currently, when configuring OpenSSL using -DREF_PRINT the following
compilation error is generated:
In file included from include/crypto/ecx.h:21,
                 from crypto/ec/ecx_key.c:11:
crypto/ec/ecx_key.c: In function 'ecx_key_free':
crypto/ec/ecx_key.c:65:32: error: 'r' undeclared
(first use in this function)
   65 |     REF_PRINT_COUNT("ECX_KEY", r);
      |                                ^
include/internal/refcount.h:169:40: note: in definition of macro
'REF_PRINT_COUNT'
  169 |         fprintf(stderr, "%p:%4d:%s\n", b, b->references, a)
      |                                        ^
crypto/ec/ecx_key.c:65:32: note: each undeclared identifier is reported
only once for each function it appears in
   65 |     REF_PRINT_COUNT("ECX_KEY", r);
      |                                ^
include/internal/refcount.h:169:40: note: in definition of macro
'REF_PRINT_COUNT'
  169 |         fprintf(stderr, "%p:%4d:%s\n", b, b->references, a)
      |                                        ^
make[1]: *** [Makefile:14929: crypto/ec/libcrypto-lib-ecx_key.o] Error 1

This commit updates the argument passed in to be the ECX_KEY* key.

This pull request is ready to merge

Thanks for fixing. Merged to master.


Fix/cachefactmat

Fixes an instability that arises due to cacheing the inverse of the covariance matrix rather than the factorized matrix. See issue #59.
Includes the following changes:

Alters the _prepare_likelihood method of GaussianProcess to cache the factorized matrix rather than the inverse
Modifies several other GP routines to use the factorized matrix rather than the inverse
Changes the MICEFastGP method to compute the inverse explicitly (as the Woodbury matrix identity requires explicitly forming the inverse) rather than using the factorized matrix
Modifications to unit tests to account for these changes (note: I had to remove one of the unit tests for drawing samples from the normal approximation, which was broken. I simply commented it out, as we will be externalizing the fitting from the GP class so I will deal with it then)

Codecov Report

:exclamation: No coverage uploaded for pull request base (devel@d510680). Click here to learn what that means.
The diff coverage is 97.43%.

@@           Coverage Diff            @@
##             devel      #62   +/-   ##
========================================
  Coverage         ?   85.39%
========================================
  Files            ?       26
  Lines            ?     4983
  Branches         ?        0
========================================
  Hits             ?     4255
  Misses           ?      728
  Partials         ?        0

Impacted Files
Coverage Δ

mogp_emulator/tests/test_SequentialDesign.py
96.57% <ø> (ø)

setup.py
0% <0%> (ø)

mogp_emulator/GaussianProcess.py
92.85% <100%> (ø)

mogp_emulator/tests/test_GaussianProcess.py
99.17% <100%> (ø)

mogp_emulator/SequentialDesign.py
94.57% <100%> (ø)

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 d510680...87629ed. Read the comment docs.

Turns out that scipy has a cho_solve routine (I thought that solve was smarter than it actually is!), so I fixed it up to use those instead.


Hotkeys for changing labels for polygons and bounding boxes

My actions before raising this issue

[x] Read/searched the docs
[x] Searched past issues

When drawing polygons, if you put a point outside the border of the image, after completing the shape, that point is projected onto the edge of the image. Because of this, the line attached to this point also moves out.
Video of the problem: https://drive.google.com/file/d/1U37pZPXsa4aJmCGS16DrlO6L92wAGYNg/view?usp=sharing
Expected Behaviour
After the polygon with a point outside the image boundary is completed, the point is not projected, but the resulting shape is clipped along the image boundaries.
Current Behaviour
After the polygon is finished, the points lying outside the image boundaries are projected onto the image boundaries.
Possible Solution
Crop anything outside of the image.
Context
Point projection changes the drawn shape, which is inconvenient.
 No
Operating System and version (e.g. Linux, Windows, MacOS): GNU/Linux Ubuntu
4.15.0-136-generic
x86_64

Looks like issue title does not correspond to the issue description.
The problem from the description has been solved by #3048
The problem from the title is gonna be solved by #3070
I'll rename the issue and close it because it was already solved.
We will merge the PR with shortcuts for labels ASAP
@nstolyarov FYI


It won't let me add CopIt.crx to Chrome

I used to just drag and drop the file, but for some reason it won't let me anymore. How else can I add the CopIt file to the chrome extensions? Thanks.

I'm having no issue with drag and drop in Version 60.0.3112.90 (Official Build) (64-bit)
Check and make sure you also have enabled Developer Mode

I got it up and running, if you need any kind of help I will gladly do so! Email me at<EMAIL_ADDRESS>

It just started working, I don't know what I was doing wrong! I have one
quick question- everytime I shut down chrome, it makes me re-install the
extension since it is not in the app store. Is there a way to stop this?
Thanks.
On Wed, Aug 16, 2017 at 8:52 PM, PlayboyIsaac<EMAIL_ADDRESS>wrote:

I got it up and running, if you need any kind of help I will gladly do so!
Email me at<EMAIL_ADDRESS>—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/carl1to/Cop-It-Supreme-Bot/issues/3#issuecomment-322938797,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYyODykbnf5I6f3bYxirbrTsVNoc4PpKks5sY469gaJpZM4N-Q4m
.

Honestly, I don't think so. I tried to find out a solution to stop it from doing so and all the forums say it's basically impossible. You can install Chromium, but that's not worth it in my opinion. I'll personally pay the $5 just to upload it to the Chrome Store.

Ah oh gotcha. And yeah, I would gladly split those fees with you! I will
definenlty support this project. Have you copped anything big with the bot?
I got a Michael Jackson tee with it last season and hopefully get some big
stuff this upcoming season!
On Sat, Aug 19, 2017 at 11:43 PM, PlayboyIsaac<EMAIL_ADDRESS>wrote:

Honestly, I don't think so. I tried to find out a solution to stop it from
doing so and all the forums say it's basically impossible. You can install
Chromium, but that's not worth it in my opinion. I'll personally pay the $5
just to upload it to the Chrome Store.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/carl1to/Cop-It-Supreme-Bot/issues/3#issuecomment-323561566,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYyOD323MwBwzPhNBwmn9OP7gpGw2SM4ks5sZ6tJgaJpZM4N-Q4m
.

Sorry for delay.
If it doesn't work on Google Chrome then try Chromium.


Enhancing the submit button

Add some dynamic styling to the submit button for better user interaction

I can work on this issue

Uploading sql-dev-tools.mp4…

https://github.com/PranabKumarSahoo/sql-dev-tools/assets/141832113/979d6c45-9ba4-4ddf-83ba-a2a1d0ff47e3

Looks nice @KhushiAgarwal-01, ⭐
Have you added this dynamic UI button for all sections!?
Because in this project, latest new 2 tools/sections are added. Have you added in these also!?
If Yes, can you show me the changes through video for all sections!?
Otherwise, you can raise the PR.
Thanks for the Contribution!

If you have any questions or need clarification, don't hesitate to ask in the comments or on Discord.
#Good luck! ✌


CON-2726 Moved subscribers in favor of adding them inside the theme.

Coverage decreased (-0.02%) to 19.348% when pulling 729ee17b7b95ec83657bf8d975abd554032d5e40 on CON-2726-move-common-subscriptions into b078aa4d46390f3a029df32ba54991558785b95b on master.


Babel Error

Nextjs14 and pnpm got babel error.
  ⨯ ../../node_modules/.pnpm/@sjmc11+tourguidejs<EMAIL_ADDRESS>Module parse failed: Unexpected token (37:13)
: You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
 |      * Primary elements
 |      */
 >     backdrop : HTMLElement
 |     dialog : HTMLElement
|
 Import trace for requested module:../../node_modules/.pnpm/@sjmc11+tourguidejs<EMAIL_ADDRESS>./src/utils/tourguide.tsx

Hi @jmanos - this could possibly be down to babel or webpack configuration.
I suggest making sure TypeScript and babel-loader are installed in your project & your babel config includes the typescript preset:
{   "presets": ["@babel/preset-env", "@babel/preset-typescript"] }
If it's not that or webpack config related, re-open this issue & I will look into it further. Thanks


Surface texture inverted when dumping assets

When using the dump asset functionality the surface texturing seems to be having one axis inverted, as if the camera was behind the surface rather than in front. This most noticable where the texture contains text which appears as a mirror image when imported in the assset editor.

For me, it's when importing Furniture Factory


Shell is not a LinearRing

Expected behavior and actual behavior.
I would like to create a polygon with given coordinates, as per the User Manual. I am expecting to return a polygon  as shapely.geometry object
It works perfectly with other types of geometries, like points.
Steps to reproduce the problem.
The following script was written in a python3 shell.
`
Python 3.6.4 (v3.6.4:d48ecebad5, Dec 18 2017, 21:07:28)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

from shapely.geometry import Polygon
polygon = Polygon([(0, 0), (1, 1), (1, 0)])
Shell is not a LinearRing
`

Operating system
macOS High Sierra, version 10.13.3
Shapely version and provenance
~ $ pip3 show shapely
Name: Shapely
Version: 1.6.4.post1
Summary: Geometric objects, predicates, and operations
Home-page: https://github.com/Toblerity/Shapely
Author: Sean Gillies
Author-email<EMAIL_ADDRESS>License: BSD
Location: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
Requires:

I can't reproduce this bug report on my macbook.
Here's my program
# test_shapely.py
from shapely.geometry import Polygon

polygon = Polygon([(0, 0), (1, 1), (1, 0)])
print(polygon)

And here's the result of running it with Python 3.6 in a new virtual environment. I'm using the binary wheel on PyPI as you can see below.
vas-y:tmp seang$ mkvirtualenv -p /usr/local/bin/python3.6 foo
Running virtualenv with interpreter /usr/local/bin/python3.6
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/seang/envs/foo/bin/python3.6
Also creating executable in /Users/seang/envs/foo/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /Users/seang/envs/foo/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/seang/envs/foo/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/seang/envs/foo/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/seang/envs/foo/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/seang/envs/foo/bin/get_env_details
(foo) vas-y:tmp seang$ pip install shapely
Collecting shapely
  Downloading Shapely-1.6.4.post1-cp36-cp36m-macosx_10_9_intel.macosx_10_9_x86_64.whl (1.5MB)
    100% |████████████████████████████████| 1.6MB 72kB/s
Installing collected packages: shapely
Successfully installed shapely-1.6.4.post1
(foo) vas-y:tmp seang$ python test_shapely.py
POLYGON ((0 0, 1 1, 1 0, 0 0))

@Biaggio74 how did you install Shapely?

I've installed shapely like this:
$ pip install shapely
I am getting closer now as I created a fresh python virtualenv. In the virtualenv I did everything the same and the code runs properly. Just like yours ;)
But I am also using Jupyter Lab for visualisation of my maps, through Matplotlib and there I am unable to run the same code. Even if I start the Jupyter notebook in the same environment with:
$ jupyter lab

@perrygeo here is what I did now to make it work.

uninstall shapely and rasterio from the global space
create a fresh new virtual env
install shapely, rasterio,  AND jupyterlab  in the virtual env
Now it works for me. It seems even if I started Jupyter lab from the virtual env,  it was running on the global version, because I did not install it before to the venv. (my mistake) But since it did not complained I was fine. :)

only one error came back which I had before:
when src.transform * (0,0) I am getting this error:
`---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in ()
5 print(src.index(39.1,-6.88)[0])
6 print(src.index(39.1,-6.88)[1])
----> 7 print(src.transform * (0,0))
TypeError: can't multiply sequence by non-int of type 'tuple'`

Thanks for following up @Biaggio74 ! I'm going to close this. The remaining issue is either with rasterio or rasterstats, probably the former.


Instance property initializers aren't always moved to the constructor when necessary

Consider this example:
import * as Util from "./lib/util"
import Controller from "sap/ui/core/mvc/Controller"
@namespace("app")
export default class AppController extends Controller {
  static metadata = { /* ... */ }
  onClick = Util.debounce(100, () => this.onClickDebounced())
  onClickDebounced() {
    console.log("click!")
  }
}

In the example above, the onClick initializer is not moved into the constructor:
sap.ui.define([/* ... */], function(Controller, Util) {
  var _this = this;

  var App = Controller.extend("app.AppController", {
    // ...
    onClick: Util.debounce(100, function() {
      return _this.onClickDebounced();
    })
    // ...
  });
  return App;
});

From what I can see, the initializer is moved only when this is accessed in the initializer's scope. When this is accessed in a lambda expression (which binds this lexically and thus inherits it from the outer scope), the initializer isn't moved and gets transpiled as though it were on the UI5 factory method's scope.
I have a sneaking suspicion that this is related to the changed discussed in #15 as well, because as long as the argument to debounce() does not have to be transpiled, the initializer gets moved as intended. For example, onClick = Util.debounce(100, function(){ this.onClickDebounced(); }.bind(this)) works correctly...

Hey @Elberet . I fixed this in 7.0.0-rc7.
It was unrelated to #15. The check for this was not traversing into arrow functions. Based on the comment I made originally, it was an intentional omission, but I should I have left a TODO to go back to it.

Awesome! But before I grab the new RC and test it - are you sure that checking for this is actually the right approach?
For example:
import Control from "sap/ui/core/Control"
export default class Frob extends Control {
  clickTimestamps = []
  onClick() { this.clickTimestamps.push(Date.now()); }
}

People unfamiliar with how the plugin converts classes into .extend calls will probably not see any problem here, but in reality, as per the UI5 spec, clickTimestamp is added to the class' prototype. Since no instance of the class writes its own value, all instances of Frob access and modify the same clickTimestamps array.
Clearly, this isn't intended. This is why the prototype object should never contain any mutable values.
Based on that premise, the only initializers that can safely remain on the prototype are number literals, string literals, symbols, true, false, null, undefined and NaN. Everything else is either mutable, might return a mutable value, or might have a side-effect that would behave differently when the class is declared vs. when the class is instantiated.

It took me a bit to get to reproducing this situation. It looks like you are correct that clickTimestamps is shared being instances of the controller, which is likely not the expected behaviour.
I'm going to change the default behaviour and I'll introduce an option to keep the old. Good think v7 is still in rc so I can set the default to the one without a gotcha. I may add special logic (if it's not already there) for metadata and renderer props, but with a warning.

Are we talking about static or instance props metadata and renderer? For the static variant, those absolutely need special treatment so that UI5's extend-method does the right thing, but for the instance variant I beleive that neither is any special treatment required nor is there a reason to emit warnings.
After all, there's no technical reason why an object shouldn't be allowed to have a this.metadata property (it doesn't clash with this.getMetadata() after all) - and complaining about potentially misleading names is a job for an eslint plugin, not a Babel plugin. :wink:

I was referring to instance props metadata and renderer. I agree with you technically that they shouldn't have special treatment. I was just hoping to avoid breaking changes in some of my own apps ;)
You've convinced me that 'correct' is better. I'll go with the option to keep the old behaviour and default to the correct behaviour to move all instance props.

Updated in rc8 with the new default behaviour. Let me know if you encounter any issues.

I have two somewhat arcane observations:

Babel by default defines properties with a helper function that attempts to set non-writeable but reconfigurable properties through Object.defineProperty(), while this plugin "only" generates simple assignments. This is probably not a problem unless the user does something funny (e.g. override the new class' .extend class method after UI5 has decided to define that as a non-writeable property).

This is accepted without error:
const name = Symbol("_name")
class Test extends Controller {
  [name] = null
}

However, the output will contain this.name = null;. Assuming that calculated property names in instance property initializers are even a thing, this is wrong; and assuming that this syntax is invalid, it should raise an error instead of generating unexpected code.

I'd be open to using Object.defineProperty(). Did you mean for class properties or for adding properties to the return object? If this is definitely something you want, it's probably better to add an issue for it, otherwise, I may not get to it.

I created #21 for this issue.

I'm strictly referring to JS properties on the instance (this.prop) or class (AppController.prop) objects; I believe UI5 properties via the metadata configuration object should be well outside the scope of a code transpiler.
By the way, Babel has a helper for setting properties on an object, so why not just use that?


Different display of "Estimated Rental Fee" in different areas of the wallet.

In the area: "Create new namespaces"        = 17.28 XYM

In the area: "Details about a transaction" = 172.8 XYM

Version 1.0.5

Sry, my mistake.


Avoid multiple setClient calls in notifications.js

Follow-up to #317.
We should call setClient just once, as we just need a single connection.

Connection is opened twice for entire build


Revert python-sdk only changes in travis, and clean incubator keywords.

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[ ] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[ ] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @davorbonaci

LGTM. Merging.


Enable usage on Github Enterprise 2.20

When testing with my company's Github Enterprise, I found that the GraphQL queries were out of date. Since using this in an Enterprise environment is one of the goals, I updated some of the logic to support GE 2.20.
Most of the changes are behind the scenes, but I did add a "Use Legacy Queries" checkbox to the Login View.
I'm curious what you think about this, so for now, please review without merging.

I think support Github Enterprise 2.20 is necessary, but I have a question, I'm curious whether the API is backward compatible, if so, we can write the minimum API requirements in the README, otherwise supporting multiple API versions would be tough...

BTW, what do you think about moving the "Use Legacy Queries" checkbox to setting view someday? 😆

I'm curious whether the API is backward compatible

Not really. I only got it working because of how GraphQL works. I'm actually using the new API and just not querying the newer stuff.
That being said 2.20 is old enough that they dropped support lol. I don't know how to test it on other versions but it should work. In fact the "legacy API" should work with the current GitHub API.

I'm actually using the new API and just not querying the newer stuff.

Got it! I think separating newer/legacy looks good to me, it's good to get as much information as possible lol
(I'm starting to think a "API version" setting might be better than "Use Legacy Queries" check? But seems it's not easy..)

Well I guess if we just look at the schema we should be able to tell which is supported by the "new" API and which needs the "old" API. I'll look at it tomorrow

I (lightly) checked all the enterprise release documents. For our current state, I think we can support the following with this PR.
"New" API:

Github AE
Enterprise Cloud
3.2~3.3

"Legacy" API:

3.0~3.1 (Missing PullRequest.viewerLatestReview)
2.19~2.22 (Missing PullRequest.isReadByViewer and PullRequest.viewerLatestReview)

Unsupported (no GraphQL):
2.18 and below

I (lightly) checked all the enterprise release documents. For our current state, I think we can support the following with this PR.

Thanks for your investigation!

(The only thing I care about is users need to specify whether to use legacy API, but we can improve in the future)

Well, we could just use the legacy API for everyone. There are only two differences:

There is no isReadByViewer so we can't tell if the user read the PR or not. Currently we don't use this information anyway.
There is no viewerLatestReview so we need to filter out all the reviews and find the last review. It takes some extra processing power, but that's it.

Well, we could just use the legacy API for everyone. There are only two differences:

Then you need to revert some code, I don't think it's necessary.
We can decide whether to do so when receiving feedback from users~


Exception: Already registered (Polymer) prototype for element x

Originally opened as dart-lang/sdk#21332
This issue was originally filed by<EMAIL_ADDRESS>
I've two polymer elements that share the same dart file. In the dart file I declare both the PolymerElement classes.
Until polymer 0.15.0+1 it was working fine. I've updated the project to polymer 0.15.1 and now I get this exception:
    Exception: Already registered (Polymer) prototype for element my-polymer-a
Where my-polymer-a is the first declared polymer.
I think the polymer transformer is trying to register it two times, the first scanning the my-polymer-a html file, the second when scanning the my-polymer-b html file.
This issues breaks our current use of polymer elements and we're forced to refactor a _large_ codebase towards many finer-grained libs we don't really need and will find difficult to move about as we refactor.
Here the code:
mypolymerA.html
<link rel="import" href="packages/polymer/polymer.html">
<polymer-element name="my-polymer-a">
    <template>

Hello I'm A

    </template>

</polymer-element>
mypolymerB.html
<link rel="import" href="packages/polymer/polymer.html">
<polymer-element name="my-polymer-b">
    <template>

Hello I'm B

    </template>

</polymer-element>
mypolymers.dart
import 'package:polymer/polymer.dart';
@CustomTag('my-polymer-a')
class MyPolymerA extends PolymerElement {

  MyPolymerA.created() : super.created();

}
@CustomTag('my-polymer-b')
class MyPolymerB extends PolymerElement {

  MyPolymerB.created() : super.created();

}

 Comment by lrhn

Added Pkg-Polymer, Triaged labels.

 Comment by jakemac53

Fixed in dart-lang/sdk@25fc2f9e2b6ba76843c3c452e601ebf71e3ea169, but this will still throw a warning. The real solution for you here should be to put your script file in its own html file, and import that instead of your script.

 Comment by lrhn

Added Area-Pkg label.

 Comment by jakemac53

Set owner to @jakemac53.
Added Started label.

 Comment by jakemac53

Added Fixed label.

 Comment by jakemac53

Looks like an issue with out inliners, if the same dart file is seen more than once then the extras should just be ignored but we are inlining it each time. This isn't actually a new bug, it was just being hidden previously since there was a bug in the check for duplicate registrations https://github.com/Polymer/polymer-dev/commit/71d204171e51d9126c66bad9f1200a2715cc961f.

 Comment by jakemac53

published as 0.15.0+2

 Comment by mareksuscak

Well if you use build logs in output that show warnings on the page then if you click "more" button you will find exact instructions how to workaround it.
In summary you have to create an HTML file (e.g. script_thats_used_multiple_times.html)  with the following content:
<!DOCTYPE html>

then of course delete the original


Implement tracking of syntax nodes if the syntax tree is edited

On any syntax tree, you can call .tracked. Any tree that is derived from that tracked tree is able to find the original syntax node in the tracked tree. Use cases of this could be to find the original source ranges of syntax nodes that have been re-written in macros or to allow a syntax rewriter to modify a syntax tree while still being able to get the original source locations for any node that was kept.
The basic idea is as follows: Every syntax node within the tree already contains an indexInTree, which is its index in a depth-first traversal. The node of each tree stores the ranges of indexInTree that have been re-used from the original tree and the offset my which their indexInTree has been shifted compared to the original tree.
For example, if you have the following tree (index in tree in parentheses)
      a (0)
     / \
(1) b   c (2)

And you construct a new tree a follows
       x (0)
     /   \
(1) y     a (2)
         / \
    (3) b   c (4)

Then the new tree would have a single syntax tracking range of 2...4: -2. This defines that nodes with indexInTree 2 to 4 occur in the tracked tree and that to receive the indexInTree within the tracked tree, 2 needs to be subtracted from the node in the derived tree.

I still need to investigate the performance implications of this change. My assumption is that

I need to get rid of the array that is now being created in the syntax node initializers because arrays usually result in a costly memory allocation
After that, the performance impact should be minimal when tracking is disabled.

Node modification requires two pointer dereferences plus null check (rootInfo.syntaxTracking?.trackedTree != nil from trackedTree != nil in replacingChild)
Node creation requires #-of-nodes pointer dereferences and null checks to check if any of them have a trackedTree. The cache should be able to serve these fairly quickly if you assume that many of these nodes have been recently created or are from the same original tree and thus share the same node

@swift-ci Please test

@swift-ci Please test

@swift-ci Please test Windows

@swift-ci Please test

@swift-ci Please test Windows

@swift-ci Please test

@swift-ci Please test Windows

@swift-ci Please test

@swift-ci Please test Windows

@swift-ci Please test macOS

@swift-ci Please test

@swift-ci Please test


OPN: fixed behavior of F-Num2(registers 0xa4,0xac)

This patch fixes the behavior of registers A4-A6h and AC-AEh in OPN.
In real chip, there is one latch for each of A4-A6h and AC-AEh.
In some games, if this behavior is not reproduced, a bug in the sound driver causes incorrect pitch.
Although this patch is little bit redundant, it uses  unused registers for latching as same as the original implementation.
Please modify, if you have better idea.

Thanks for this PR. Can you point me to some examples I can look at to see this behavior?

@aaronsgiles Thanks for your reply.
I know "The Castle" for PC-8801mkIISR (Japanese retro PC) is one of the examples which has a potential bug in sound driver.
It uses register A4h for all FM channels by BUG.
Sound pitch is not corrupted on the real PC88.
But on the emulator which doesn't emulate the behavior this PR mentions, pitch becomes incorrect.
I think major FM sound engines including fm.c support this.

Attach is a vgm file of "The Castle" for PC-88. thecastle_vgm.zip
You can check ths sound with it.
And, you can compare with the following captured video from real HW.
https://www.youtube.com/watch?v=i6UmloQvhRQ
Other references:

http://gendev.spritesmind.net/forum/viewtopic.php?p=9457#p9457
MAME's fm.cpp
Nuked-OPN2/OPNB

Ok, thank you for the documentation and VGM example. I think this fix is good.


OnlyM will not start on surface pro 6

Describe the bug
V <IP_ADDRESS> works but anything newer will not run on a surface pro 6. It wont load.
Expected behavior
start program
Desktop (please complete the following information):

Windows 10 Pro 19041.572

@SaolDan Thanks for the report. It may be your anti-virus tools (either preventing a correct download of the installer or preventing it from running). It may be worth trying without. Failing that please would you post the log file? Thanks, Antony

@SaolDan I will close for now as there is no further response. Please feel free to reopen if necessary.


[2.16.0] Advanced settings does not allow nonce 0

It should allow this because the nonce can be zero.

Test passed.Moving it to done


Save snapshots into CRDs for better visibility

Right now we need to use the restic CLI or the webhooks to get an actual list of the backups available.
To make the usability easier wrestic/k8up should manage the snapshots in CRDs. This increases the visibility and ease of use. I'd suggest to create one object per snapshot so a restore could reference the snapshot object from the k8s API.

Is this going to be added to the re-write? This would solve so many issues for us.

The features for the rewrite are tracked here: https://github.com/vshn/k8up/milestone/1. This one will be planned next, it's now added to the respective milestone.

@shreddedbacon Would you mind to add some use-cases to this issue? We would like to understand how this feature could be implemented and getting to know your use-cases would very much help. Thanks.

What would be helpful, instead of sending a gigantic webhook with all of the snapshots if the following was possible.
Storing all of the snapshots for a specific namespace, within that namespace.
One option to achieve this could be to create a new kind called Snapshots
Any time an individual snapshot is completed, append the information for that snapshot to the Snapshots object within the namespace it was run in.
You could have the spec like this
spec:
  bucketName: "example-bucket"
  snapshots:
    - id: "cb75d45c263487bda966eea844414edaab1a353c2a0996289cbf13572e22c61f"
      time: "2020-02-09T03:11:08.172212529Z"
      tree: "60e681491ac50334c57de185e45e29fe6b66faee0872d87e37daa22d606b7521"
      paths:
        -  "/example-com-master-solr-prebackuppod.solr.tar"
      hostname: "example-com-master-solr-prebackuppod"
      username: ""
      uid: 0
      gid: 0
      tags: null
    - id: "4038fcde41b31169dbd74c8923c92356e14a9dbff5b1247b825d656cffacfdc1"
      time: "2020-02-09T03:11:08.172212529Z"
      tree: "5136413b575b6cc078b3d83791143d6c7de5adbbdd474d61b146f5d1d872e369"
      paths:
        -  "/example-com-master-mariadb.mariadb.sql"
      hostname: "example-com-master-mariadb"
      username: ""
      uid: 0
      gid: 0
      tags: null

When a prune operation occurs, remove any pruned snapshots from this resource.
For Lagoon, we could then watch for changes to this resource to update the displayed backups for a specific namespace inside of Lagoon. This would reduce our need for the webhook payload being sent, and it would mean we don't need to process so much data from the webhook payload.
Another option would be to have an individual resource called Snapshot which could be like this
spec:
  bucketName: "example-bucket"
  id: "cb75d45c263487bda966eea844414edaab1a353c2a0996289cbf13572e22c61f"
  time: "2020-02-09T03:11:08.172212529Z"
  tree: "60e681491ac50334c57de185e45e29fe6b66faee0872d87e37daa22d606b7521"
  paths:
     -  "/example-com-master-solr-prebackuppod.solr.tar"
  hostname: "example-com-master-solr-prebackuppod"
  username: ""
  uid: 0
  gid: 0
  tags: null

Then any time a snapshot is completed, just create a single resource in the namespace for where the snapshot was taken.
Pruning would be simply removing the Snapshot object.
We'd be able to watch for the deletion of these objects so we could update Lagoon with the available snapshots then.
Either way, removing the need for posting the sometimes gigantic webhooks for particular namespaces would be ideal.

The main thing would be that we could use a controller to watch the resources. So addition and removal of snapshot resources means we can do something on our end.
At the moment we process the webhook payload, which contains every snapshot in the bucket, not just the namespace. Which for us is massive.
Being able to not rely on this payload, and using kubernetes resource watching direclty would mean we don't need to run the webhook payload handling, and try to figure out which namespace or which cluster a backup is actually in, since we could do this at a cluster and namespace level directly within our own controller.

@shreddedbacon Thanks for the explanation. One thing about storing all snapshots in one CR: etcd has a limit of 1Mb per object. I believe for the really huge repos this limit would be exceeded by a lot.
We had a discussion about this yesterday and had another idea:
Instead of tracking the snapshots and try to sync them to the cluster we though about extending the API Server with a snapshot endpoint. If called the endpoint would run restic snapshot --json somewhere, parse the output and return it via the k8s API. Unfortunately watching wouldn't be possible in that case and you'd have to poll it regularly. Another thing may be that the data returned in that case would also be about the same size as the webhooks.

By speaking about "extending the API Server" we specifically mean:

https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/
https://github.com/kubernetes-sigs/apiserver-builder-alpha

One of the issues we have is that we share a bucket for multiple namespaces. So we could have 1-15 or more namespaces in the same bucket.
Since the payload is usually for a particular namespace and bucket, but the contains all snapshots from restic in the bucket, the hostname in the snapshot doesn't always match the name in the payload.
    "name": "example-com-master",
    "bucket_name": "baas-example-com",
    "snapshots": [
        {
            "id": "cb75d45c263487bda966eea844414edaab1a353c2a0996289cbf13572e22c61f",
            "time": "2020-02-09T03:11:08.172212529Z",
            "tree": "60e681491ac50334c57de185e45e29fe6b66faee0872d87e37daa22d606b7521",
            "paths": [
                "/example-com-master-solr-prebackuppod.solr.tar"
            ],
            "hostname": "example-com-master-solr-prebackuppod",
            "username": "",
            "uid": 0,
            "gid": 0,
            "tags": null
        },
        {
            "id": "4038fcde41b31169dbd74c8923c92356e14a9dbff5b1247b825d656cffacfdc1",
            "time": "2020-02-09T06:56:09.744111693Z",
            "tree": "5136413b575b6cc078b3d83791143d6c7de5adbbdd474d61b146f5d1d872e369",
            "paths": [
                "/example-com-dev-mariadb-prebackuppod.mariadb.sql"
            ],
            "hostname": "example-com-dev-mariadb-prebackuppod",
            "username": "",
            "uid": 0,
            "gid": 0,
            "tags": null
        }]

So we need to do some regex matching to extract what we need for a specific namespace.
It would be really handy if we could get only the snapshots for a specific namespace, directly from that namespace.
So instead of storing all snapshots in a single resource and potentially exceed the 1mb limit, store each snapshot in its own resource.
So kubectl -n $namespace get snapshots could list each snapshot resource in that namespace. We'd then be able to watch for the addition, update, and deletion of these individual resources and do what we need to do without any major regex or payload processing.


chore: added force flag to drizzle push. this skips the data loss check

✨ Codu Pull Request 💻
Fixes #(issue)
Should fix #1117 its hard to test until it runs
Pull Request details

Adding the force flag skips the manual check for db:push

Any Breaking changes

None E2E workflow is currently broken

Associated Screenshots
Manual check

Its alive!
![]()


Suppress Data Type Warnings on Schema Check

The ability to suppress data type warnings in the schema check would be great. Sometimes we need to explicitly go against the guidance.
For example, when bringing in latitude and longitude or when absolutely needing float data types due to needing more precision than 4 decimal places.
I know I can ignore them in the BPA, but I don't see a way to suppress these from the schema check.
Cory Cundy

Is this regarding the -SC command line option, or the "Refresh Metadata" UI (or both)?

My post was regarding the -SC command line option. I like this option, however, there is not an ability to ignore, like there is in the BPA. Without this ability, my builds will always contain warnings in DevOps. The data type warning seems to be the one area that I have run across so far that seems reasonable to ignore. Potentially it could be useful to suppress other types of -SC Schema Check warnings as well.
As far as I can tell, everything in the UI BPA can be ignored. I'm not sure how my comments would apply to the Refresh Metadata. My assumption is that when Refreshing Metadata, the BPA results would automatically update.

Fixed in 2.9.8.


default registry url

Hi,
Could you provide a way to specify a default registry url with the docker run command?
Thanks,
Rubén.

Hi @rcardenal ,
Thanks for your feedback!
I had a similar idea myself, but didn't have much time to implement it.
I think there is a quick fix so please give me a few days and I will return with updated information.
Regards,
Nikos

Any new? :P

You may implement it by variable.

Would be a great feature!

Still waiting for this feature


Dynamic flyouts are not shown when animated

Describe the bug
Dynamic flyouts (those added to FlyoutsControl.Items at runtime) dont show with animations enabled (the default).  Worked fine prior to around 2.0.0-alpha0872 and I assume related to  this commit.
Demo app exhibits same behaviour - all flyouts (which are inlined in xaml) work fine other than dynamic button which doesn't show.
To Reproduce
As per demo code
var flyout = new DynamicFlyout
                      {
                             Header = "Dynamic flyout"
                         };
            // when the flyout is closed, remove it from the hosting FlyoutsControl
            RoutedEventHandler closingFinishedHandler = null;
            closingFinishedHandler = (o, args) =>
                {
                    flyout.ClosingFinished -= closingFinishedHandler;
                    flyoutsControl.Items.Remove(flyout);
                };
            flyout.ClosingFinished += closingFinishedHandler;

            flyoutsControl.Items.Add(flyout);

            flyout.IsOpen = true;

Addition of flyout.AreAnimationsEnabled = false; results in the flyout showing as expected.
Expected behavior
The flyout is shown animated
Environment(please complete the following information):

MahApps.Metro version [2.0.0-alpha0879]
OS: Win10 18362
Visual Studio 2019 (16.5.2)
.NET Framework: Core 3.1

@didster Thx for using the latest alpha hot stuff and reporting this issue. It's now fixed and will be available with the final v2.0 release.

@punker76 Pleasure, just raised another ;-).  Thanks for the vast efforts for v2 its coming on great.


no support for some c99 keyword

(Original issue 126 created by anonymous on 2006-10-24T21:36:22+00:00)
_Complex _Imaginary _Bool and restricted are missing

(Original issue was assigned to gbrandl)
(Original issue 126 last updated on 2006-11-13T21:12:31+00:00)
(Issue automaticaly closed due to status in Bitbucket: resolved)

(Original comment by gbrandl on 2006-10-25T12:37:02+00:00)
Fixed in r2260.


table-success css class

In the view code for displaying courses, the selectedRow part is incorrect. Should be "table-success" then it will highlight correctly.
 if (item.CourseID == (int?)ViewData["CourseID"])
 {
                selectedRow = "success";
}

Should be
 if (item.CourseID == (int?)ViewData["CourseID"])
 {
                selectedRow = "table-success";
}

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

ID: f988f508-f5be-9961-830d-aa569adfcce9
Version Independent ID: 823ce300-dcb9-b51d-fe4b-5bb4625a8126
Content: Tutorial: Read related data - ASP.NET MVC with EF Core
Content Source: aspnetcore/data/ef-mvc/read-related-data.md
Product: aspnet-core
Technology: aspnetcore-data
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

All issues are tracked in the next rewrite at #26505


application  can only register to one eureka  when the security is on

the version : Greenwich.SR2
when not use spring-boot-starter-security
the application can register to the eureka cluster
but when I use spring-boot-starter-security,
the application only register to one server

I believe you're better off asking this on Spring related support channels. This is likely unrelated to Eureka.


Update Documentation to handle running both engines on the host

See discussion https://decibel.ni.com/content/message/142164
Q: When I try to run Host Main.vi in the Temperature Controller Example, I get a pop up stating that an error occurred at Loadclass.vi because it could not find the Temperature Controller Logic configuration.lvclass. I'm assuming it wouldn't find the other classes either if it was allowed to continue. Do I need to manually add the classes to the project? Thanks
A: If you have both engines under the PC target in your configuration, you'll need to make sure you've rescripted the host includes file to reflect that.  In the DCAF Configuration Editor, go to Tools and choose the option to rescript the includes VI for the PC target.  After doing this it should work for you.  You do not need to manually add classes to the project - this is what the includes VI takes care of for you.

Might also be good to add the following.
Script include only needs run when engines are created/moved and when modules are added.
Other wise configuration file holds all other information.

All modules have been added to the Host Includes VI in the shipping example.


fix: rgba with alpha channel

https://github.com/songkeys/tailwind-preset-mantine/issues/7#issuecomment-2485842690
as a temporary solution to make rgba colors in mantine work as expected

Do you mind taking a look? @gene9831


feat: allow basic user group config

Create a new API to allow basic user group config to read (GET), create (POST) and update (PUT) user group, based on Dynatrace Cluster API 1.0, as per steps in guideline. Link: https://dynatrace-oss.github.io/dynatrace-monitoring-as-code/Guides/add_new_api/

Thanks for your contribution @Charles-Woo-YM!
Did you fully test this onprem API?
From what I can tell this could have issues when updating a group, as the API expects PUT /groups with the ID inside the payload, rather than the default API structure of PUT /groups/{id} that monaco support out of the box.

Thanks for your contribution @Charles-Woo-YM!
Did you fully test this onprem API? From what I can tell this could have issues when updating a group, as the API expects PUT /groups with the ID inside the payload, rather than the default API structure of PUT /groups/{id} that monaco support out of the box.

Hi @UnseenWizzard , thanks for your feedback!
As you have probably noticed, I only mentioned that I tested the first 3 API functions (GET, POST, PUT) for this user group API. Let me test all of the functions and revert. Do let me know if you have any other enquiries/feedback. Thanks!

closing this as stale - if you made any progress on the discussed changes/testing please just open a new PR. Thanks


The table auto refresh after canceling the file import

Storage Explorer Version: 1.15.0-dev
Build: 20200806.6
Branch: master
Platform/OS: Windows 10/ CentOS 7.6.1810 (Core) / MacOS Catalina
Architecture: ia32/x64
Regression From: Not a regression
Steps to reproduce:

Expand one storage account -> Tables.
Create a new table -> Click 'Import' action in the toolbar -> Click 'Cancel' button in the file explorer.
Check the result.

Expect Experience:
The table doesn't refresh.
(Unnecessary auto refreshing will make the table loading a long time when one table has a large number of entities).
Actual Experience:
The table auto refresh.

Won't fix. Minor table issue.


link to repository

to allow crate.io and rust-digger to link to it

thanks

You are welcome. You might want to take a look at the report on Rust-digger about all of your crates.


Update email templates and adjust the structure

This PR resolves #181
Check it out, I feel like there is a lot of stuff and I will double-check everything one more time, but please go through the templates guys to find as many inconsistencies as possible.
Tell me what you think!

I agree. If you guys don't see any big issues with the current designs I think we can definitely merge them.

@iamhectorsosa merge it if you are okay with it


Presentation @DH23?

I'll leave it here as an idea: We could present the project at DH23 with a Poster maybe? What do you think @theodore-s-beers @XeniaMonika
https://dh2023.adho.org/wp-content/uploads/2022/08/DH2023_CfP.pdf

Sounds good to me. I would just need to double-check my calendar.

Posters (abstract 500-750 words)
Poster proposals may present work on any relevant topic, or offer demonstrations of projects, tools
and software in any stage of development. Poster presentations are intended to be interactive with
the opportunity to exchange ideas among attendees. Posters are in no way considered lesser forms
of presentation at the DH conference and are subject to the same strict peer review as other
presentation types, and submissions in this category are strongly encouraged.

I love the idea! The deadline is 25 of October, so we have one month... I don´t think it is that much time, right? And in case we decide to do it, how do we start?

Yes, this is not much time. We need to write a project abstract and problem description, in which we make it clear that public knowledge of and contribution to the project is valuable for the DH Community. I have created a google doc, so feel free to write some points of what you think should be written in the abstract. I won't have time this week I guess, but next week I can join.
https://docs.google.com/document/d/1XeBAsXMnxbJQpuKlS-6DaYDOljQBP0_DJgKyi0E6ZQI/edit?usp=sharing

I have created a google doc, so feel free to write some points of what you think should be written in the abstract.

I've requested edit access. Can at least add a few ideas…

Oh sorry, I completely forgot to open it for edit, here: https://docs.google.com/document/d/1XeBAsXMnxbJQpuKlS-6DaYDOljQBP0_DJgKyi0E6ZQI/edit?usp=sharing
I might find some time today or tomorrow to begin writing, we have 12 days to go. Managable :D

I already have something, I will work a bit more on it now

That's a great start. I've already made some edits and can do more later.

fyi: deadline extended to November 4th

I just went through the whole thing again and did some copy editing etc. No major changes this time. @Jomula, hopefully it's all set for you to submit tomorrow. Thanks to you and @XeniaMonika for putting this abstract together.

I have submitted our proposal but I'd rather not close the issue yet before we are accepted or rejected.

Ok, I've made a conftool account for this conference. (It's slightly confusing to me that I can't have a conftool account across multiple events…) And I can see our submission. LGTM.


Poor multi-threaded indexing performance

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
I wrote a multithreaded indexer in Java for Lucene 4.8 and one for Lucene.net 4.8. I tried to do pretty much a line-for-line port. However, there is a substantial difference in the performance characteristics of the two. In Java, I used a ThreadPoolExecutor with CallerRunsPolicy, and in C# I used Parallel.ForEach.

The Java program scales more or less linearly to the number of CPUs.
The C# program doesn't seem to fundamentally speed up when increasing the number of threads.
The Java program completes in about 8 minutes with 4 threads, the Lucene.net version takes about 65 minutes with 4, 10 or even 20 threads.
It was very easy to max out CPU utilization in Java and pretty much impossible to do so in C#.

I can provide both Java and .NET files, but before doing so, I wanted to understand if this is expected behavior and therefore not a bug.
I am observing identical behavior in .NET 8 as well as .NET 6, so I don't think its related to https://github.com/apache/lucenenet/issues/933
Expected Behavior
Multi-threaded indexing performance scales with the number of threads used.
Steps To Reproduce
No response
Exceptions (if any)
No response
Lucene.NET Version
4.8
.NET Version
8.0.204 and 6.0.29
Operating System
Windows 10
Anything else?
No response

I would say this is very much not expected behavior. Having your benchmark code would be very helpful! Thanks for the report.

this sounds too much difference between java / c#.
do you add the documents and commit only in the end?
a test program would be great to analyze this.
thanks

Concurrent document writing support is currently broken due to a bug mentioned in https://github.com/apache/lucenenet/issues/886#issuecomment-1812835542. No objections if someone wants to contribute a solution to that issue, but this isn't considered a blocker for the Lucene.NET 4.8.0 release.

@NightOwl888 I remember this was an old bug relevant only to older dotnet core.
so if its not reproducible on the new dotnet, and only happen on versions that out of support anyway, maybe we shouldn't too

@NightOwl888 If you apply the changes to DocumentsWriterFlushControl from that branch on top of the latest can you still reproduce it? I have no luck on 5.0, 6.0 or 7.0 - but asking because maybe I am doing something wrong >.<

@superkelvint Sharing the source code would certainly be relevant, Parallel.ForEach would not be my first choice here.

Yes, I just got approval to do so, and will be providing that shortly.

Here is the MultithreadedIndexer.cs file.
MultithreadedIndexer.cs.zip
I'm not a C# programmer so perhaps I am doing something silly that's slowing things down.

@NightOwl888 I remember this was an old bug relevant only to older dotnet core. so if its not reproducible on the new dotnet, and only happen on versions that out of support anyway, maybe we shouldn't too

Nope. This happens on all operating systems and .NET versions. I got it to fail on .NET 7 after that post.
We cannot rule out that the problem lies in the test or the test framework, but it almost certainly is in our codebase. We have a configuration that never existed in Lucene. We are somewhere between 4.8.0 and 4.8.1 on the documents writer stuff. We should go through the JIRA issues in the Changes.txt to determine if we have all of the changes that are relevant to the documents writer. That may or may not be contributing to this.

@NightOwl888 If you apply the changes to DocumentsWriterFlushControl from that branch on top of the latest can you still reproduce it? I have no luck on 5.0, 6.0 or 7.0 - but asking because maybe I am doing something wrong >.<
(I have not run the entire test suite yet, there is allot of test and I have problems compiling the IKVM stuff)

IKVM can be tricky to get to compile the first time because it doesn't properly clean the build. I suggest closing the IDE and then doing the following:

Delete all of your /bin and /obj folders (be careful not to delete the objects folder below /.git)
Clear the IKVM cache in the ~\AppData\Local\Temp\ikvm\cache folder
Clear the ~\.m2 cache

If upon reopening you still have issues compiling, report the issue to ikvm-maven. The team is pretty responsive.

On Azure DevOps, I was able to reproduce the test failure, but this time it took 60 runs and it only happened once: https://dev.azure.com/lucene-net-temp4/Main/_build/results?buildId=266&view=ms.vss-test-web.build-test-results-tab&runId=191370&resultId=100202&paneView=debug
I was also able to get it to fail locally with the seed from #886. Using the [Repeat(1000)] attribute on the test, it failed on the first run on net6.0 on Windows.

I just put the attribute in the TestRollingUpdates.cs file, but be sure to remove it when you are done debugging.

It also failed on the first run with the seed from the above Azure DevOps failure on net6.0 on Windows.
[assembly: Lucene.Net.Util.RandomSeed("0x9f28125320b5e6c3")]
[assembly: NUnit.Framework.SetCulture("lrc-IR")]

I also got it to fail on net7.0 with that seed on the first run, but it took significantly longer.

@jeme thoughts on the included code?

@pc-LMS I have actually not looked further into it as I have used the time I have for Lucene (here and there) to attempt to reproduce the problem linked by @NightOwl888 locally (as that would ease things hugely for correcting it) or just trying to unravel the code in an attempt to get a theoretical idea of what might be wrong, so far no luck on reproducing it though.

@jeme - I am a bit perplexed why you cannot reproduce this. While it is not trivial to do, it also is not that hard and I have reproduced it on multiple machines.
It is possible that if the problem is a timing issue, perhaps the particular machine that you are experimenting with is somehow perfectly synchronized to miss the error, too fast/slow, or the timing accuracy of the underlying OS is sufficient to where it doesn't happen. Have you attempted to reproduce on more than one machine and/or OS?

@NightOwl888 No, I have not tried other machines or OS'es for now, I have tried running the tests under various .NET versions with the seeds provided, I would have to install VM's for trying other OS'es for now (or dust off my old 2012 Mac book PRO and boot that into OSX, again it would take some time).
But I could perhaps find a few other machines to run it on, my machine is a bit dated (i9-7900X, 128GB Ram and M.2 SSD's). If you can reproduce it locally, what are you running on? (OS etc).
Because if this is timing and mine just runs slower pr. thread (10 cores means lower clock speed after all + the IPC has increased a bit since then I guess).

I am on Windows 10 x64 running with an I7-8850H, 2.60Ghz, 6 Cores, 12 Logical Processors, 32GB RAM, and M.2 SSD's.
I am unable to reproduce the failure locally without the [Repeat(1000)] attribute on the TestRollingUpdates.TestUpdateSameDoc() method since the failure happens so rarely. It usually fails within the first 3 runs with that attribute applied. And I am explicitly running just that one test using Visual Studio 2022. But I have also had it fail when running the entire test project that it is in.
FYI - I did a new manual revert that is up to date with master here: https://github.com/NightOwl888/lucenenet/tree/fix/GH-935-documentswriter-concurrency

Ok, I was actually in the thinking that this was because my CPU was a slow old one, but maybe it's the other way around. It passes just fine, takes a while with repeat:1000 obviously, but since it at max starts 6 threads I tried upping that seeing as it would never occupy all Cores(10)/Logical(20) on my system. Thinking that it could also be if the system was put under stress, even with a random between 32 to 64 threads, my system is just not stressed at all, but I still wonder if stressing things could make it easier to reproduce, so my plan is to do 2 things after work today.
A) Move the code to my old MacBook (with windows) and run the tests there, that would run on a Core i7 i7 3820QM.
B) Write a stress test suite that tries to push things as high as I can.

Interesting. I tried with net8.0 (which has been changed as the default IDE test platform since the last time I checked) with the same configuration you used and it doesn't fail there. But then I changed the test target to net6.0 and it failed on the first run. So, that probably explains why you are not reproducing it.
I think I worked out what is happening, though.
Issue 1
The error indicates that dwpt is null on this line:
https://github.com/NightOwl888/lucenenet/blob/878261fa920a961288639863da28d7c9f5d0d800/src/Lucene.Net/Index/DocumentsWriterFlushControl.cs#L471
Digging into the DocumentsWriterPerThreadPool, there is only 1 way it could return null, and that is if this method is called: https://github.com/NightOwl888/lucenenet/blob/878261fa920a961288639863da28d7c9f5d0d800/src/Lucene.Net/Index/DocumentsWriterPerThreadPool.cs#L91
We cannot pass this line unless perThread.IsInitialized returns true. And that can only happen if dwpt is not null.
Therefore, to fail in this way, DocumentsWriterPerThreadPool.Reset(perThread, closed) must be called on a different thread while these lines are executing. This explains why it is an exceedingly rare event.
I checked and there are 4 calls to DocumentsWriterPerThreadPool.Reset(perThread, closed). All of them are called within UninterruptableMonitor.Enter(this) except for this one:
https://github.com/NightOwl888/lucenenet/blob/878261fa920a961288639863da28d7c9f5d0d800/src/Lucene.Net/Index/DocumentsWriterFlushControl.cs#L818
So, moving the UninterruptableMonitor.Enter(this) outside of that call should fix the problem.
Issue 2
After that fix, we still got some failures. But it was also clear from the stack trace what was happening. If TryLock() returns false, we end up on this line:
https://github.com/NightOwl888/lucenenet/blob/fix/GH-935-documentswriter-concurrency/src/Lucene.Net/Index/DocumentsWriterFlushControl.cs#L484
The documentation for ReentrantLock.tryLock() states:

Even when this lock has been set to use a fair ordering policy, a call to tryLock() will immediately acquire the lock if it is available, whether or not other threads are currently waiting for the lock. This "barging" behavior can be useful in certain circumstances, even though it breaks fairness. If you want to honor the fairness setting for this lock, then use tryLock(0, TimeUnit.SECONDS) which is almost equivalent (it also detects interruption).
If the current thread already holds this lock then the hold count is incremented by one and the method returns true.
If the lock is held by another thread then this method will return immediately with the value false.

So, it can return false, but I don't think it ever does in practice since a null return value from InternalTryCheckOutForFlush() will cause an error (assert in test, NullReferenceException in production). So, apparently Lucene relies on the "barging" behavior of this method to be put in the front of the queue.
.NET has no such behavior, but I don't think it really matters which order the locks are taken in as long as ReentrantLock.TryLock() returns true. So, I changed it to call UninterruptableMonitor.Enter(object, ref bool) instead of UninterruptableMonitor.TryEnter(object), which will always acquire the lock and return true.
This probably won't perform as well because the method is supposed to return immediately and may end up deadlocking, but so far it seems to perform better and never deadlock.

I am running the tests now to see if the above changes work on all platforms, but locally this seems promising.

I have just submitted #940 with a patch. Well, there were 3 different attempts.
While identifying the problem wasn't too difficult, finding a solution for Issue 2 turned out to be quite challenging due to how performance sensitive of an area this is.
If interested parties could run some benchmarks and/or review the PR to provide some feedback on how to improve this approach, suggestions would be welcomed. I have already attempted Thread.Sleep(1), Thread.SpinWait(1) and the SpinWait struct as part of the retry loop, but all of these seem to slow the tests down a lot. I don't think it would work right if Thread.Yield()  were not also used, but it seems to perform best with only Thread.Yield() and nothing else.
I also gave SpinLock a try. Although it has all of the API members we need, it is not a reentrant implementation, so no dice.

Interesting. I tried with net8.0 (which has been changed as the default IDE test platform since the last time I checked) with the same configuration you used and it doesn't fail there. But then I changed the test target to net6.0 and it failed on the first run. So, that probably explains why you are not reproducing it.

Not really as I actually tested on the various .net versions, other things came up as we had a break down in one of our systems due to a windows update, so I have sadly been busy elsewhere.
But I am actually having another timing related bug in another codebase which I can easily reproduce at work with a single run of a test (always fails after ~max 2min, a run is 10min), but it's far harder to reproduce the same bug at home on the same PC as I am having trouble reproducing this issue (takes 2-3 runs). So I don't know.
Running the Lucene tests at work has proven to be a challenge though, I don't know if it's because I use ReSharper that the Lucene solution seems to be very slugish for me to work with, or it's something else. But I always have challenges getting started working on anything.
But great if you found a fix.

Here is the MultithreadedIndexer.cs file. MultithreadedIndexer.cs.zip
I'm not a C# programmer so perhaps I am doing something silly that's slowing things down.

This is super helpful.   I'll work to reproduce the behavior you observed in Luncene.NET and then test to see PR #940 shows improved performance.
I'm curious, for your StringFields, how many did the typical doc have, and what was the typical length of these fields?

If it is difficult to reproduce, can try to remote and debug the bug using DNSpy on the user's computer.

@superkelvint  Which specific version of Java Lucene did you use in your comparison to Lucene.NET?

@superkelvint Thank you for providing some code to show how you are using Lucene.NET.  That helps a lot.  Maybe we can work together to make sense out of what you are seeing.
One challenge in creating any kind of benchmark is having enough data to index so that it takes some time for LuceneNET to complete. LuceneNET is very fast, so thousands of records of data are needed.  I went on a hunt for an open-source data set that we could use. Ultimately I chose the Book Dataset from Kaggle.com, which is available under a CC0 public domain license.
The dataset has approx. 271K records and each record contains several fields (Book Title, Author, URL to cover photo, etc.).  To allow the program to load data in parallel, I created 21 copies of this data which is 5.4 million records total.  Because sometimes it’s nice to be able to run the program more quickly when tweaking settings to see if they matter much, I also create 21 “small” data files, which contain about 50,000 records each for a total of 1.05 million records total.
A single flag at the top of the program causes it to index big or small files. Either way, it’s indexing 21 files.
I wrote a DataReader class that can read one record at a time from one of these data files. It uses a Stream, which in .NET is a performant approach. The implementation uses synchronous IO, but I tried a version of the app with async IO (async await) for reading these data files, and it made no difference from a performance perspective.
Using this console app I tested the performance of Lucene.NET Beta 16, vs, the current master vs, PR#940 and I get more or less the same results from each.
I tried different levels of parallelism to see how that affected performance and also tried different levels of RAMBufferSizeMB.  In the process, I came to realize that by default Lucen.NET 4.8 will use a MAX of 8 threads for creating index segments via DWTP threads when using the IndexWriter. At first, I thought perhaps this was the issue and a larger value just needed to be passed via the  IndexWriterConfig.MaxThreadStates when the IndexWriter is created.  But that didn’t turn out to be true.  In fact, on my hardware I ultimately got faster performance by passing a SMALLER value then the default for the indexWriterConfig.MaxThreadStates value.
I’m providing this full working .NET console app that uses .NET 8 including the data used and solution file and structure.  So you can easily run this on your hardware and try different values for the number of threads used to read the data files, the MaxThreadStates, and the RAMBufferSizeMB value. What I’m most interested in, is having you port this code to java and run it using the exact same dataset in a java environment.  The solution with all the data was 412MB which GitHub wouldn't let me upload (it has a 25MB limit) so I trimmed the solution down to one small data file and one big one and then when the app runs it will create the other 20 small data files and 20 big ones on the fly.  This got the app just barely under the upload limit. :-)
Ideally run the console using the big data set, which is how I have the app configured by default.  The app auto-deletes the LuceneIndex folder before each run.  So you can run it multiple times in a row and you will be left with just the LuceneIndex from the last run in the LuceneIndex folder.
I would love to hear back your Lucene.NET 4.8 results vs Java results and have you contribute back your java code port of this console app.  I'd also like to understand exactly which version of Java Lucene you are benchmarking against.
On my machine, Lucene.NET can index the 5.65 million book records in 47 seconds, which is a rate of approximately 119K records per second.  That average time includes the final commit time.
To my eyes that seems pretty darn fast.  But if the Java version can really index these same documents much faster that would be great to know.
LuceneIndexingPerformane.zip


[question] Deprecation of XUL and XPCOM

https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons/
With the recent controversy about the removal of XUL and XPCOM in Firefox, and several add-on authors refusing to update (eg. DownThemAll), I'm somewhat concerned:
In which ways will this affect the pentadactyl project? Are you going to migrate to the new WebExtension API? Would such a thing even be possible?

Clearly Mozilla want to make some bucks with the new hype with a
completely void corpse. Good luck to 'em then!
Well, I'll stick to the current ESR version for a year at least,
and keep it as long as possible untill I got something workable
elsewhere -- no Google backdoors(TM) wanted here... sorry.
 So, yes, a year and a few
mounths.
Again, THANKS for this awesome add-on.
NOTE: Should we mourn...? let's laugh to pitfall of Mozilla instead!
Firefox was killed since v4 with that huge PR and plans to supposedly
catch up Chrome. -- Surely in the PITA GUI and smelly crufts reviewed
openly by BIG EYE/DISK.
I guess some no-brain and noob-skull from M$ would/will be happy to
get a fancy Mozilla backdoors(TM). Without me for sure.

It's amazing to see how many people mention Pentadactyl in the comments to that post -- way more than any other add-on.
Until we find out how the developers plan to address #79 though, these issues further out into the future are not worth worrying about.

@willsALMANJ If I'm not mistaken, @kmaglione is already on the AMO team, so I hope that won't be a problem.
But I think we should start to worry about OP's question now because otherwise the damage will be done by the time the deprecation happens. But perhaps it has already been done, and this is the end of pentadactyl as we know it? The first thing at least is to get an answer to @haasn's questions. +1

@vyp sorry, don't get me wrong, I think these announced changes have huge implications for Pentadactyl and I would love to hear from @kmaglione about them, but the signing issue has been looming for months with no word on if the developers will try to get it signed.

@willsALMANJ I agree of course, it's just that I think it's highly unlikely that it will not be signed. But yes, obviously it's a higher priority issue right now because 42 is only a few months away from becoming stable. But because Maglione is on AMO, it should be a quick and straightforward resolution I hope. (FTR, I do not support Mozilla being the only authority available to sign extensions in the first place, but that's another issue outside the scope of pentadactyl.)
But this issue has the potential to be the end of pentadactyl entirely, so I hope we get answers for both these questions some time soon, and I think we can worry about both simultaneously. :+1:
The post says:

We have decided on an approximate timeline for the deprecation of XPCOM- and XUL-based add-ons.

But I may have missed it, did they actually post any dates? At least we know that #79 has to be resolved very soon. If we have a date for deprecation, it could help with prioritising this issue appropriately.

The dates are pretty fuzzy but here's what they say in the post:

December 15th (Firefox 43 merges to release). The earliest release Electrolysis will be enabled on the release channel, and our current planned release.
Six months past enabling Electrolysis on Release. The deprecation of CPOWs and compatibility shims will begin.
we have decided to deprecate add-ons that depend on XUL, XPCOM, and XBL. We don’t have a specific timeline for deprecation, but most likely it will take place within 12 to 18 months from now.

Currently wishes for the WebExtension API are being collected. I made a request, maybe a few votes on that could help
https://webextensions.uservoice.com/forums/315663-webextension-api-ideas/suggestions/9455088-make-sure-add-ons-that-completely-change-the-ui-l


Django 2.2?

Are there known issues with Django 2.2.3 and Formtools 2.1? Specifically with the use of ModelChoiceFields? I've been having never-ending form wizard loops a 2.2.3 project. Nothing gets logged, but when I "submit" the final step in the wizard, it just takes me back to the first step, as if the "done" method in my SessionWizardView subclass is never called. Has anyone else encountered this type of error? I've tried removing all model-derived fields and I am still running into the issue.
I'm partially going crazy here, as I can't seem to find anyone else running into this issue. Thanks for helping point me in the right direction, and confirming that this isn't a version compatibility issue.
If there are any known issues, perhaps updating the docs would be a good idea, as they lead one to believe that formtools should work fine with Django.

New releases of django-formtools should always be compatible with the latest stable release of Django. If a new version of Django contains backwards incompatible changes that affect formtools, a new release of formtools will be issued shortly after the release of the new Django version.

code-example.txt

I installed with "pip3 install django-formtools", but it still says "ModuleNotFoundError: No module named 'django-formtools'."  Is this the issue for everyone using Django 2.2?

@ChristianLan1 This is the problem that I have

django-formtools 2.2 (tested with Django 2.2) is now on PyPI. If you still have trouble, please investigate and explain why formtools is at fault.


Any non-sensitive cvars should be moved from the server's config.toml to the repo under ConfigPresets/CM14/cm14.toml

This was done at some point


Add FIDO2Applet

Adding my own humble applet.
As it's now deployed on real-world hardware (the Cybernetic Ring and the Apex Flex subdermal implant) I think it's probably reasonable to have it on the list of applets here.

Dear @BryanJacobs , thank you very much for the addition. I also apology for the time it to merge, I simply overlooked notification. Keep with good work