Bugfix: support toleration "node-role.openyurt.io/edge:NoSchedule"

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind bug

/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage
/sig storage

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes https://github.com/openyurtio/openyurt/issues/732
Special notes for your reviewer:

Does this PR introduce a user-facing change?

other Note

The taint of "node-role.openyurt.io/edge:NoSchedule" is added by yurtcluster-operator which seems not make sense, how about we fix it in yurtcluster-operator instead of yurt-app-manager?

The taint of "node-role.openyurt.io/edge:NoSchedule" is added by yurtcluster-operator which seems not make sense, how about we fix it in yurtcluster-operator instead of yurt-app-manager?

@zzguang agree +1


Reconsider if ViewModelBase should implement NavigationService

It's already possible to retrieve the NavigationService in a Template 10 view-model using the GetNavigationService() extension method off the NavigationParameters passed into the OnNavigatedTo and OnNavigatedToAsync methods. You can also use GetSynchronizationContext() to help with threading. These are not discoverable, I know, but they are easy.
Here's the syntax:
public class MyViewModel : ViewModelBase
{
    private INavigationService _nav;

    public override void OnNavigatedTo(INavigationParameters parameters)
    {
        _nav = parameters.GetNavigationService();
    }
}

The issue here, however, is the change in heart I have had with NavigationService. I believe that an app should create its own NavigationService, lately I have been calling mine NavigationManager in order to disambiguate the name. The reason to remove it from ViewModelBase as a public property is that it encourages a generic use case instead of an app-specific one. It also shows up when using binding and that's really confusing.
Here's what I am recommending:
public class NavigationManager
{
    private readonly NavigationService _navigationService;

    public NavigationManager(NavigationService navigationService)
    {
        _navigationService = navigationService;
    }
}

public class MyViewModel : ViewModelBase
{
    private readonly NavigationManager _nav;

    public MyViewModel(NavigationManager navigationManager)
    {
        _nav = navigationManager;
    }
}

This is not a recommendation to remove the extension methods or the ability to access the NavigationService. Just removing the public property on the view-model in order to encourage better patterns. If you don't want better patterns, then the extension methods are still there. You can also sub-class ViewModelBase in order to restore the property, too.

I think this is the right way to proceed, that way people can always implement their own services if they wish to without worrying for services they don't need.


Update aws-core, http-client-spi, ... to 2.17.245

Updates

software.amazon.awssdk:aws-core
software.amazon.awssdk:http-client-spi
software.amazon.awssdk:netty-nio-client

from 2.17.104 to 2.17.245.
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!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "software.amazon.awssdk" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #234.


Make editable dropdowns emit value change events on type

Fixes https://github.com/microsoft/azuredatastudio/issues/11968
We could also expose this as a configurable option if we're worried about this affecting other components - but in general I don't see why we wouldn't want to update the value every time the text changes.
(also fixed a name mismatch I saw while looking at this issue)

Coverage decreased (-0.004%) to 40.495% when pulling 844db9ee8c51637968a294f660e2c8ad5b6821da on chgagnon/emitDropdownChanges into a3121c0b2d629a664501921c353d125d2f87139e on main.

@alanrenmsft Merging this in now since you're out - let me know if you have any concerns when you get a chance to look at this.


"Select" voice command does not fire the appropriate events when using OpenXR on HoloLens 2

Describe the bug
When you Gaze and say "Select" on a HoloLens 2, the MRTK input system should fire the appropriate events for the "select" action. This no longer works like it did for the Legacy XR. Other keywords work just fine.
To reproduce
Steps to reproduce the behavior:
The easiest way to see the problem is with the EyeTrackingDemo example

Install the OpenXR Plugin
Import the EyeTracking demo
Deploy to the HoloLens 2
In the TargetSelection scene, say "select" while looking at a gem, the speech confirmation tooltip appears, but the gem does not explode.  Saying "explode" does explode the gem.
Gaze at a different scene in the Scene Menu and say "select".  It's no longer possible to change scenes with the "select command".

Screenshots
Unfortunately, the "select" tooltip isn't captured when I try to take a screenshot.

 I was able to reproduce this across Unity versions, MRTK versions, and across XR pipelines. @cre8ivepark will investigate this in the near future and we will give you an update when the investigation is complete.

Is this also related - https://github.com/microsoft/MixedRealityToolkit-Unity/issues/8582?

@cj-lopez I do not believe that issue #8582 is related to this issue. The "Select" voice command in this issue seems to be occurring due the MRTK not being detected by the EyeTrackingTarget.cs script as seen in this picture below in the Eye Tracking Targeting example scene. This issue occurs in the OpenXR and XR SDK pipelines and across Unity versions. I have not tried to reproduce this issue on Unity 2018 LTS yet.

Any updates on this issue?

Any updates on this issue?

Is there any update on this issue?

Hey guys
Are there any updates available to this issue?

Folks Is there any update? This is causing serious issues..

Hey @keveleigh For myself the most important part is, that the eye tracking will work again when deploying the application to hololens.
If remoting won't support it it is totally fine for me.

The fix for this issue has been released in MRTK 2.8.1. Please let me know if you are still running into the issue!

Note: the fix in PR 10661 does not work for MRTK 2.8.2. After much debugging, I found a fix for our project with the following changes:

Add the EyeGazeInteractionProfile to the OpenXR Interaction Profiles setting.
Update line 134 of OpenXRDeviceManager.cs as follows:
Service?.RaiseSpeechCommandRecognized(controller.InputSource, RecognitionConfidenceLevel.High, TimeSpan.MinValue, DateTime.Now, new SpeechCommands("Select", KeyCode.Alpha1, new MixedRealityInputAction(1,  "Select", AxisType.Digital)));

The fix in PR 10661 does not work for MRTK 2.8.2. After much debugging, I found a fix for our project with the following changes:

Add the EyeGazeInteractionProfile to the OpenXR Interaction Profiles setting. (Source: Joost van Schaik)
Update line 134 of OpenXRDeviceManager.cs as follows:
Service?.RaiseSpeechCommandRecognized(controller.InputSource, RecognitionConfidenceLevel.High, TimeSpan.MinValue, DateTime.Now, new SpeechCommands("Select", KeyCode.Alpha1, new MixedRealityInputAction(1,  "Select", AxisType.Digital)));

This works perfectly for me, thanks a lot for the help.


299

There are organizations that have already adopted DCS and other GRC tools that the non-technical and technical teams can use to manage data categories for PII classification.
Fidesctl should interoperate with these tools and be able to:

import fidesctl resources (data categories, data uses, data subjects, and data qualifiers) from external DCS/GRC tools
reconcile incoming resources with fides default resources (add, update, delete default resources)
use newly reconciled resources to create fides annotations
export data categories back to the tool of origin

This issue is a research spike for assessing feasibility of integration to export:

fidesctl metadata to other tools, including system and dataset declarations
the post-reconciled resources, and default fides resources (categories, qualifiers, subjects, uses)

and ensure that the exported data is viewable and compatible in the destination tool

@iamkelllly is this still relevant?

closing all tickets older than a year as not planned


add PC lipids for pegylation

Implementation of PEGylation for M2 and M3 lipids following the crude scheme of Lee and the M2 PEG paper by myself.
@ricalessandri  can you have a brief look if anything is missing?

The bonded connections look good to me. A couple of questions I have (the first due to my limited peg-lipid knowledge):

so you keep the negative charge of bead number 2 of the lipid and remove only the charge on the first lipid bead?
there's a small inconsistency: the links in the martini2 folder are in the links.ff and in the martini3 folder in the PEL_link.ff. Of course, this doesn't affect polyply's behavior but it might be confusing for the (semi-)expert user.

@ricalessandri thanks for the comments. Regarding the first the choice is still based on the old Lee convention from 2013/2011. Basically you attach the PEG via the choline/amine headgroup of the PC, PE lipid and thus it becomes charge neutral. We probably should be looking at remapping those but it's actually not so trivial to find a working atomistic FF. I think the Charmm GUI had a recent paper.

in fact PC lipids cannot be PEGylated. The Martini2 implementation is the same as a PEGylated PE lipid. So I'd rather not implement the wrong name.


GIF for android?

It would be nice to have a GIF for android as well.

Thanks for request and sorry for delayed reply. I'm trying to maintain similar look and feel on both platforms and I'm completely sure that two almost identical GIF's in readme would be an overkill.


ESP performance without WebGL

A number of issues in ESP will depend on whether or not we get stop using WebGL in that sim. For instance, how much work it will take to add animating text readouts will depend on whether or not WebGL can be removed (https://github.com/phetsims/energy-skate-park/issues/47). A big part of that decision is to determine the performance impact of removing WebGL.
@KatieWoe could you please compare the performance without WebGL:
https://phet-dev.colorado.edu/html/energy-skate-park/1.0.0-dev.1/phet/energy-skate-park_en_phet.html?webgl=false
to the performance of the deployed sim which uses WebGL when available https://phet.colorado.edu/sims/html/energy-skate-park-basics/latest/energy-skate-park-basics_en.html
There is talk of no longer supporting iPad2, so we mostly care about the impact on Chromebooks, Edge, tablets, and the slowest platforms.
@ariel-phet can you please prioritize this request? I know that QA has a lot to work on right now, I do not feel this has to be done right away.

| Link One Subjective | Link One Data | Link Two Subjective | Link Two Data
-- | -- | -- | -- | --
Edge | Pretty ok | 54, normally 60 | Very slow, especially when dropped or on ramp | 13-21 depends on screen
Internet Explorer | good | 47-60, normally in 50s | Good, not quite as, but mostly | 43-60 depends on screen
Chromebook | Not bad | High 50s | Not bad | Mid to high 50s
iOS 10 | ok but slow with things checked/moving things | Anywhere from 20s to 50 | ok but slow when moving things | low 30s to mid 40s, sometimes dropped into 20s
iOS 11 | Ok, poor when reference height changes | 27 when moving reference height, high 50s otherwise | ok | High 50s/60
Mac 10.10 safari | Seems fine | 45-50 | Seems fine | 55-60

QA is done.  @jessegreenberg let me know if you have any questions.

Thanks @KatieWoe, I summarized in https://github.com/phetsims/energy-skate-park/issues/42 and we will continue there.
I tested the sim in iPad Air 2 iOS 12 as well and the sim is fast with and without WebGL, but does suffer from the issue that @samreid mentioned

I see 60fps when dragging the skater in the center of the play area, but it drops to 30fps when part is off the top of the screen


Images being overwritten on PDFs with more than 100 pages

This is a very strange issue that we've run into and took some time to be able to reliably reproduce.
When adding images to large PDFs, generally with more than 100 pages, the images from later pages end up replacing the images on earlier pages. (The images on the later pages remain as expected)
Here is the code to reproduce it. On each page I print the page number and then create a corresponding QR code of the page number:
const QRCode = require('qrcode'),
      concat = require('concat-stream'),
      fs = require('fs'),
      { PDFDocument } = require('pdf-lib');

// Given some text returns a QR code
const createQRCode = (text) => {
  return new Promise(resolve => {
    QRCode.toFileStream(concat(resolve), text, {
      type: 'png',
      errorCorrectionLevel: 'L',
      scale: 2
    });
  })
}

// Take a multi-page pdf and print a number and qrcode on each page.
const pdfMocker = async (filePath) => {
  const originalPdfBytes = fs.readFileSync(filePath);
  const pdfDoc = await PDFDocument.load(originalPdfBytes);

  const pages = pdfDoc.getPages();
  for (var i = 0; i < pages.length; i++) {
    const page = pages[i];
    const number = `${i + 1}`;
    const qrCodeBuffer = await createQRCode(number);
    const qrCodeImage = await pdfDoc.embedPng(qrCodeBuffer);
    page.drawImage(qrCodeImage, {
      x: 465,
      y: 350,
      width: 80,
      height: 80
    });
    page.drawText(number, { x: 405, y: 562, size: 13 });
  }

  const pdfBytes = await pdfDoc.save()
  fs.writeFileSync('output.pdf', pdfBytes);
}

pdfMocker('blank-v4.pdf');

The expected output would be for each page to have its number and the corresponding QR code. Instead, approximately 1 in every 100 pages has the QR code of a different page. I ran this several times with 100 pages.
test 1) page 67 had the QR code for page 85
test 2) page 19 had the QR code for page 94
test 3) page 78 had the QR code for page 85
In each case the QR code on the later page remained correct. It was just duplicated on the earlier page, replacing the QR code expected there.
Interestingly, this can only be reproduced this with PDFs of v1.4. Here is the PDF that I used. blank-v4.pdf
I have written some code (using OCR/ImageMagick) to automate the scanning and testing of PDFs to find the issue. Would be glad to share.

FOUND THE BUG!! here
The problem is when the xObjectKey is set it only adds 4 random digits. That level of randomness doesn't work consistently for PDFs with many images. Inevitably, collisions do occur. I upped that number to 10 and could not reproduce the above issue.
@Hopding is there a reason you decided to use the number 4? Can I open a pull request to raise that number?

Hello @thebenlamm! Great work investigating this issue! There was no specific reason for deciding to use 4 random digits. I just had to use some number, and 4 seemed reasonable at the time. But I think it makes sense to increase the number of digits to 10 or so. That will reduce the likelihood of a naming collision from one in 10^4=10,000 to one in 10^10=10,000,000,000. Please do open a pull request and I'll merge it.

Version 1.2.1 is now published. It contains the fix for this issue. The full release notes are available here.
You can install this new version with npm:
npm install<EMAIL_ADDRESS>
It's also available on unpkg:

<EMAIL_ADDRESS><EMAIL_ADDRESS>


Get-HPOVServer -Name option

I've modified this script to first run Import-csv a CSV file that has a Server profile name, MGMT NIC, vMotion NIC and the Serial Number.  I so wish that Get-HPOVServer could accept the serial number with the -Name option, but what I have had to do is do it this way:
$Server = Get-HPOVServer | Where-Object serialnumber -eq $object.ServerSN
I also used the convert to powershell script of a server profile template so I have all the options that are required by the OSdeployment piece, and I dont have to include the password, since it was captured in the original template.

This issue tracker is for sample scripts, not the libraries and functionality it is missing or you'd like to see added.  In the future please open an issue on the right project tracker.


fix: move random utils from test_utils to aries_vcx_core, closes #1101

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

Comparison is base (5d0e4b3) 0.05% compared to head (63d081f) 0.05%.
 Consider uploading reports for the commit ad409db to get more accurate results

Files
Patch %
Lines

aries/misc/legacy/libvcx_logger/src/error.rs
0.00%
3 Missing :warning:

aries/misc/legacy/libvcx_logger/src/lib.rs
0.00%
2 Missing :warning:

aries/aries_vcx_core/src/test_utils/devsetup.rs
0.00%
1 Missing :warning:

Additional details and impacted files
@@           Coverage Diff            @@
##            main   #1104      +/-   ##
========================================
- Coverage   0.05%   0.05%   -0.01%
========================================
  Files        471     472       +1
  Lines      24109   24642     +533
  Branches    4336    4540     +204
========================================
  Hits          13      13
- Misses     24095   24628     +533
  Partials       1       1

Flag
Coverage Δ

unittests-aries-vcx
0.05% <0.00%> (-0.01%)
:arrow_down:

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

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


[beta] Responsive Web Design Principles has 5 hrs for estimated duration

This isn't an issue with a specific challenge so apologies if I'm going off script here - but there's only four challenges in this section and the estimated time on the map is 5 hours.  Will there be additional challenges?

Nope that will probably be updated to newer estimates, thanks for the report.


Generator for C

Interesting project, thanks. Would like to see a generator for ANSI C if possible, I have a few projects where I could utilize FBE and its cross-platform possibilities.

My first priority is to create a port for IOS Swift only then I'll think over how to create a port for ANSI C

ANSI C needed


fix: use vue2 set and delete to update store state with reactivity

🔗 Linked issue
https://github.com/CodeDredd/pinia-orm/issues/1772
❓ Type of change

[ ] 📖 Documentation (updates to the documentation or readme)
[x] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
When updating an object in Vue 2, we need to use set and delete instance methods to be reactive.
cf. https://v2.vuejs.org/v2/guide/reactivity.html#For-Objects
📝 Checklist

[x] I have linked an issue or discussion.
[x] I have updated the documentation accordingly.

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

Comparison is base (a7ab3bf) 99.10% compared to head (b289c7b) 98.94%.
Report is 5 commits behind head on main.

Files
Patch %
Lines

...kages/pinia-orm/src/composables/useStoreActions.ts
70.58%
10 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1773      +/-   ##
==========================================
- Coverage   99.10%   98.94%   -0.17%
==========================================
  Files          90       90
  Lines        5917     5946      +29
  Branches      494      499       +5
==========================================
+ Hits         5864     5883      +19
- Misses         50       60      +10
  Partials        3        3

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

I don't know how to have 100% of code coverage with Vue 2 conditions, maybe it's possible to combine multiple reports with nyc https://github.com/istanbuljs/nyc?tab=readme-ov-file#combining-reports-from-multiple-runs

@Graphmaxer Thanks for the PR. I try to look into it and think about it.
I don't like it to have a new package as dependency. I hopefully find a solution to your problem.
Meanwhile it would be good if could write a test for this.

I updated the test performance/prevent_rerender_of_child_components to be compatible with Vue 2 and it is failing because of a lack of reactivity. This test is already testing the bug.

I found a proper way without vue-demi as a direct dependency and added a specific tests to test reactivity and it is working great :)

Thanks for your PR, it works well for me, reactivity is working again! Tested on 2.7.16.

Any update on the review @CodeDredd ?


fix(select): highlight matched text by case-insensitive

Types of changes

[ ] New feature
[x] Bug fix
[ ] Enhancement
[ ] Documentation change
[ ] Coding style change
[ ] Component style change
[ ] Refactoring
[ ] Test cases
[ ] Continuous integration
[ ] Typescript definition change
[ ] Breaking change
[ ] Others

Background and context

Select组件，文本搜索功能，当输入小写时，大写的那些选项，有显示出来，但并不高亮

Solution

更改了getHighlightText工具函数的执行逻辑，使用带capture group功能的正则，来split字符串。
修复结果

How is the change tested?

Changelog

Component
Changelog(CN)
Changelog(EN)
Related issues

Checklist:

[ ] Test suite passes (npm run test)
[ ] Provide changelog for relevant changes (e.g. bug fixes and new features) if applicable.
[ ] Changes are submitted to the appropriate branch (e.g. features should be submitted to feature branch and others should be submitted to main branch)

Other information

其中，删除了2处类型，因为getHighlightText这个函数只在这一处有使用，而不需要多余的类型，所以为了简化处理，删除掉了


Added FreeTools to Web Applications

Hi there,
This repo is for free as in freedom software. Not for free as in free beer.
So, no proprietary software will be added.

This list is only for open source software.


Request: Output chat card when "Use (consumable name)" button is selected on the inventory page of character sheet.

In GitLab by @joshmvii on Feb 22, 2022, 11:26
Right now, only a message that's been used (and dice roll for healing potion, etc.) is outputted to chat when this button is selected, but it consumes the item. So in the case of items that have effects on them that need dragged, the effects have to be dragged before you use the item or else you'll lose the item (if it's your only one) and have to go find the effect. User would expect to use the item and then get the effect so it'd be a nice QoL change to get the card when it's used.

upvote!
But what i also suggest ontop of this is that a token should be selected before use consumable is selected and it auto applies the RE effects onto the token selected after the button is used.


Allow for a custom "waituntil" option on page load

If rendering a page that loads external assets then waitUntil using networkidle2 is insufficient as it renders before all assets are loaded.
Instead allow for a custom waitUntil option to be included, so that pages loading assets can force wait for those assets to load - either networkidle0 or load.

@lennym

wait for those assets to load - either networkidle0 or load.

Do you mean either networkidle2 or load.?

No. They're both legit options, but networkidle2 doesn't fit my needs.
networkidle2 waits until no more than 2 network requests are active. This doesn't work if you load a single css file.
networkidle0 is the same, except it waits until 0 active requests.

Is the reasoning behind defaulting to networkidle2 that you suspect that most consumers won't be loading external assets?

The reasoning behind defaulting to networkidle2 here is that that's what it was before, and I didn't fancy a debate about changing the default.
The reasoning behind it being that before (remembering that I did it), was that that's what it was in the example  copy-pasted.

If we want to have the debate, I'd advocate for load as default because for most of our cases we don't have large numbers of heavy assets - mostly likely just css that we want to load - and so load gives the most predictable results (albeit with a minor perf penalty).

From the docs
The page.goto will throw an error if:
...
 - the timeout is exceeded during navigation.

I agree, but we should keep an eye on this ^

The default timeout is 30 seconds though, so if that's happening then you've got bigger problems.

+1 for load as default

Cool, I'll do it now then (and in doing so negate the need for the rest of the PR 😉).

Done.


We need to sync users from OldCantus

We discovered yesterday that the user synchronization process is not included in the main data migration process instructions. Further, the necessary script depends on several CSV files that are to be "obtained from Junhao".
There was some talk of manually making changes to the user list following the final data migration, but this is impractical because users will have been given access to sources - we don't want anyone (developer or Debra) to have to re-grant access to a bunch of necessary sources for a bunch of users.
@jwang44 has graciously agreed to try to do his best to recreate these files around when we do the final data synchronization. Many thanks, Junhao!
(UPDATE: the following is now complete) We also need to update these scripts to assign users a random password (which they will then be able to change via the password reset links), rather than a set placeholder as is done currently.

We've assigned users random passwords and this has been completed.


Wasi adapter preview v2 try

Sorry for the noise, I managed to accidentally file this PR against the main repo instead of my private one (where we want to test the updated release pipeline for the wasi adapter provider)


Pset blinding transaction issuance inputs

Before this PSET blinder was only able to blind outputs.
After method blinder.BlindTransaction() is added it is possible to blind issuance in inputs and outputs.
Note that refactoring in issuance.go were done in order to be able to calculate asset/token hashes using new factory method NewTxIssuanceFromContractHash and invoking:
GenerateEntropy, GenerateAsset/GenerateReissuanceToken in sequence.
It closes #97
It closes #105
It closes #106
Please @altafan can you review this?

Currently TestCreateBlindIssuanceAndOutputSignAndBroadcast is not working.
There are no issues with blinding inputs, however, blinding outputs are failing(secp256k1.SurjectionProofInitialize) for the asset, which is added in AddIssuance method.

The problem with this PR was with the generation and usage of the blinding factors for the asset and token amount of an input issuance.
The first bug was that we were generating a random asset blinding factor, while this is required to be 0 since only the amounts of issuance are blinded.
The second problem was that we were not using the issuance amounts and their respective blinding factors for producing then blinding the outputs.
As explained here, the output's surjection proof is needed to verify that even if all blinded, the asset of the inputs match all the assets of the outputs.
Since in an issuance tx there are up to 2 extra outputs, asset out and token out, we need to use the same number of pseudo inputs created from the issuance input for generating the correct output surjection proofs.


Idea: Scaffolding for re-frame generators

Just some ideas for how to build large projects built on domain models and standardised patterns/vocabulary, structure etc. WIP
Create todo domain model with basic scaffolding:
re-frame new todo
File structure
+ todo
  todo-views.cljs
  todo-handlers.cljs
  todo-subscribers.cljs
  todo-utils.cljs

Scaffolding using conventions
(ns todo.views
    (:require [re-frame.core :refer [subscribe dispatch]]))

;; todo-views

(defn todo-actions [id]
  [:div {:class "actions"}
    [:button "Update" #(dispatch [:update-todo item])]
    [:button "Delete" #(dispatch [:del-todo item])]
  ]

(defn todo-item [item]
  [let item (subscribe [:get-todo-item item])
    [:li (:name item)] (todo-actions item)])

(defn todo-list []
  [let list (subscribe [:get-todo-list])
    [:div
      [:ul
        (for [item list]
          (todo-item item))
      ]
      [:button "Create new Todo" #(dispatch [:new-todo])]
    ]
   ])

(ns todo.handlers
    (:require [re-frame.core :refer [register-handler]]))

;; todo handlers

(defn new-todo []
  (fn [db, [id]]
    ;; ...
    ))

(defn edit-todo []
  (fn [db, [id]]
    ;; ...
    ))

(defn del-todo []
  (fn [db, [id]]
    ;; ...
    ))

(register-handler :new-todo new-todo)
(register-handler :edit-todo edit-todo)
(register-handler :del-todo del-todo)

```cljs
(ns todo.subscribers
    (:require-macros [reagent.ratom :refer [reaction]])

;; todo subscribers
;; use reactions

return single item record
(defn get-todo-item [db, [id]] {id: 1 name: "Todo item"})

;; return list of item ids
(defn get-todo-list [db, []] [1])

These scaffolding templates could (naturally) be customised on a per project or technology stack level

I've been thinking about this a little bit too, https://github.com/weavejester/lein-generate, or https://github.com/seancorfield/boot-new/issues/3 would both be good for this. Or you could use something like yeoman?

I have good experience with Slush for this ;)
http://slushjs.github.io/#/

Started something here... https://github.com/kristianmandrup/slush-reframe

@kristianmandrup Oh this is a fun idea! I've never used slush before, but interested to try out slush-reframe. Since it isn't on npm yet, how would I go about using it locally?

I made some fixes, tested it out in a real project. Looks to be working now, just need better templates ;)
Also updated README with instructions for running locally and developing/debugging to fit your own needs...

I published slush-reframe version 0.1.0 after testing it in Cursive IDE. Looks fine now.

Sweet, just made my first scaffold with slush-reframe. Thanks for creating this!  If you'd like to add a link in re-frame-template README to your repo, I'd be happy to accept the PR. Probably a short blurb at the bottom of the usage section.
As an aside, looks like the subscribes are missing an inner (fn [] ... ) between them and the hiccup.

Thanks :)

Added link. Oh awesome, keep me posted about the book :+1:


Improvement for k8s.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/

The following statement is very clear:

Control Planes manage the cluster and the nodes that are used to host the running application.

However, the subsequent paragraph really muddies the water:

A Kubernetes cluster that handles production traffic should have a minimum of three nodes because if one node goes down, both an etcd member and a control plane instance are lost, and redundancy is compromised. You can mitigate this risk by adding more control plane nodes.

Are control planes also nodes? The initial statement seems to imply that they are distinct from nodes. For someone like myself, who is very new to the world of deployment, the language in these docs assumes an existing understanding of the subject that makes them somewhat inaccessible.

@derynL, Yes control plane is also a node - https://kubernetes.io/docs/concepts/overview/components/

tutorials are more practical or hands-on approach to learn kubernetes but it would be best  if you can spend some time in concepts section - https://kubernetes.io/docs/concepts/. Concepts will help you to understand k8s components, objects and resources.

/sig docs
/language en
/kind feature


Support Environment Variables in Body File

As an enhancement of #14, another nice-to-have feature would be the support of environment variables for the string specifying the response file.
This should open up many convenient use cases.
E.g. ~/test.txt expands to /home/jack/test.txt
But also: $HOME, $TMP, $USER, $PATH, $LANGUAGE ...

Wow, that was quick action! Amazing!

Cool, thanks for the ideas, I've never though about it.
BTW: I saw you were working on https://github.com/asciimoo/wuzz/issues/72#issuecomment-284073151, it would be awesome to get your help on a debian package for httplab too :)

@gchaincl I'll look into it, but since your project isn't a dependency mess, it shouldn't be too hard :-)
Although I can't give you an ETA yet.

Ok, great to hear!, There's no hurries on this.


llvm-cov report - no filenames specified

I've been trying to add coverage for the Rust part of a combined Python and Rust project. I've got it working for our linux CI builds, but trying the same thing for Windows is leading to this error:
Run cargo llvm-cov report --manifest-path=rust\Cargo.toml --codecov --output-path codecov.json -vvv

     Running `C:\Users\runneradmin\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\bin\llvm-profdata.exe merge -sparse -f D:\a\kolo\kolo\python\rust\target\rust-profraw-list -o D:\a\kolo\kolo\python\rust\target\rust.profdata`
     Running `C:\Users\runneradmin\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\bin\llvm-cov.exe export -format=text -use-color=0 -instr-profile=D:\a\kolo\kolo\python\rust\target\rust.profdata -ignore-filename-regex \\rustc\\[0-9a-f]+\\|^D:\\a\\kolo\\kolo\\python\\rust(\\.*)?\\(tests|examples|benches)\\|^D:\\a\\kolo\\kolo\\python\\rust\\target($|\\)|^C:\\Users\\runneradmin\\\.cargo\\(registry|git)\\|^C:\\Users\\runneradmin\\\.rustup\\toolchains($|\\)`
error: failed to generate report: process didn't exit successfully: `C:\Users\runneradmin\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\bin\llvm-cov.exe export -format=text -use-color=0 -instr-profile=D:\a\kolo\kolo\python\rust\target\rust.profdata -ignore-filename-regex \\rustc\\[0-9a-f]+\\|^D:\\a\\kolo\\kolo\\python\\rust(\\.*)?\\(tests|examples|benches)\\|^D:\\a\\kolo\\kolo\\python\\rust\\target($|\\)|^C:\\Users\\runneradmin\\\.cargo\\(registry|git)\\|^C:\\Users\\runneradmin\\\.rustup\\toolchains($|\\)` (exit code: 1)
--- stderr
No filenames specified!

I have confirmed that the .profraw files are generated and are in the directory I expect them in:
Run dir rust\target

    Directory: D:\a\kolo\kolo\python\rust\target

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----           8/11/2023 10:56 AM                debug
-a---           8/11/2023 10:55 AM           1048 .rustc_info.json
-a---           8/11/2023  9:00 AM            177 CACHEDIR.TAG
-a---           8/11/2023 10:56 AM        2377336 rust-1720-9197467843878644390_0.profraw
-a---           8/11/2023 10:57 AM        2377336 rust-3488-9197467843878644390_0.profraw
-a---           8/11/2023 10:57 AM        2377336 rust-4996-9197467843878644390_4.profraw
-a---           8/11/2023 10:57 AM        2377336 rust-5820-9197467843878644390_4.profraw
-a---           8/11/2023 10:57 AM        2377336 rust-5936-9197467843878644390_0.profraw

I'm at a loss how to further debug this.

The report subcommand does not work by itself. Could you provide information on all the commands you have run?
Also, is it possible to provide the information needed to reproduce this, such as code, workflows, compiler version, etc.?

Hi! Sorry for not giving enough detail before. Here's the github actions workflow file (with some irrelevant jobs omitted):
on:
  push:
    paths:
      - .github/workflows/python-package.yml
      - python/**
  pull_request_target:
    paths:
      - .github/workflows/python-package.yml
      - python/**

jobs:
  python-package:
    if:
      (github.actor != 'dependabot[bot]' && github.event_name == 'push') ||
      (github.actor == 'dependabot[bot]' && github.event_name == 'pull_request_target')
    strategy:
      matrix:
        python: ["3.8", "3.9", "3.10", "3.11", "pypy-3.9", "pypy-3.10"]
        django: ["3.2.0", "4.1.0", "4.2.0"]
      fail-fast: false
    runs-on: buildjet-2vcpu-ubuntu-2204
    defaults:
      run:
        working-directory: ./python
    steps:
    - name: Checkout
      if: ${{ github.event_name != 'pull_request_target' }}
      uses: actions/checkout@v3

    - name: Checkout PR
      if: ${{ github.event_name == 'pull_request_target' }}
      uses: actions/checkout@v3
      with:
        ref: ${{ github.event.pull_request.head.sha }}

    - name: Install Rust toolchain
      uses: dtolnay/rust-toolchain@stable
      with:
        components: llvm-tools-preview

    - name: Install cargo-llvm-cov
      uses: taiki-e/install-action@cargo-llvm-cov

    - uses: Swatinem/rust-cache@v2
      with:
        workspaces: python/rust

    - uses: actions/setup-python@v2
      with:
        python-version: ${{ matrix.python }}
        cache: "pip"
        cache-dependency-path: python/dev-requirements.txt
    - run: python -m venv .venv
    - run: .venv/bin/pip install -r dev-requirements.txt
    - run: .venv/bin/pip install django~=${{ matrix.django }}
    - run: .venv/bin/pip install maturin
    - run: .venv/bin/maturin develop --profile dev --extras=test_generation
      env:
        RUSTFLAGS: -C instrument-coverage -C llvm-args=--instrprof-atomic-counter-update-all --cfg=coverage --cfg=trybuild_no_target
        CARGO_INCREMENTAL: 0
        CARGO_LLVM_COV: 1
    - run: .venv/bin/pip list
    - run: .venv/bin/coverage run -m pytest --ignore=tests/simplepoll
      env:
        PYTHONFAULTHANDLER: 1
        RUST_BACKTRACE: 1
        LLVM_PROFILE_FILE: ${{ github.workspace }}/python/rust/target/rust-%p-%8m.profraw
        CARGO_LLVM_COV_TARGET_DIR: ${{ github.workspace }}/python/rust/target
    - run: .venv/bin/coverage combine
    - run: .venv/bin/coverage xml
    - run: pwd
    - run: head -n 100 coverage.xml
    - run: cargo llvm-cov report --manifest-path=rust/Cargo.toml --codecov --output-path codecov.json
      env:
        LLVM_PROFILE_FILE: ${{ github.workspace }}/python/rust/target/rust-%p-%8m.profraw
        CARGO_LLVM_COV_TARGET_DIR: ${{ github.workspace }}/python/rust/target
      if: ${{ !contains( matrix.python, 'pypy') }}
    - run: |
        . .venv/bin/activate
        cargo llvm-cov --manifest-path=rust/Cargo.toml --all-features --workspace --codecov --output-path codecov-unit.json
      env:
        LLVM_PROFILE_FILE: ${{ github.workspace }}/python/rust/target/rust-%p-%8m.profraw
        CARGO_LLVM_COV_TARGET_DIR: ${{ github.workspace }}/python/rust/target
      if: ${{ !contains( matrix.python, 'pypy') }}
    - name: codecov
      uses: codecov/codecov-action@v3
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
        flags: linux,${{ matrix.python }},${{ matrix.django }}
        verbose: true
        files: codecov.yaml,python/coverage.xml,python/codecov.json,python/codecov-unit.json

  windows:
    if:
      (github.actor != 'dependabot[bot]' && github.event_name == 'push') ||
      (github.actor == 'dependabot[bot]' && github.event_name == 'pull_request_target')
    strategy:
      matrix:
        python: ["3.8", "3.9", "3.10", "3.11", "pypy-3.9", "pypy-3.10"]
      fail-fast: false
    runs-on: windows-latest
    defaults:
      run:
        working-directory: ./python
    steps:
    - name: Checkout
      if: ${{ github.event_name != 'pull_request_target' }}
      uses: actions/checkout@v3

    - name: Checkout PR
      if: ${{ github.event_name == 'pull_request_target' }}
      uses: actions/checkout@v3
      with:
        ref: ${{ github.event.pull_request.head.sha }}
    - name: Install Rust toolchain
      uses: dtolnay/rust-toolchain@stable

    - uses: Swatinem/rust-cache@v2
      with:
        workspaces: python/rust
    - uses: actions/setup-python@v2
      with:
        python-version: ${{ matrix.python }}
        cache: "pip"
        cache-dependency-path: python/dev-requirements.txt
    - run: python -m venv .venv
    - run: .venv/Scripts/pip install -r dev-requirements.txt
    - run: .venv/Scripts/pip install django -U
    - run: .venv/Scripts/pip install maturin
    - run: .venv/Scripts/maturin develop --profile dev --extras=test_generation
    - run: .venv/Scripts/coverage run -m pytest --ignore=tests/simplepoll
      env:
        PYTHONFAULTHANDLER: 1
        RUST_BACKTRACE: 1
    - run: .venv/Scripts/coverage combine
    - run: .venv/Scripts/coverage xml
    - run: pwd
    - run: head -n 100 coverage.xml
    - run: mv coverage.xml ..
    - name: codecov
      uses: codecov/codecov-action@v3
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
        flags: windows,${{ matrix.python }}
        verbose: true

The python-package version collects and reports coverage information, but the windows version leads to the error above.
The code being tested is not straightforward to share, but I will try to create a smaller replication.

Just encountered a similar issue, I was basically doing
cargo llvm-cov nextest run --no-report --workspace
cargo llvm-cov report --html

(I'm not passing --html to cargo llvm-cov nextest directly because I want to collect more coverage before reporting).
error message:
$ cargo llvm-cov report --html -vvv
     Running `/home/ubuntu/.rustup/toolchains/1.71.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-profdata merge -sparse -f /home/ubuntu/workspace/example/target/llvm-cov-target/example-profraw-list -o /home/ubuntu/workspace/example/target/llvm-cov-target/example.profdata`
     Running `/home/ubuntu/.rustup/toolchains/1.71.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-cov show -format=html -instr-profile=/home/ubuntu/workspace/example/target/llvm-cov-target/example.profdata -ignore-filename-regex '/rustc/[0-9a-f]+/|^/home/ubuntu/workspace/example(/.*)?/(tests|examples|benches)/|^/home/ubuntu/workspace/example/target/llvm\-cov\-target($|/)|^/home/ubuntu/\.cargo/(registry|git)/|^/home/ubuntu/\.rustup/toolchains($|/)' -show-instantiations=true -show-line-counts-or-regions -show-expansions -Xdemangler=/home/ubuntu/.cargo/bin/cargo-llvm-cov -Xdemangler=llvm-cov -Xdemangler=demangle -output-dir=/home/ubuntu/workspace/example/target/llvm-cov/html`
No filenames specified!

I also noticed that the LLVM_PROFILE_FILE environment variable used in cargo llvm-cov nexttest is different with cargo llvm-cov show-env --export-prefix, is this intentional?

@messense

cargo llvm-cov nextest run --no-report --workspace

cargo llvm-cov nextest internally calls cargo nextest run, so your problem is that you are using extra run that works as a test name filter.
This is already documented (https://github.com/taiki-e/cargo-llvm-cov/issues/233), but I filed https://github.com/taiki-e/cargo-llvm-cov/issues/302 because I think we can warn them in a more obvious way.

I also noticed that the LLVM_PROFILE_FILE environment variable used in cargo llvm-cov nexttest is different with cargo llvm-cov show-env --export-prefix, is this intentional?

It is intentional.
https://github.com/taiki-e/cargo-llvm-cov/blob/4e328ca27255fe98b2a0a0f6a772f26d8cbfa9d2/src/cargo.rs#L78-L83
This is related to the fact that show-env has no way to tell subsequent (normal) cargo commands about changes of the target directory well.

@taiki-e unfortunately removing run still gives the same error
$ cargo llvm-cov nextest--no-report --workspace
# omitted ...
Summary [  32.620s] 274 tests run: 274 passed, 0 skipped
$ cargo llvm-cov report --html -vv
Running `/home/ubuntu/.rustup/toolchains/1.71.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-profdata merge -sparse -f /home/ubuntu/workspace/example/target/llvm-cov-target/example-profraw-list -o /home/ubuntu/workspace/example/target/llvm-cov-target/example.profdata`
     Running `/home/ubuntu/.rustup/toolchains/1.71.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-cov show -format=html -instr-profile=/home/ubuntu/workspace/example/target/llvm-cov-target/example.profdata -ignore-filename-regex '/rustc/[0-9a-f]+/|^/home/ubuntu/workspace/example(/.*)?/(tests|examples|benches)/|^/home/ubuntu/workspace/example/target/llvm\-cov\-target($|/)|^/home/ubuntu/\.cargo/(registry|git)/|^/home/ubuntu/\.rustup/toolchains($|/)' -show-instantiations=true -show-line-counts-or-regions -show-expansions -Xdemangler=/home/ubuntu/.cargo/bin/cargo-llvm-cov -Xdemangler=llvm-cov -Xdemangler=demangle -output-dir=/home/ubuntu/workspace/example/target/llvm-cov/html`
No filenames specified!
error: failed to generate report: process didn't exit successfully: `/home/ubuntu/.rustup/toolchains/1.71.1-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-cov show -format=html -instr-profile=/home/ubuntu/workspace/example/target/llvm-cov-target/example.profdata -ignore-filename-regex '/rustc/[0-9a-f]+/|^/home/ubuntu/workspace/example(/.*)?/(tests|examples|benches)/|^/home/ubuntu/workspace/example/target/llvm\-cov\-target($|/)|^/home/ubuntu/\.cargo/(registry|git)/|^/home/ubuntu/\.rustup/toolchains($|/)' -show-instantiations=true -show-line-counts-or-regions -show-expansions -Xdemangler=/home/ubuntu/.cargo/bin/cargo-llvm-cov -Xdemangler=llvm-cov -Xdemangler=demangle -output-dir=/home/ubuntu/workspace/example/target/llvm-cov/html` (exit status: 1)

@messense
Hmm. Assuming you are not running the test on windows, that is odd because the command you ran (the one without the extra "run") works fine on at least some of my projects.
Is it possible to provide the information needed to reproduce this, such as code, workflows, compiler/cargo-llvm-cov/cargo-nextest versions, etc.?

$ rustc -V
rustc 1.71.1 (eb26296b5 2023-08-03)

$  cargo llvm-cov --version
cargo-llvm-cov 0.5.27

$ cargo nextest --version
cargo-nextest-nextest 0.9.57

I don't have a minimal repro yet, a simple hello world library crate works fine.

This is related to the fact that show-env has no way to tell subsequent (normal) cargo commands about changes of the target directory well.

Does is make sense to add an option to output the same env var values as cargo llvm-cov so it's easier to merge reports?

This is related to the fact that show-env has no way to tell subsequent (normal) cargo commands about changes of the target directory well.

Does is make sense to add an option to output the same env var values as cargo llvm-cov so it's easier to merge reports?

I don't think I fully understand what you mean, but I think that's what the show-env subcommand does.

cargo-llvm-cov commands (other than show-env) use the same target directory (and env vars) by default.
cargo-llvm-cov and other cargo commands do not use the same target directory (and env vars) by default, so show-env adjusts that.

Only in the latter case is adjustment (show-env) needed.
See also https://github.com/taiki-e/cargo-llvm-cov/pull/115 (which had some problems trying to use the same target directory), and https://github.com/taiki-e/cargo-llvm-cov/pull/121 (which fixed problems by changing to the current way), for problems with the target directory in show-env.

@LilyFoote

Here's a minimised example
https://github.com/LilyFoote/llvm-cov-windows-bug

Thanks. You seem to be manually setting some of the environment variables that cargo llvm-cov show-env sets, would the same problem occur if you used source <(cargo llvm-cov show-env --export-prefix) instead of setting them manually?

@taiki-e Thanks! My bad, I was trying to use both cargo llvm-cov nextest and source <(cargo llvm-cov show-env --export-prefix), I should use this instead
source <(cargo llvm-cov show-env --export-prefix)
cargo nextest run
# other coverage collection commands
cargo llvm-cov report --html

@taiki-e That seems to work for linux, but not for windows - I get a parser error:
Run source <(cargo llvm-cov show-env --export-prefix --manifest-path=rust\Cargo.toml)
ParserError: D:\a\_temp\9f4104b9-187b-4c10-acb1-975c3498a176.ps1:2
Line |
   2 |  source <(cargo llvm-cov show-env --export-prefix --manifest-path=rust …
     |         ~
     | The '<' operator is reserved for future use.

https://github.com/LilyFoote/llvm-cov-windows-bug/actions/runs/5877498670/job/15937744529

I get a parser error:

@LilyFoote  Could you try with shell: bash?

I got that running, but we still have the original error:
https://github.com/LilyFoote/llvm-cov-windows-bug/actions/runs/5877711598/job/15938334102

I got this error when trying to manually implement build/test separation via Nextest archiving in CI. It might not be the same issue, since Nextest is not involved in the above operations, but it might at least be another data point for you.
Here's an example project and here's the job with the "no filenames specified" error.
I suspect that the common factor here is that there is an important file that is missing by the time the report command is run. In my case, because I do not copy it over between containers, in OP's case maybe some build tool is deleting it as part of a clean action? But I have no idea what files need to persist in order to "merge" coverage runs, and I can't find documentation on it.
(Note that in my original CI config I do actually copy the .profraw files between containers, I just removed that step to minimise the example.)

I think your issue is unrelated to this since nextest archive is not yet supported. Try #266 with my patch.

I hid comments unrelated to this issue as off-topic.

The issue @messense has encountered is misuse due to lack of clarity in the documentation or lack of warnings. The situation here will be improved by adding warnings for such cases. See (and subscribe) https://github.com/taiki-e/cargo-llvm-cov/issues/302 and https://github.com/taiki-e/cargo-llvm-cov/issues/305 if you are interested in the status of adding warnings.
The issue @detly has encountered is the lack of nextest archive support. This is tracked in https://github.com/taiki-e/cargo-llvm-cov/issues/265. The PR supporting it (https://github.com/taiki-e/cargo-llvm-cov/pull/266) is stalled, but the implementation itself should work (with my patch), so if there is no response from the PR author, I may add a commit to that PR and merge it. See (and subscribe) these issue and PR if you are interested in the status of supporting it.

And one of the reasons this issue has received unrelated additional reports is that the error itself is unclear. This is related to the fact that the error is handled on the llvm-tools side, and reporting the error with some hint on the cargo-llvm-cov side before passing arguments to llvm-tools should improve the situation (https://github.com/taiki-e/cargo-llvm-cov/issues/306).
As for the issue @LilyFoote has encountered (the original topic of this issue -- I think that is cargo-llvm-cov or llvm-tools bug), I will fork your reproduction repo later and look into it. I'm guessing it is probably a windows path issue, but I'm still not sure what it really is.

The issue @detly has encountered is the lack of nextest archive support. This is tracked in Any plans to make this work with --archive-file ? #265. The PR supporting it (Use extract-to if using --archive-file with nextest #266) is stalled, but the implementation itself should work (with my patch), so if there is no response from the PR author, I may add a commit to that PR and merge it. See (and subscribe) these issue and PR if you are interested in the status of supporting it.

Btw, this has been supported in v0.6.0.


Increase penalty for getting a question wrong?

Score currently seems to be mostly representative of how many questions they've done, not how "good" someone is at getting questions correct (eg. it's more like a sum, rather than an elo-type ranking).
I think if we make penalties 50 instead of 30, it'll help alleviate some of this? Alternatively, we could weight questions differently based on what percent of people have gotten that question right so far, although this is definitely more complex and unintuitive.

I don't think making the penalty 50 points instead of 30 points will help. Skill in the game relates to the average points per snippet.
If someone has an average of only 2 points per snippet, then they can just keep doing this until they are on the leaderboard. Increasing the penalty by a fixed amount will only decrease the average points per snippet, making it impossible for beginners to get a positive score.
My suggestion is to penalize in relation to a players current score. Probably max(30, score / 100) would work decently. Everyone below 3000 points would still get the 30 point penalty, but there will be a ceiling determined by skill. I average around 40 points per snippet, and I have a little more than half of them correct (So, I get 70 points on average per correct snippet). With this, my maximum score would become approximately 7000 points.
At that point, I would have to start playing strategically and make sure I get my average up. Right now I consider the game beaten because I arrived on the leaderboard easily but I would have to answer an additional 9000 snippets before reaching the number 0 spot (without any new skill required).
PS: This is not entirely true, because I think it would take a very long time getting to 385k. So perhaps this was reached by another strategy. 385k would be 3200 snippets even with a perfect 120 points average.

I don't think making the penalty 50 points instead of 30 points will help. Skill in the game relates to the average points per snippet.
If someone has an average of only 2 points per snippet, then they can just keep doing this until they are on the leaderboard. Increasing the penalty by a fixed amount will only decrease the average points per snippet, making it impossible for beginners to get a positive score.
My suggestion is to penalize in relation to a players current score. Probably max(30, score / 100) would work decently. Everyone below 3000 points would still get the 30 point penalty, but there will be a ceiling determined by skill. I average around 40 points per snippet, and I have a little more than half of them correct (So, I get 70 points on average per correct snippet). With this, my maximum score would become approximately 7000 points.
At that point, I would have to start playing strategically and make sure I get my average up. Right now I consider the game beaten because I arrived on the leaderboard easily but I would have to answer an additional 9000 snippets before reaching the number 0 spot (without any new skill required).
PS: This is not entirely true, because I think it would take a very long time getting to 385k. So perhaps this was reached by another strategy. 385k would be 3200 snippets even with a perfect 120 points average.

The amount of snippets is limited. You can't just answer more questions if you have them wrong often.

The amount of snippets is limited. You can't just answer more questions if you have them wrong often.


Add regr_intercept and regr_slope Presto agg functions

Description
Add regr_intercept and regr_slope agg functions in Presto.

@mbasmanova Could you also review this PR?


Incorrect time formatting in graphs

Home Assistant release (hass --version):
0.64.0
Python release (python3 --version):
Python 3.6.4
Component/platform:
graph
Description of problem:
Time is incorrectly formatted as 12 hour AM/PM despite firefox locale being set to en-GB and linux locale to en-DK.
This was also an issue previously with the old charts.

Expected:
Time to be formatted as 24 hour.
Additional info:
>window.navigator.language
"en-GB"

/move to home-assistant-polymer


Update assetlist.json

update spitz

Closing due to age/staleness. Feel free to reopen and address the comments


"Unfortunately you do not appear to be using equinox.filter_jit" Thrown when using equinox.filter_jit!

I'm trying to solve for a parameterised ODE using optimistix (when I remove diffrax from the equation the problem goes away) and when the max step is reached in the solve, the XLARuntimeError is thrown and this is printed no matter if I'm using jit, filter_jit or neither:
"An error occurred during the runtime of your JAX program! Unfortunately you do not appear to be using equinox.filter_jit (perhaps you are using jax.jit instead?) and so further information about the error cannot be displayed. (Probably you are seeing a very large but uninformative error message right now.) Please wrap your program with equinox.filter_jit."
This isn't a huge issue, but I'm also experiencing some strange behavior with function/model recompiling and low resource usage that I suspect might be related as this message also arises from places it seems it shouldn't, although I haven't explored that thoroughly.
Here's a MWE:
import jax
import equinox as eqx
import diffrax as dx
import optimistix as optx
import jax.numpy as np

jax.config.update("jax_enable_x64", True)

# Polynomial function we want to solve for
def poly_fn(c, x):
    return c[0] * x + c[1] * (x**2) + c[2] * (x**3)

# Measured charge is a polynomial of the total illuminance
coeffs = np.array([2, -1, 0.0])  # Polynomial coefficients
illuminance = 1  # Source term
ts = np.linspace(0, 1, 10)  # Time samples
charge = jax.vmap(poly_fn, (None, 0))(coeffs, illuminance * ts)

# Define the function and solver classes
class Func(eqx.Module):
    coeffs: np.ndarray

    def __init__(self, order=4):
        self.coeffs = 0.0 * np.zeros(order - 1)

    def derivative(self, t, charge, illuminance):
        poly_grad = jax.grad(lambda x: poly_fn(self.coeffs, x * illuminance))
        dqdt = illuminance + poly_grad(t)
        return dqdt

    def __call__(self, t, y, args):
        return self.derivative(t, y, args)

class ODESolver(eqx.Module):
    func: Func

    def __init__(self, func=None, steps=200):
        self.func = func

    def solve_fn(self, illuminance):
        steps = 100
        ts = np.linspace(0, 1, 10)

        # Solve the ODE
        solution = dx.diffeqsolve(
            terms=dx.ODETerm(self.func),
            solver=dx.Tsit5(),
            stepsize_controller=dx.PIDController(rtol=1e-3, atol=1e-3),
            adjoint=dx.DirectAdjoint(),
            y0=np.zeros_like(illuminance),
            args=(illuminance),
            t0=np.array(0.0),
            t1=np.array(1.0),
            dt0=np.array(1 / steps),
            saveat=dx.SaveAt(ts=ts),
            throw=False,
        )
        return solution

# Minisie function
@eqx.filter_jit # Error arises if this is here or not
def min_fn(y, args):
    ode_model, illuminance, charge = args
    ode_model = eqx.tree_at(lambda x: x.func.coeffs, ode_model, y)
    residuals = charge - ode_model.solve_fn(illuminance).ys
    return np.square(residuals).sum()

# Construct
func = Func()
ode_model = ODESolver(func)
init_parameters = np.zeros(func.coeffs.shape)
args = (ode_model, illuminance, charge)

# Solve
solver = optx.BFGS(rtol=1e-8, atol=1e-8)
sol = optx.least_squares(min_fn, solver, init_parameters, args=args, max_steps=1)

sol.value

Versions
jax: 0.4.33
jaxlib: 0.4.33
equinox: 0.11.7
diffrax: 0.6.0
optimistix: 0.0.8

Ech. It looks like something changed in JAX 0.4.33, with how XLA handles failures in callbacks. I've worked around this in https://github.com/patrick-kidger/equinox/pull/867
In terms of what has changed, it seems like:

Under some circumstances, an error in a callback will result in the JIT'd computation returning (not raising an error). Querying one of the returned arrays for their value will then raise the actual error. (E.g. you can trigger this via block_until_ready or print.)
Exactly what those circumstances are isn't clear. Simple programs involving errors in pure_callback don't exhibit the above behaviour.
The actual error that you're seeing in your current code is actually raised by an atexit handler, when it attempts to wait on any runtime side-effects that haven't yet completed. If you wanted then you could try continuing with your program, and you wouldn't necessarily even notice...

As such I've worked around this by (a) having filter_jit return an extra dummy value that we block_until_ready on, and (b) monkey-patching the atexit handler not to show errors. (Which it really shouldn't do anyway, atexit handlers should not be going around raising errors.)
This solution does mean that anyone who (a) imports Equinox and then (b) calls jax.jit but (c) never use its output, will never actually see any error messages. Whilst not ideal I think that's probably fine, as not using the output feels pretty implausible.


Update Dockerfile — change -slim to -slim-bullseye

Not sure if this is useful, as the build worked with both -slim and -slim-bullseye — with the expected log differences, such as the reference to bookworm when using -slim and bullseye when set specifically.
I did not run the output of the build. I don’t have a setup to test with AFAIK.

Given this process doesn’t load libindy it appears (askar only?) I’m not sure this is worth merging. I’ll leave it to you (@dbluhm @WadeBarnes ) to decide if it is a good to merge or just cancel this PR.

Addresses issue #17

If everything still works with the latest version of python:x.x-slim which is now base on Debian bookworm then I'd leave it.  By setting things to -slim-bullseye you're actually reverting to an older OS for the base.

Sounds good.  I started down the path before trying things out. Makes sense it is not needed.  Closing.


Re-submission (Group 67): 2052519_2353095_2352969_2353150_2353094

README
Overview
This project contains two cutting stock problem policies implemented as Python classes. Each policy is designed to handle the allocation of product sizes to available stock grids efficiently. The two classes are:

FirstCutPolicy: Implements a heuristic-based approach to place products sequentially into stocks by finding valid subgrid positions.
ColumnGeneration: Uses the column generation technique to iteratively optimize cutting patterns for better resource utilization.

FirstCutPolicy
Description
The FirstCutPolicy is a straightforward heuristic-based method that aims to place products into the first available stock where they fit. It prioritizes simplicity and computational efficiency over global optimization.
Algorithm Steps

Iterate through the list of products, checking their demand and sizes.
For each product, iterate through all available stocks.
Use subgrid checking to find a valid position where the product can fit in the stock.
Place the product and update the stock grid.
Return the placement action or None if no valid placement is found.

ColumnGeneration
Description
The ColumnGeneration class implements the column generation optimization method, a more advanced approach designed to minimize material waste while fulfilling product demand. It combines a master problem and a pricing problem to iteratively refine cutting patterns.
Algorithm Steps

Initialization:

Generate initial patterns based on product sizes and stock dimensions.
Ensure patterns are unique.

Master Problem:

Solve a linear program to allocate demand across existing patterns.
Extract dual prices from the solution to guide the pricing problem.

Pricing Problem:

Use dynamic programming to find new patterns with the highest reduced cost.
Add the new pattern if it improves the solution.

Pattern Selection:

Choose the pattern that maximizes demand coverage and minimizes cost.

Action Conversion:

Convert the selected pattern into a placement action.

Comparison of Policies

Feature
FirstCutPolicy
ColumnGeneration

Type
Heuristic
Optimization-based

Efficiency
Fast, simpler logic
Slower, computationally intensive

Optimality
Suboptimal, greedy placement
Near-optimal patterns

Complexity
Low
High

Use Case
Small-scale problems, quick results
Large-scale problems requiring minimal waste

Policy Performance Comparison

Policy
Filled Ratio
Trim Loss

FirstCutPolicy
0.14
0.2216599996670104

ColumnGeneration
0.2
0.19658451138683425

Dear Mr. Duc,
I have realized that there were duplicate files in my submission folder. Thank you and sorry for taking up your time.


custom lyrics

please add a feature for the custom lyrics input and other extend feature (if possible)

Hello @katywilliams1121,
Thank you for your suggestion regarding custom lyrics input and extension features. I am pleased to inform you that we have updated the README and released a new version of the UdioWrapper that now comprehensively includes these features, including enhanced capabilities for handling custom lyrics.
Please make sure to update the library to the latest version to access these new functionalities and improvements.
You can do this by running:
pip install --upgrade --no-cache-dir udio_wrapper

You will find detailed examples of how to use the custom lyrics input for the initial song, extensions, and outros in the updated README. These examples should provide you with clear guidance on how to tailor the song generation process to your specific needs.
We appreciate your feedback and hope that the new functionalities and improvements meet your expectations.
Best regards,


Invalid syntax

I'm getting an invalid syntax error in python 3.5
>>> from pytrendsdaily import getDailyData

Traceback (most recent call last):

  File "/home/adam/.pyenv/ep-chan/lib/python3.5/site-packages/ipython-7.4.0-py3.5.egg/IPython/core/interactiveshell.py", line 3296, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)

  File "<ipython-input-3-531ae61cfc18>", line 1, in <module>
    from pytrendsdaily import getDailyData

  File "/home/adam/.pyenv/learn-r/lib/python3.5/site-packages/pytrendsdaily/__init__.py", line 1, in <module>
    from .dailydata import getDailyData

  File "/home/adam/.pyenv/learn-r/lib/python3.5/site-packages/pytrendsdaily/dailydata.py", line 29
    return f"{start.strftime('%Y-%m-%d')} {stop.strftime('%Y-%m-%d')}"
                                                                     ^
SyntaxError: invalid syntax

And I get a different invalid syntax error in python 2.7:
>>> from pytrendsdaily import getDailyData
File "/home/adam/.pyenv/learn-r/lib/python3.5/site-packages/pytrendsdaily/dailydata.py", line 10
    def getLastDateOfMonth(year: int, month: int) -> date:
                               ^
SyntaxError: invalid syntax

Looks like I need python >= 3.6? Installing 3.7.3, now.

Sorry, yes, I can clearly see from your setup.py that 3.6 is required. Closing the issue.
...
classifiers=[
        "Programming Language :: Python :: 3.6",
...

Hey @adam-hanna thanks for checking the code. Indeed, Python 3.6+ is required due to the use of f-Strings. It should work if you change it to use the .format string formatting. I am not sure what would be necessary to make it work with Python 2.x since I haven't really ever coded in Python 2.x. Please let me know if you find any other issues!


update to 1.19

updated fabric and mod file to 1.19.
Tested with midnightLib 0.5.2 and it works.
Tested with my mod Colwater and it works.

I have been really busy lately so thanks, I guess... .-.
I will publish this update soon


OK to upload Python 3.7 wheels?

I spent a little time configuring for Python 3.7 wheels:
https://github.com/MacPython/pywavelets-wheels
macOS , Windows and Linux builds already done, with passing tests, wheels available at:
https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com/
OK to upload these to PyPI?

Done.


Suport laravel 11 ?

When the Laravel 11 support will be released?

we're working on it, just as soon as https://github.com/nWidart/laravel-modules/pull/1758 is solved. We want to add a meaningful release.

we're working on it, just as soon as #1758 is solved. We want to add a meaningful release.

When can we expect the release of support for Laravel 11? Are we looking at around 1-2 weeks or a month? Our team is eagerly awaiting this moment.

All being well, later today. Got a few more tests to perform.

Is there any good news about updates to support Laravel 11 ?

I've just tagged v11 🎉
https://github.com/nWidart/laravel-modules/releases/tag/v11.0.0
Please see the upgrade guide at https://laravelmodules.com/docs/v11/upgrade
Thanks to everyone who's helped recently to get this over the line.


Remove gui_issue from issue templates

GUI template in GUI repository does not make sense because all issues created in this repo should be related to GUI. bitcoin/bitcoin has link for GUI repo in issue templates.
Before this PR:

After this PR:

This is a monotree. It is not possible to modify one repo, but not the other. Please submit your pull request to the main repo.


Lossless image compression

While I was compressing some images for a website I discover that this button http://mirrors.creativecommons.org/presskit/buttons/88x31/png/by-nc.eu.png can be reduced more than a 50% with lossless compression. I tested with some images from this page and most of them could be reduced.
It's not a huge change :) but it's easy to do and it can save some bandwidth.
Here's the original (9 KB):

And the compressed one (4 KB):

I used ImageOptim let me know if you want me to create a PR with the compressed images.

I don't really worry about the bandwidth of those images, but hopefully our licensebuttons from licensebuttons.net are optimized well.

Well, I tried to compress some of the images from licensebuttons and they could be compressed a bit (around ~8%) without losing quality. Not a big deal anyway because they are fairly small, so feel free to close this.

One thing you may be interested in: we're looking at providing the various license icons in a variety of sizes and colors.
You'll see a set we have here: https://licensebuttons.net/i/cc-gift-guide/
We made this crude tool for generating them: https://github.com/creativecommons/mp/tree/master/src/genimg
One PR I'd love to to see would be the various icons bundled into their respective license bundles (we want to serve a single image for each license, not 2-3) in a variety of sizes from something useful in a print publication, much like the images previously seen in this issue, right down to very small icons for a mobile app or similar. And of course, in a variety of foreground and background colors.

It's doable and interesting, will take a look after christmas.

That sounds great.


Backport of www-authenticate header to 1.17 and 1.18

If you are reporting any crash or any potential security issue, do not
open an issue in this repo. Please report the issue via emailing
<EMAIL_ADDRESS>where the issue will be triaged appropriately.
Title: Request of backport of JWT auth header fix (#16216)
Description:

Describe the issue.

The jwt_authn filter does not follow the HTTP specification and causes some clients to misbehave when receiving a 401 response. #16216 fixes this issue for the main branch and 1.19. This issue is to discuss the possibility of back-porting this change to 1.18 and 1.17. I would be willing to create and put up the PRs to do so.
[optional Relevant Links:]

Any extra documentation required to understand the issue.

After talking about this with other maintainers this seems like an okay thing to backport. Please get the 1.17 and 1.18 PRs ready and we'll get the process started

Both PRs are now opened! See #17441 and #17426

Backport completed


samples/tools/testbed/run_scenarios.py prepare the run script fails in windows environment

the run.sh will fail in the docker container in a windows environment if newline='\n' is not included in the call.
with open(os.path.join(work_dir, "run.sh"), "wt", newline='\n') as f:

Thanks for the report. I'll fix this ASAP, and include the fix in all cases where a file is written by the host OS, and read in the Docker image (I suspect that is the incompatibility here)

@garyfollett  I believe I have addressed this in PR #678
Please have a look and let us know if it works for you.


snowflake: PIVOT on derived table factors

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

7 of 9 (77.78%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.01%) to 87.649%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/parser/mod.rs
5
7
71.43%

Files with Coverage Reduction
New Missed Lines
%

src/parser/mod.rs
1
82.86%

Totals

Change from base Build<PHONE_NUMBER>:
-0.01%

Covered Lines:
17556

Relevant Lines:
20030

💛  - Coveralls


[FLNK-32027] Fix the potential concurrent reading bug of index file for SortMergeShuffle.

What is the purpose of the change
Fix the potential concurrent reading bug of index file for SortMergeShuffle.
Brief change log

Add a partition level lock for getIndexEntry

Verifying this change
This change added a unit test.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no

@reswqa Thanks for the fix, change LGTM. A typo in title: FLNK -> FLINK, you can correct it when merging.


We can merged it and move forward. I would like to start working on core tests. Do you mind me do that?

There's not a lot we can test in core, but I think it might be a good idea to add a `test

Merging this.


use action cable to set action cable mount url

action cable 默认mount位置是 "/cable", 使用helper设置，只需要维护一个地方，如果mount的url有变化的话 改 config.action_cable.mount_path 就行了，不用改两个地方
https://github.com/rails/rails/blob/master/actioncable%2Flib%2Faction_cable%2Fhelpers%2Faction_cable_helper.rb#L31

https://github.com/rails/rails/blob/master/actioncable%2Flib%2Faction_cable.rb#L38

Current coverage is 95.98%

Merging #591 into master will decrease coverage by -0.04% as of b1e6d19

@@            master    #591   diff @@
======================================
  Files          107     108     +1
  Stmts         4331    4339     +8
  Branches         0       0
  Methods          0       0
======================================
+ Hit           4159    4165     +6
  Partial          0       0
- Missed         172     174     +2

Review entire Coverage Diff as of b1e6d19

Powered by Codecov. Updated on successful CI builds.

:+1:


@craigspaeth => remove errant debugger

@craigspaeth, thanks for the intro to managing committed errors!

          1 Warning

  :warning:
  Please include a PR summary

  Generated by :no_entry_sign: danger

Thanks for noticing this 👍


[QUESTION]How to test the performance of dbref？

I would like to know the difference between using dbref and embedded performance.However, dbref is not used in the existing test data. Is there a standard test dbref data set?

Hi @weishuo2, I got asked the same question by a colleague this week. However, I don't know the answer yet, but I'm planning on writing benchmark cases for that as well in the near future. What are you looking for specifically? Insertion timings? Query timings? Maybe even deletion timings?
Which version do you need the timings for? (v4 or v5)

Hi,JensSchadron.Very happy to receive your reply.
I mainly want to know the query timings of dbref，I want to know the performance impact of dbref compared to embedded in use.Insertion timings and deletion timings are not so important.

@weishuo2 Just wanted to let you know that I started writing benchmark cases as I'm currently in a slight lockdown.
The datagenerator could use some performance improvements, but at least I've one for now 🙂

@weishuo2 Just wanted to let you know that I started writing benchmark cases as I'm currently in a slight lockdown. (Currently targetting v5, but I'll backport them as soon as I've finished writing them.)
The datagenerator could use some performance improvements, but at least I've one for now 🙂
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.18363
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores
.NET Core SDK=3.1.102
  [Host]     : .NET Core 3.1.2 (CoreCLR 4.700.20.6602, CoreFX 4.700.20.6702), X64 RyuJIT
  Job-SLEZUS : .NET Core 3.1.2 (CoreCLR 4.700.20.6602, CoreFX 4.700.20.6702), X64 RyuJIT

Jit=RyuJit  Runtime=.NET Core 3.1  Force=True
Toolchain=.NET Core 3.1

Method	N	Mean	Error	StdDev	Gen 0	Gen 1	Gen 2	Allocated
DataNormalGeneration 10 342.8 us 4.03 us 3.77 us 5.3711 0.9766 - 46.94 KB
DataWithBsonRefsGeneration	10	348.3 us	2.03 us	1.69 us	5.3711	0.9766	-	46.94 KB
DataNormalGeneration 50 1,302.7 us 12.36 us 10.96 us 21.4844 9.7656 - 177.88 KB
DataWithBsonRefsGeneration	50	1,308.2 us	15.15 us	14.17 us	21.4844	9.7656	-	177.88 KB
DataNormalGeneration 100 2,779.7 us 29.52 us 27.61 us 42.9688 19.5313 - 378.53 KB
DataWithBsonRefsGeneration	100	2,750.8 us	26.89 us	25.16 us	42.9688	19.5313	-	378.53 KB
DataNormalGeneration 500 18,262.7 us 191.44 us 179.08 us 250.0000 125.0000 - 2090.16 KB
DataWithBsonRefsGeneration	500	17,586.8 us	183.56 us	171.70 us	250.0000	125.0000	-	2090.14 KB
DataNormalGeneration 1000 33,489.2 us 477.70 us 446.84 us 466.6667 200.0000 - 4226.61 KB
DataWithBsonRefsGeneration	1000	33,484.9 us	275.33 us	257.54 us	500.0000	250.0000	-	4226.62 KB
DataNormalGeneration 5000 169,544.5 us 1,083.33 us 1,013.35 us 2666.6667 1333.3333 333.3333 20749.19 KB
DataWithBsonRefsGeneration	5000	169,854.9 us	1,566.93 us	1,465.71 us	2666.6667	1333.3333	333.3333	20749.13 KB
DataNormalGeneration 10000 338,088.9 us 3,847.32 us 3,598.79 us 5000.0000 2000.0000 - 41694.39 KB
DataWithBsonRefsGeneration	10000	329,904.6 us	1,877.48 us	1,664.34 us	5000.0000	2000.0000	-	41694.39 KB

Nice to hear this news, hope you can inform me on github after you finish.

@weishuo2 Just wanted to let you know that I started writing benchmark cases as I'm currently in a slight lockdown. (Currently targetting v5, but I'll backport them as soon as I've finished writing them.)
The datagenerator could use some performance improvements, but at least I've one for now 🙂
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.18363
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores
.NET Core SDK=3.1.102
  [Host]     : .NET Core 3.1.2 (CoreCLR 4.700.20.6602, CoreFX 4.700.20.6702), X64 RyuJIT
  Job-SLEZUS : .NET Core 3.1.2 (CoreCLR 4.700.20.6602, CoreFX 4.700.20.6702), X64 RyuJIT

Jit=RyuJit  Runtime=.NET Core 3.1  Force=True
Toolchain=.NET Core 3.1

Method	N	Mean	Error	StdDev	Gen 0	Gen 1	Gen 2	Allocated
DataNormalGeneration 10 342.8 us 4.03 us 3.77 us 5.3711 0.9766 - 46.94 KB
DataWithBsonRefsGeneration	10	348.3 us	2.03 us	1.69 us	5.3711	0.9766	-	46.94 KB
DataNormalGeneration 50 1,302.7 us 12.36 us 10.96 us 21.4844 9.7656 - 177.88 KB
DataWithBsonRefsGeneration	50	1,308.2 us	15.15 us	14.17 us	21.4844	9.7656	-	177.88 KB
DataNormalGeneration 100 2,779.7 us 29.52 us 27.61 us 42.9688 19.5313 - 378.53 KB
DataWithBsonRefsGeneration	100	2,750.8 us	26.89 us	25.16 us	42.9688	19.5313	-	378.53 KB
DataNormalGeneration 500 18,262.7 us 191.44 us 179.08 us 250.0000 125.0000 - 2090.16 KB
DataWithBsonRefsGeneration	500	17,586.8 us	183.56 us	171.70 us	250.0000	125.0000	-	2090.14 KB
DataNormalGeneration 1000 33,489.2 us 477.70 us 446.84 us 466.6667 200.0000 - 4226.61 KB
DataWithBsonRefsGeneration	1000	33,484.9 us	275.33 us	257.54 us	500.0000	250.0000	-	4226.62 KB
DataNormalGeneration 5000 169,544.5 us 1,083.33 us 1,013.35 us 2666.6667 1333.3333 333.3333 20749.19 KB
DataWithBsonRefsGeneration	5000	169,854.9 us	1,566.93 us	1,465.71 us	2666.6667	1333.3333	333.3333	20749.13 KB
DataNormalGeneration 10000 338,088.9 us 3,847.32 us 3,598.79 us 5000.0000 2000.0000 - 41694.39 KB
DataWithBsonRefsGeneration	10000	329,904.6 us	1,877.48 us	1,664.34 us	5000.0000	2000.0000	-	41694.39 KB

I have a few questions about dbref：
1.Why wasn't dbref designed to store the location information of related documents in the beginning？This way you can directly read the target file without querying.
2.Do you think this benchmark is credible：https://github.com/apavlo/py-tpcc？If I change his embedded structure to use dbref to test the performance of dbref，Do you think the result is credible？
Looking forward to your reply.


Remove GPLv2 code

@NetuserPRO anything in GPLDrivers never worked, is destructive, and didnt build because its incomplete.