AJ-1653: remove initialize-collection-on-startup property

This PR tackles a few related issues:
Remove the initialize-collection-on-startup property.
This was introduced in #558 as a replacement for the @Profile({"!local"}) annotation on CollectionInitializer. The PR you're looking at now changes behavior yet again such that CollectionInitializer always runs, regardless of your profile or whatever properties you have set. I believe this is good for consistency; engineers who are running locally will now have the same behavior as production deployments.
Modify two integration tests to bypass CollectionInitializer
The CollectionInitializerCloneTest and RestoreServiceIntegrationTest integration tests contain assertions on the behavior of CollectionInitializerBean, or on behavior of at-startup code. In these integration tests, we don't want CollectionInitializer to run during context initialization behavior, only for the tests to run it again. This would either be wasteful (if everything passes), or lead to obscure errors (if code is faulty).
The initialize-collection-on-startup was created to handle this situation. In this PR, though, I've refactored it to be much more Spring-idiomatic … I've simply replaced the CollectionInitializer bean in those tests' contexts with a noop mock bean, so nothing runs at startup.
this was a big impetus for this PR: illustrating how to do it "the Spring way"
Add consistent cleanup for integration tests
Our integration tests were only partially cleaning up after themselves, leading to some leftover rows/schemas in the Postgres db. Tests were passing, but as we modified the tests, we hit strange errors due to the leftovers. Now, integration tests clean up thoroughly in the db.

[nit] this PR does more than just remove the property, could we come up with a name that encapsulates all the behavior we're changing/adding?


Fix PreferencesColorPicker

Summary

Problem with the color picker
Screenshots/GIFs

https://github.com/AuroraEditor/AuroraEditor/assets/20476002/f9e36d5a-e086-4454-b4d2-b34d441731a9
https://github.com/AuroraEditor/AuroraEditor/assets/20476002/efe19fb9-9b96-400d-bab1-f5e3ec4e084e
Checklist
Please ensure all of the following are completed before submitting the PR:

[x] Code has been tested and verified.
[x] Documentation has been updated to reflect the changes.
[x] All tests pass successfully.
[x] Code follows the project's coding guidelines and style.
[x] The branch is up-to-date with the latest changes from the main branch.
[x] Reviewed by at least one other contributor.

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

Hey @Angelk90 from where are you use the picker so I can check.


Modify MsgSendTx fields based on audit

Description

closes: #2232

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (see CONTRIBUTING.md)
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards.
[ ] Wrote unit and integration tests
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

Codecov Report

Merging #2280 (55390f4) into main (9fa6008) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #2280      +/-   ##
==========================================
- Coverage   79.52%   79.51%   -0.01%
==========================================
  Files         175      175
  Lines       12069    12065       -4
==========================================
- Hits         9598     9594       -4
  Misses       2047     2047
  Partials      424      424

Impacted Files
Coverage Δ

...nterchain-accounts/controller/keeper/msg_server.go
100.00% <100.00%> (ø)

...ps/27-interchain-accounts/controller/types/msgs.go
91.66% <100.00%> (-0.65%)
:arrow_down:


Home component

we've created the home component and finished it clearly then is checked so it could be able added to the main branch

Work is checked and it's ready to be merged into the main without any conflicts.


horizontal definition lists desired

I've been struggling with using tables to stand in for definition lists, and I've been really dissatisfied with the results with the epub generator.  (The table layout handling is not nearly as nice as it is in PDF, probably because of tighter constraints in the ebook layout).
At any rate, I think what I really want is functional definition lists that honor the [horizontal] style, when they can.  I have some long lists today, and having terms and definitions on separate lines reduces readability and "compactness".  (The PDF output format has this problem too, it seems only the html backend does this correctly.)

I have some code that demonstrates this ... I'll post a PR, but I suspect it needs more massaging before it is included.


docs: dead link fix for ValidationResults

Closes https://github.com/nextui-org/nextui/issues/3795
📝 Description
removed duplicated brackets in md links
⛳ Current behavior (updates)
links to ValidationResults are not opening
🚀 New behavior
links to ValidationResults open in new tab
💣 Is this a breaking change (Yes/No):
no
📝 Additional Information

Summary by CodeRabbit

Documentation

Corrected hyperlink formatting for the ValidationResult reference in the documentation of Date Input, Date Picker, Date Range Picker, and Time Input components to improve clarity.

Chores

Introduced a new empty file for future changes, which does not affect current functionality.

I created PR already.

oh sorry for the duplication, thanks for your fixing it so fast!


Plans for decoding?

I ran across barcoders while searching for open source libraries that could be adapted to scanning barcodes using a smart phone.  Do you have any plans for adding decoding support from images that a phone can take?

Sorry for the delay, I didn't see this somehow. No, there is currently no plans to add decoding directly into barcoders. But perhaps as a separate library it would be cool.

@buntine Ah, that's unfortunate.  I was kind of looking at this like serde for barcodes.  But a separate crate that kept in lock-step with barcoders would work too.  Thank you for creating this crate!


Problem installing on RPi4 HA

Hi, I'm having trouble installing your module since my HA doesn't support "apt-get" commands if I open a terminal editor in HA?
Please advise!

Hi,
This code is not written to be installed within or next to HA. Technically it is possible, but I would not go for that route if you are not a Linux techie. The best option is to run this on a separate rpi.

Ah such a shame, it would be really useful to have it in Home Assistant

Ah such a shame, it would be really useful to have it in Home Assistant

For some part yes, but a physical serial connection to the ventilation unit (WHR) is needed and that could be an issue if you do not want to have the machine with HA on it, next to the WHR.


hds: Envoy should send HealthCheckRequestOrEndpointHealthResponse when requesting health checks Fixes #5279

Description: Makes envoy send a HealthCheckRequestOrEndpointHealthResponse when requesting health checks to respect HDS protocol.
Fixes #5279

@markatou can you have a look?

Good catch on https://github.com/envoyproxy/envoy/issues/5279!
This looks good to me, but perhaps @htuch could take a look?


introduce support for 'fancy' data types

Hello.
I would like to extend support for complex data types. To this end, I propose the following changes to the library:

Fixing support for binary data types (such as BLOB, BINARY, VARBINARY, BIT).
Binary literals, such as X'ABCD', are escaped, stripped and then escaped again using 'escapeUnquoted' function. This produces invalid literals, f.e.: ''ABCD'. Replacing 'escapeUnquoted' with a direct call to 'mysql.escape' fixed the problem.
Reference: 'Blobs are not dumped correctly #17'

Adding support for geometric values (such as POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION).

GEOMETRY values are parsed by MySQL library as either plain objects (only the POINT type) or plain arrays (all the other types). 'mysql.escape' does not handle these correctly, instead addition of 'escapeGeometryType()' was necessary. This function recursively creates literals of a form similar to: "ST_GeomFromText('POINT(1 2)')".
the above solution, however, depends on the knowledge of dynamic types of geometric values. MySQL library obtains these internally, but does not expose to consumers (a variable called wkbType in Parser.js). That's why the 'typeCast' callback was necessary, and within it the 'annotateWkbTypes' function that recursively extracts dynamic types from a raw packet data.

Extending unit test coverage ('should dump all the fancy data types correctly').

SETUP1: create a 'data_types' table containing variables of (almost) all possible data types,
SETUP2: insert a sample data row (that will be processed during the test phase).
STEP1: dump contents of the 'data_types' table (tests if dump library executes without issues),
STEP2: execute dump sql onto 'data_types' (tests for dump sql's syntactic correctness),
STEP3: select both rows (setup and insert) and compare contents field by field  (tests for dump sql's content correctness)

(Refactoring) Extracting the MySQL connection variables (host, user, password) into shared constants. Makes it easier to run tests on MySQL environments with different setups.

Best regards

The tests are most likely failing due to a lack of support for JSON data type (MySQL >=5.7.8 required).
Not sure what MySQL version Travis is running on, but removing JSON related lines, fixed the CREATE TABLE call on MySQL 5.6.29.
I would gladly remove the offending lines, just not sure how to proceed. Should I create a new pull request?

@marching-cube i'll review that soon. I'm very busy this week.

@webcaetano Thank you.

@marching-cube 40f083c
https://docs.travis-ci.com/user/database-setup/#MySQL-5.6
https://docs.travis-ci.com/user/trusty-ci-environment/#Using-Trusty
Thank you.

@marching-cube Thank you for your work on this.
@webcaetano When will these commits be released.

@dashmug oh yeah, i forgot to make a minor version.

@webcaetano Thanks.


fix(deps): :arrow_up: update dependency @nx-squeezer/workspace to v3

This PR contains the following updates:

Package
Change
Age
Adoption
Passing
Confidence

@nx-squeezer/workspace (source)
2.1.3 -> 3.1.0

Release Notes

nx-squeezer/squeezer
v3.1.0
Compare Source
Dependency Updates

devkit updated to version 3.0.0

Features

devkit: :sparkles: move github workflow utils from workspace to devkit project (#684) (c56a48d)

v3.0.0
Compare Source
Dependency Updates

devkit updated to version 2.1.3

⚠ BREAKING CHANGES

deps: Upgrade to Angular and Nx 16

Features

:package: rescope to @nx (#681) (#682) (e2fd0a8)
deps: :arrow_up: update monorepo to Angular and Nx 16 (#679) (733a9f8)

Bug Fixes

deps: :arrow_up: update dependency yaml to v2.2.2 [security] (#635) (22bd595)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: package.json
Post-upgrade command 'npx --no-install nx migrate {{{depName}}} --from={{{depName}}}@{{{replace '^[^\d]*' '' currentValue}}} --to={{{depName}}}@{{{replace '^[^\d]*' '' newValue}}}' has not been added to the allowed list in allowedPostUpgradeCommands


Small change in main configuration doc

Something didn't sit well with this sentence for me. Would it be better this way?

Codecov Report

Merging #1017 into master will increase coverage by 6.37%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1017      +/-   ##
============================================
+ Coverage      62.7%   69.08%   +6.37%
- Complexity       85     2247    +2162
============================================
  Files           271      228      -43
  Lines         10994     9622    -1372
  Branches       1459     1241     -218
============================================
- Hits           6894     6647     -247
+ Misses         3665     2561    -1104
+ Partials        435      414      -21

Impacted Files
Coverage Δ
Complexity Δ

...bci/methodmatching/TraceMethodInstrumentation.java
57.14% <0%> (-1.79%)
9% <0%> (+9%)

.../kafka/ConsumerRecordsIteratorInstrumentation.java

...afka/ConsumerRecordsRecordListInstrumentation.java

...tracing/impl/OpenTracingBridgeInstrumentation.java

.../main/java/co/elastic/apm/opentracing/ApmSpan.java

...ntracing/impl/ElasticApmTracerInstrumentation.java

...a/co/elastic/apm/opentracing/ElasticApmTracer.java

...Mule4OverrideClassLoaderLookupInstrumentation.java

...t/kafka/helper/KafkaInstrumentationHelperImpl.java

.../helper/KafkaInstrumentationHeadersHelperImpl.java

... and 38 more

Continue to review full report at Codecov.

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

This sentence is indeed a bit strange. But not sure if it's clearer now. Maybe @bmorelli25 can help.

I agree the original line is confusing. I also agree with Felix that I'm not sure this edit clears it up. What about using precedence?
- The first configuration sources override the configuration values of over the latter sources.
+ In descending order of precedence:

We could go a bit further:
- The first configuration sources override the configuration values of over the latter sources.
+ In descending order of precedence (smallest number wins).

Thanks for the feedback. Changed accordingly. Approve to verify this looks OK now.


Error: Type com.google.android.exoplayer2.drm.ExoMediaDrm$ProvisionRequest is referenced as an interface from com.google.android.exoplayer2.drm.FrameworkMediaDrm$3.

My app doesn't build because this error.

I'll be closing this for inactivity. Feel free to reopen it if you're still facing the problem.

Hi @Guichaguri , sorry for delay. It solved.  Thanks.


Fixes 4741: associate snapshots to templates directly

Summary

Associates snapshots to templates by adding snapshot_uuid to the templates_repository_configurations table
Migrates any existing templates' snapshots to this table
Simplifies the query for listing a template's snapshots to use the template-snapshot association
Checks that repos added to a template have a snapshot and rejects request if they do not

Testing steps
To test the migration:

In main, create 1 custom repo and 1 RH repo
Change the URL of the custom repo so you have 2 snapshots, and update the snapshot's created_at dates to be on different days
Change the URL one more time to get another snapshot and don't update this date
Create 3 templates: 1 with a date set to be between the dates of the snapshots, 1 with a date before the snapshots, and 1 using latest content
Check out this PR and run the migration. Verify the correct snapshot uuids were added to the templates_repository_configurations table (you can either check the table directly or check via the GET /templates/:uuid/snapshots/ endpoint)

To test a template's snapshots are updated correctly:

Create 2 custom repos (one with snapshotting enabled and one without) and a RH repo, let them snapshot, and create a template with these repos with use_latest set to true
Listing the template's snapshots (GET /templates/:uuid/snapshots/) should still work as expected
Add or remove one of the template's repos, listing the template's snapshots show updated snapshots
Trigger another snapshot of one of the repos in template. Once this task completes you should see that latest snapshot when listing the template's snapshots

https://issues.redhat.com/browse/HMS-4741

overall this seemed to work fine.  I did see one error though if i:

create a repo
create a template and add the repo
delete the repo

i get an error:
1:46PM WRN [Finished Task] task failed error="ERROR: update or delete on table \"snapshots\" violates foreign key constraint \"fk_templates_repository_configurations_snapshots\" on table \"templates_repository_configurations\" (SQLSTATE 23503)" request_id=4c0220f1-94d8-44cf-819d-6ef213c4c11c task_id=5c876540-ea47-4703-813e-bcd312e7ff87 task_type=delete-repository-snapshots


Add a button to clear the page

There should be a button either on the page or in the options menu to reset everything (instead of forcing a page refresh).

this is done and will be pushed live soon


Can we have rust-analyzer support for Visual Studio 2022?

Visual Studio is one of the best IDE of C++ and C# for windows. So can we have rust lang support for Visual Studio?

Duplicate of https://github.com/rust-analyzer/rust-analyzer/issues/8729.

@soumesh2002 here it is https://marketplace.visualstudio.com/items?itemName=kitamstudios.RustAnalyzer&ssr=false#overview
For now the following are functional - please feel free to use it or even better, help me out

Build, Clean (errors in Error list with details in output window).
Debug & Run without debugging.
Workspace support (continuing to get enhanced as I find more examples).
Intellisense / Auto-complete / Goto definition / Code actions / Find references etc. all features from Rust language server.
Tested above features with top Rust OSS projects like cargo, ruffle, iced, geo, ruff, reqwest, wasmtime.

Coming up shortly: examples integration, clippy/fmt, unit testing etc.

https://github.com/kitamstudios/rust-analyzer.vs


update oc client version and jenkins LTS

@gabemontero ptal, i've opened a separate bug for @tdawson to package the new jenkins LTS for rhel.

yep, I believe the failed merge job was from rhel testing, perhaps because of the java 7 stuff with rhel you've been (thought I thought that might have merged??)

Here was the message that caught my eye:
The command '/bin/sh -c yum-config-manager --enable rhel-server-rhscl-7-rpms &&     yum-config-manager --disable epel >/dev/null || : &&     INSTALL_PKGS="java-1.8.0-openjdk-devel rh-maven33*" &&     yum install -y $INSTALL_PKGS &&     rpm -e java-1.7.0-openjdk --nodeps &&     rpm -e java-1.7.0-openjdk-devel --nodeps &&     rpm -e java-1.7.0-openjdk-headless --nodeps &&     rpm -V ${INSTALL_PKGS//\*/} &&     yum clean all -y &&     mkdir -p $HOME/.m2' returned a non-zero code: 1

yep, I believe the failed merge job was from rhel testing, perhaps because of the java 7 stuff with rhel you've been (thought I thought that might have merged??)

yes it's because this PR wasn't based on a branch that included the java7 fix.  i've rebased it.  (rebasing is necessary here because the PR tester tests exactly what is in your branch.  Rosie tests your commits on top of the master branch which is why rebasing is not necessary in rosie-managed repos)


Expose hard_fault panicking behavior

This PR factors the hard-faulting logic out of the panic handler and makes it publicly available. The reasoning is that users may want to use that hard-faulting logic as the defmt::panic_handler to avoid double panic printing.
Alternative options:

Factor the hard-faulting logic out but don't expose it publicly. Instead, expose a feature that would define the hard-faulting logic as defmt::panic_handler.
Same as above, but reuse the print-defmt feature, essentially always setting the defmt::panic_handler.

Alternative (2) is probably the easiest for the user. The downside would be if for some reason the defmt::panic_handler should be set to something else instead. I don't see any examples, but that's a risk.
Alternative (1) is still easy (and that feature could be a default feature, or alternatively there could be a disabling feature) while keeping flexibility in case a user needs to define a custom defmt::panic_handler.
The current PR is the obvious non-breaking and flexible solution, but requires the user to define the defmt::panic_handler when needed.

Thank you!
bors r+

Thanks @Urhengulas ! Do you know when the next release of panic-probe would be expected? (I'm wondering if I should override my dependencies to defmt, defmt-rtt, and panic-probe with [patch.crates-io] or if I should wait for a release.)

Thanks @Urhengulas ! Do you know when the next release of panic-probe would be expected? (I'm wondering if I should override my dependencies to defmt, defmt-rtt, and panic-probe with [patch.crates-io] or if I should wait for a release.)

We will make a release soon!

Thanks!
Then I'll wait and update https://github.com/google/wasefire/pull/25 to use the new version instead of patching the dependencies.


[BUG] Any active schedulevmbackup will block the upgrade.

Describe the bug

Any active schedulevmbackup (but the timer is not reached and no backup is running) will block the upgrade.
When user creates many schedulers for many VMs, the upgrade requires the users to stop all schedulers manually before upgrade. This is not user-friendly .
https://github.com/harvester/harvester/issues/6754
https://github.com/harvester/harvester/pull/6755
Test step 8 https://github.com/harvester/harvester/issues/6754#issuecomment-2429459530
To Reproduce
Steps to reproduce the behavior:

Create any VM backup schedule

Click upgrade, it will block and the only solution is to suspend the schedule manually.

admission webhook "validator.harvesterhci.io" denied the request: please suspend all backup/snapshot schedule, for example default/svmbackup-vm1-ubuntu is running

Expected behavior

Simplify the user operation:
(1) Add a setting like suspend-schedule automatically when an upgrade is clicked and restore them after upgrade.
Support bundle

Environment

Harvester ISO version: Harvester v1.4.0-rc3
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R630):

Additional context

When testing https://github.com/harvester/harvester/issues/6754

@khushboo-rancher @bk201 @WebberHuang1118 @FrankYang0529
This issue is more related to user experience. I am open to put this in next release. For v1.4.0, we need to add this limitation to the document if not updated yet. thanks.

Duplicated with https://github.com/harvester/harvester/issues/6759, please see https://github.com/harvester/harvester/issues/6754#issuecomment-2430599418
@WebberHuang1118 Please see if there are any information in this issue can be added to #6759, thanks.


[MINOR] Remove ExtendedAnalysisException

What changes were proposed in this pull request?
ExtendedAnalysisException was introduced to fix compatibility issue when supporting Spark-3.5. It can be removed by introducing a simple interface defined in shim, at least enough for the current code.
How was this patch tested?
Only impact on compile.

@JkSelf, could you take a look? This is simply a trivial change to work around a compatibility issue for spark 3.5.

===== Performance report for TPCH SF2000 with Velox backend, for reference only ====

query
log/native_4864_time.csv
log/native_master_03_06_2024_bddc3fd79_time.csv
difference
percentage

q1
35.99
38.77
2.782
107.73%

q2
25.88
24.36
-1.520
94.12%

q3
38.23
39.60
1.373
103.59%

q4
39.35
37.58
-1.772
95.50%

q5
71.34
69.92
-1.421
98.01%

q6
7.47
8.34
0.863
111.55%

q7
85.43
84.40
-1.036
98.79%

q8
85.30
86.73
1.437
101.68%

q9
126.22
119.49
-6.732
94.67%

q10
43.35
43.18
-0.168
99.61%

q11
19.95
20.86
0.917
104.60%

q12
24.35
28.05
3.700
115.19%

q13
45.51
44.55
-0.964
97.88%

q14
18.90
17.03
-1.871
90.10%

q15
31.45
28.15
-3.298
89.51%

q16
14.10
14.07
-0.025
99.82%

q17
103.47
101.46
-2.010
98.06%

q18
143.36
145.26
1.904
101.33%

q19
13.50
13.99
0.493
103.66%

q20
29.89
28.21
-1.671
94.41%

q21
221.90
224.18
2.280
101.03%

q22
13.99
14.99
0.997
107.13%

total
1238.92
1233.17
-5.743
99.54%


@emeralt/database-mongodb - indexes

Indexing would increase read performance. Should be configurable though.

Done in bb0240fc04c0297e693cab00066e651f8f93bf63, will be available in v0.6.0 ✨


No error messages, bot just isnt coming online.

Everything goes well, no errors or anything, it says all 4 events loaded. But the ready message does not pop up in console. Any suggestions?

type kill 1 in replit shell

that didnt do anything


license missing

@jwilder Hi!  just ran across this, and it looks like a very elegant and simple solution to proxy ports.   I'm liking it.   Do you have a license picked yet.  Would be great to see apache 2 or mit license on this work.

I usually make stuff MIT. docker-gen which this uses is MIT.

Hoping you don't mind letting me help you make that quick change.

Nope. Thanks for the help!


Getting Error :- GooglePlaces API Error: REQUEST_DENIED

Hi,
While searching any thing getting error :- GooglePlaces API Error: REQUEST_DENIED
We added our API key properly and follow the below :-
Manual
Simply copy GooglePlacesAutocomplete.swift and GooglePlacesAutocomplete.xib to your project.
Note: Don't forget to add the PoweredByGoogle image to your xcassets.
Thanks,

@watsonbox , In swift 3 and ios 10 I am also getting the same error. Previously it used to work fine

The same problem for me.

It seems that I have tracked down the problem. It was related to escaping of optional query parameters. Here is the solution (I have rewritten the origin functions):
  fileprivate class func query(_ parameters: [String: AnyObject]) -> String {
    var components: [(String, String)] = []
    for key in Array(parameters.keys).sorted(by: <) {
        if let value = parameters[key] as? String {
            let escapedValue = escape(value)
            components += [(escape(key), escapedValue)]
        }
    }
    return (components.map{"\($0)=\($1)"} as [String]).joined(separator: "&")
  }

  fileprivate class func escape(_ string: String) -> String {
    var escapedCharacters = CharacterSet.urlQueryAllowed
    escapedCharacters.remove(charactersIn: ":/?&=;+!@#$()',*")
    return string.addingPercentEncoding(withAllowedCharacters: escapedCharacters) ?? ""
  }

fileprivate class func query(_ parameters: [String: AnyObject]) -> String {
var components: [(String, String)] = []
for key in Array(parameters.keys).sorted(by: <) {
let value: AnyObject = parameters[key]!
components += [(escape(key), escape("(value)"))]
}
    return (components.map{"\($0)=\($1)"} as [String]).joined(separator: "&")
}

Or like this works too


chore(dcos-ui): bump DC/OS UI v2.40.4

High-level description
What features does this change enable? What bugs does this change fix?
Corresponding DC/OS tickets (obligatory)
These DC/OS JIRA ticket(s) must be updated (ideally closed) in the moment this PR lands:

DCOS-46127 Don't fail on flakes
DCOS-46056 [1.13] COPS: DC/OS UI shouldn't send Content-Type with GET requests
DCOS-45801 [1.13] Some service configuration tabs fails to load
DCOS-44661 Extract Data-Layer as it's own library
DCOS-43091 [COPS] Logs view / Nodes view don't scroll in Firefox

Checklist for all PRs

[X] Added a comprehensible changelog entry to CHANGES.md or explain why this is not a user-facing change:
[X] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[X] Read the DC/OS contributing guidelines
[X] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[] Change log from the last version integrated (this should be a link to commits for easy verification and review): example
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and review process
What is the review process and when will my changes land?
All PRs require 2 approvals using GitHub's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@mesosphere-mergebot bump-ee

@mesosphere-mergebot bump-ee

@juliangieseke  PR isn't ready for review?

@mesosphere-mergebot label ready for review

@mesosphere-mergebot label  ready for review

@mesosphere-mergebot label work in progress

@mesosphere-mergebot label holding


ERROR Fetching Models, unknown scheme

logs: unknown scheme

UI error messages

ENV

I set OPENAI_API_KEY & OPENAI_API_HOST & DEFAULT_MODEL in the .env.local file

can anyone fix this.

socks5://<IP_ADDRESS>:21881

well, I misunderstood. I set OPENAI_API_HOST with wrong value. sorry

FINALLY!, I use proxychain4 instead of proxychains to make it works.

commands

proxychains npm run dev

What is the right OPENAI_API_HOST?


Proposal: Add a source code button for the component demo

It would be great if there could be a source code button for the component demo like it was the case in patternplate 1.0 :)

Thanks for the suggestion @larstoepner. Would you mind digging through #239 (might be interesting: https://github.com/patternplate/patternplate/issues/239#issuecomment-412304000). I'd close this issue and consolidate discussion / ideas around this feature over at #239. What do you think?

yep, do it. thanks :)


Use PyTorch instead of NumPy

Closes #164

In general there are many places where tensors are not moved to the right device like is_finished. I couldn't fix all of them as it got messy. Perhaps you can test it on local if you have MPS device.
I just tested this branch vs main branch for CPU:
# model_name = "gpt2"
model_name = "togethercomputer/RedPajama-INCITE-Instruct-3B-v1"
prompt = "This is a prompt"

def test_time_outlines():
    import time

    import outlines.models as models
    from outlines.text import continuation

    now = time.time()
    model = models.transformers(model_name, 'cpu')
    sequence = continuation(model, max_tokens=100)(prompt, samples=10)
    print(f"Outlines: {time.time()-now:.2f}")

def test_time_hf():
    import time

    from transformers import AutoModelForCausalLM, AutoTokenizer

    now = time.time()
    model = AutoModelForCausalLM.from_pretrained(model_name)
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    inputs = tokenizer([prompt], return_tensors="pt")
    out = model.generate(**inputs, do_sample=True, min_new_tokens=100, max_new_tokens=100, num_return_sequences=10, use_cache=False)
    print(out.shape)
    sequence = tokenizer.batch_decode(out)
    print(f"HuggingFace: {time.time()-now:.2f}")

HuggingFace: 100s
Outlines: 412s (this branch)
Outlines:  437s (main branch)
There is a slight advantage in only using torch
Tested on NVIDIA RTX A6000 with 14vCPUs

In general there are many places where tensors are not moved to the right device like is_finished. I couldn't fix all of them as it got messy. Perhaps you can test it on local if you have MPS device.
I just tested this branch vs main branch for CPU:
# model_name = "gpt2"
model_name = "togethercomputer/RedPajama-INCITE-Instruct-3B-v1"
prompt = "This is a prompt"

def test_time_outlines():
    import time

    import outlines.models as models
    from outlines.text import continuation

    now = time.time()
    model = models.transformers(model_name, 'cpu')
    sequence = continuation(model, max_tokens=100)(prompt, samples=10)
    print(f"Outlines: {time.time()-now:.2f}")

def test_time_hf():
    import time

    from transformers import AutoModelForCausalLM, AutoTokenizer

    now = time.time()
    model = AutoModelForCausalLM.from_pretrained(model_name)
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    inputs = tokenizer([prompt], return_tensors="pt")
    out = model.generate(**inputs, do_sample=True, min_new_tokens=100, max_new_tokens=100, num_return_sequences=10, use_cache=False)
    print(out.shape)
    sequence = tokenizer.batch_decode(out)
    print(f"HuggingFace: {time.time()-now:.2f}")

HuggingFace: 100s Outlines: 412s (this branch) Outlines: 437s (main branch)
There is a slight advantage in only using torch
Tested on NVIDIA RTX A6000 with 14vCPUs

Can we get some high-level (line)profiling measures instead?  That would be a much more direct approach.

Can we get some high-level (line)profiling measures instead? That would be a much more direct approach.

What does line profiling mean? Do you mean to inspect inside the model.generate or continuation(model, max_tokens=100)(prompt, samples=10) to check which tensor operations are bottlenecked?

Can we get some high-level (line)profiling measures instead? That would be a much more direct approach.

What does line profiling mean? Do you mean to inspect inside the model.generate or continuation(model, max_tokens=100)(prompt, samples=10) to check which tensor operations are bottlenecked?

Something like the output of line_profiler to start with, for example.

Also if you could seed the generation (so we can reproduce it) and normalise by the length of the longest sequence it would be great.

import torch
import numpy
import random

SEED = 42

def set_seed(seed: int):
    torch.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False
    numpy.random.seed(seed)
    random.seed(seed)

model_name = "gpt2"
# model_name = "togethercomputer/RedPajama-INCITE-Instruct-3B-v1"
prompt = "This is a prompt"

def test_time_outlines():
    set_seed(SEED)
    import time

    import outlines.models as models
    from outlines.text import continuation

    now = time.time()
    model = models.transformers(model_name, 'cpu')
    sequence = continuation(model, max_tokens=100)(prompt, samples=10)
    print(sequence[0])
    print(f"Outlines: {time.time()-now:.2f}")

def test_time_hf():
    set_seed(SEED)
    import time

    from transformers import AutoModelForCausalLM, AutoTokenizer

    now = time.time()
    model = AutoModelForCausalLM.from_pretrained(model_name)
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    inputs = tokenizer([prompt], return_tensors="pt")
    out = model.generate(**inputs, do_sample=True, min_new_tokens=100, max_new_tokens=100, num_return_sequences=10, use_cache=False)
    sequence = tokenizer.batch_decode(out)
    print(sequence[0])
    print(f"HuggingFace: {time.time()-now:.2f}")

Seeding reproduces results for HF but not for Outlines. I suspect this is because outlines instantiates torch.Generator() while calling a function, that doesn't take the seed. A simple fix is to avoid using rng at all, and just do torch.rand(...).

Not fully sure how you want me to do the line_profiling, maybe you can share a small script/demo? Here is something:
Code:
from line_profiler import LineProfiler
from outlines.text.generate.sequence import Sequence
profiler = LineProfiler()
profiler.add_function(test_time_outlines)
profiler.add_function(Sequence.step)
profiler.add_function(Sequence.expand_attention_mask)
profiler.add_function(Sequence.__call__)
profiler.run('test_time_outlines()')
profiler.print_stats()

Output:
File: [/home/ubuntu/rloufout/outlines/text/generate/sequence.py](https://vscode-remote+ssh-002dremote-002blambda.vscode-resource.vscode-cdn.net/home/ubuntu/rloufout/outlines/text/generate/sequence.py)
Function: step at line 33

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
    33                                               def step(
    34                                                   self,
    35                                                   rng: torch.Generator,
    36                                                   token_ids: torch.LongTensor,
    37                                                   attention_mask: torch.LongTensor,
    38                                                   samples: int = 1,
    39                                               ) -> Tuple[torch.LongTensor, torch.FloatTensor]:
    40                                                   """Generate one or several tokens that complete the input sequence.
    41
    42                                                   The sampling step consists in using a model to generate next-token
    43                                                   logits and then sample `samples`-many new tokens from a categorical
    44                                                   distribution parametrized by these logits.
    45
    46                                                   Parameters
    47                                                   ----------
    48                                                   rng
    49                                                       NumPy random number Generator instance
    50                                                   token_ids
    51                                                       The token ids passed as an input to the model, of shape `batch_shape
    52                                                       + (num_tokens,)`, where `num_tokens` is the sequences' length.
    53                                                   samples
    54                                                       The number of continuations to sample from the next-token probability
    55                                                       distribution.
    56
    57                                                   Returns
    58                                                   -------
    59                                                   A tuple with an array of shape `new_batch_shape + (num_tokens+1,)`that
    60                                                   contains the completed sequences (input token ids and generated token
    61                                                   ids) and an array of shape `new_batch_shape + (vocab_size,)` that
    62                                                   contains the next token probabilities.
    63                                                   `new_batch_shape` is computed by removing dimensions of size one in
    64                                                   `(samples,) + batch_shape`.
    65
    66                                                   """
    67       100     740350.0   7403.5      0.0          num_input_dims = token_ids.ndim
    68<PHONE_NUMBER>2973.0 247230729.7     99.4          probs = self.model(token_ids, attention_mask)
    69
    70                                                   # Sample `samples`-many new tokens
    71<PHONE_NUMBER>82.0 1366806.8      0.5          next_token_ids = vectorized_random_choice(rng, probs, samples)
    72
    73                                                   # Add the missing `num_tokens` and `num_sample` dimensions
    74<PHONE_NUMBER>.0  11603.4      0.0          next_token_ids = torch.unsqueeze(next_token_ids, -1)
    75       100     854830.0   8548.3      0.0          token_ids = torch.unsqueeze(token_ids, 0)
    76
    77                                                   # Expand the input `token_ids` array to be able to concatenate several
    78                                                   # samples.
    79        99     666521.0   6732.5      0.0          if samples > 1:
    80         1       8030.0   8030.0      0.0              repetitions = (samples,) + (1,) * num_input_dims
    81         1     191150.0 191150.0      0.0              token_ids = torch.tile(token_ids, repetitions)
    82         1     756511.0 756511.0      0.0              probs = torch.tile(probs, repetitions)
    83
    84<PHONE_NUMBER>.0  45813.3      0.0          token_ids = torch.concatenate([token_ids, next_token_ids], axis=-1)
    85
    86                                                   # Merge sample and batch dimensions by removing dimensions of length
    87                                                   # 1. The shape of the resulting arrays is `new_batch_shape + (num_tokens,)`
    88                                                   # and `new_batch_shape + (vocab_size,)` respectively.
    89<PHONE_NUMBER>.0  22055.0      0.0          token_ids = torch.atleast_2d(token_ids.squeeze())
    90<PHONE_NUMBER>.0  14739.3      0.0          probs = torch.atleast_2d(probs.squeeze())
    91
    92       100     654513.0   6545.1      0.0          return token_ids, probs

Total time: 0.0064726 s
File: [/home/ubuntu/rloufout/outlines/text/generate/sequence.py](https://vscode-remote+ssh-002dremote-002blambda.vscode-resource.vscode-cdn.net/home/ubuntu/rloufout/outlines/text/generate/sequence.py)
Function: expand_attention_mask at line 94

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
    94                                               def expand_attention_mask(
    95                                                   self, attention_mask: torch.LongTensor
    96                                               ) -> torch.LongTensor:
    97                                                   """Expand the attention mask after the last completion."""
    98       100     919580.0   9195.8     14.2          batch_shape = attention_mask.shape[:-1]
    99<PHONE_NUMBER>.0  22067.9     34.1          attention_mask = torch.concatenate(
   100<PHONE_NUMBER>.0  20174.5     31.2              [attention_mask, torch.broadcast_to(torch.tensor([1]), batch_shape + (1,))],
   101       100     684470.0   6844.7     10.6              axis=-1,
   102                                                   )
   103       100     644310.0   6443.1     10.0          return attention_mask

Total time: 24.9459 s
File: [/home/ubuntu/rloufout/outlines/text/generate/sequence.py](https://vscode-remote+ssh-002dremote-002blambda.vscode-resource.vscode-cdn.net/home/ubuntu/rloufout/outlines/text/generate/sequence.py)
Function: __call__ at line 155

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
   155                                               def __call__(
   156                                                   self,
   157                                                   prompt: Union[str, List[str]],
   158                                                   samples: int = 1,
   159                                                   rng: torch.Generator = torch.Generator(),
   160                                               ) -> Union[str, List[str]]:
   161                                                   """Generate a new sequence given a prompt.
   162
   163                                                   Parameters
   164                                                   ----------
   165                                                   prompt
   166                                                       The input prompt.
   167                                                   samples
   168                                                       The number of samples to generate for each prompt.
   169
   170                                                   Returns
   171                                                   -------
   172                                                   The full sequence that contains the prompts and the generated string.
   173
   174                                                   """
   175         1     298490.0 298490.0      0.0          token_ids, attention_mask = self.model.tokenizer.encode(prompt)
   176         1       7620.0   7620.0      0.0          num_prompt_tokens = token_ids.shape[-1]
   177
   178         1       6640.0   6640.0      0.0          if samples > 1:
   179         1  224162180.0 224162180.0      0.9              token_ids, _ = self.step(rng, token_ids, attention_mask, samples)
   180         1      74730.0  74730.0      0.0              is_finished = self.is_finished(token_ids)
   181
   182         1       7130.0   7130.0      0.0              num_batch_dims = token_ids.ndim - 1
   183         1       6640.0   6640.0      0.0              repetitions = (samples,) + (1,) * num_batch_dims
   184         1      22210.0  22210.0      0.0              attention_mask = torch.tile(attention_mask, repetitions)
   185         1     137590.0 137590.0      0.0              attention_mask = self.expand_attention_mask(attention_mask)
   186                                                   else:
   187                                                       batch_shape = token_ids.shape[:-1]
   188                                                       is_finished = torch.zeros(batch_shape, dtype=torch.bool)
   189
   190       100     729560.0   7295.6      0.0          while True:
   191       100     792760.0   7927.6      0.0              num_generated_tokens = token_ids.shape[-1] - num_prompt_tokens
   192        99    2308561.0  23318.8      0.0              if torch.all(is_finished) or num_generated_tokens == self.max_tokens:
   193         1       6640.0   6640.0      0.0                  break
   194
   195        99    2936623.0  29662.9      0.0              token_ids_unfinished = token_ids[~is_finished]
   196        99    2217671.0  22400.7      0.0              attention_mask_unfinished = attention_mask[~is_finished]
   197        99<PHONE_NUMBER>3.0 249167827.6     98.9              token_ids_unfinished, _ = self.step(
   198        99     611311.0   6174.9      0.0                  rng, token_ids_unfinished, attention_mask_unfinished
   199                                                       )
   200
   201        99   15343259.0 154982.4      0.1              token_ids = self.update_token_ids(
   202        99     689170.0   6961.3      0.0                  is_finished, token_ids, token_ids_unfinished
   203                                                       )
   204        99   19206879.0 194008.9      0.1              attention_mask = self.expand_attention_mask(attention_mask)
   205        99    7651544.0  77288.3      0.0              is_finished[~is_finished] = self.is_finished(token_ids_unfinished).flatten()
   206
   207         1     995861.0 995861.0      0.0          result = self.model.tokenizer.decode(token_ids)
   208         1      22280.0  22280.0      0.0          result = self.postprocess_completions(result)
   209
   210         1       7610.0   7610.0      0.0          if len(result) == 1:
   211                                                       return result[0]
   212
   213         1       6560.0   6560.0      0.0          return result

Total time: 26.8777 s
File: [/tmp/ipykernel_81140/1788441446.py](https://vscode-remote+ssh-002dremote-002blambda.vscode-resource.vscode-cdn.net/tmp/ipykernel_81140/1788441446.py)
Function: test_time_outlines at line 20

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================

That's perfect, thanks! It looks like 99% of the time is spent in self.model (which is what we'd expect), so we need to figure out what's happening there and/or if the bottleneck is memory transfer. You can take a look at scalene for that.

I re-ran the line_profiler locally, first with samples=1:
import outlines.models as models
import outlines.text as text
from line_profiler import LineProfiler
from outlines.text.generate.sequence import Sequence
from outlines.text.generate.continuation import Continuation

model_name = "togethercomputer/RedPajama-INCITE-Instruct-3B-v1"
prompt = "This is a prompt"

def outlines_run():
    model = models.transformers(model_name, device="cuda")
    a = text.generate.continuation(model, max_tokens=100)(prompt)

profiler = LineProfiler()
profiler.add_function(outlines_run)
profiler.add_function(Sequence.step.__wrapped__)
profiler.add_function(Sequence.expand_attention_mask.__wrapped__)
profiler.add_function(Sequence.update_token_ids.__wrapped__)
profiler.add_function(Sequence.__call__.__wrapped__)
profiler.add_function(Continuation.is_finished)
profiler.run('outlines_run()')
profiler.print_stats()

And the results are similar to what you obtained:
Full output
Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
    34                                               @torch.no_grad()
    35                                               def step(
    36                                                   self,
    37                                                   rng: torch.Generator,
    38                                                   token_ids: torch.LongTensor,
    39                                                   attention_mask: torch.LongTensor,
    40                                                   samples: int = 1,
    41                                               ) -> Tuple[torch.LongTensor, torch.FloatTensor]:
    42                                                   """Generate one or several tokens that complete the input sequence.
    43
    44                                                   The sampling step consists in using a model to generate next-token
    45                                                   logits and then sample `samples`-many new tokens from a categorical
    46                                                   distribution parametrized by these logits.
    47
    48                                                   Parameters
    49                                                   ----------
    50                                                   rng
    51                                                       NumPy random number Generator instance
    52                                                   token_ids
    53                                                       The token ids passed as an input to the model, of shape `batch_shape
    54                                                       + (num_tokens,)`, where `num_tokens` is the sequences' length.
    55                                                   samples
    56                                                       The number of continuations to sample from the next-token probability
    57                                                       distribution.
    58
    59                                                   Returns
    60                                                   -------
    61                                                   A tuple with an array of shape `new_batch_shape + (num_tokens+1,)`that
    62                                                   contains the completed sequences (input token ids and generated token
    63                                                   ids) and an array of shape `new_batch_shape + (vocab_size,)` that
    64                                                   contains the next token probabilities.
    65                                                   `new_batch_shape` is computed by removing dimensions of size one in
    66                                                   `(samples,) + batch_shape`.
    67
    68                                                   """
    69       100      66675.0    666.8      0.0          num_input_dims = token_ids.ndim
    70<PHONE_NUMBER>2947.0 102745429.5     99.9          probs = self.model(token_ids, attention_mask)
    71
    72                                                   # Sample `samples`-many new tokens
    73<PHONE_NUMBER>.0  96799.3      0.1          next_token_ids = vectorized_random_choice(rng, probs, samples)
    74
    75                                                   # Add the missing `num_tokens` and `num_sample` dimensions
    76       100     272250.0   2722.5      0.0          next_token_ids = torch.unsqueeze(next_token_ids, -1)
    77       100     142457.0   1424.6      0.0          token_ids = torch.unsqueeze(token_ids, 0)
    78
    79                                                   # Expand the input `token_ids` array to be able to concatenate several
    80                                                   # samples.
    81       100      29935.0    299.4      0.0          if samples > 1:
    82                                                       repetitions = (samples,) + (1,) * num_input_dims
    83                                                       token_ids = torch.tile(token_ids, repetitions)
    84                                                       probs = torch.tile(probs, repetitions)
    85
    86<PHONE_NUMBER>.0  15635.5      0.0          token_ids = torch.concatenate([token_ids, next_token_ids], axis=-1)
    87
    88                                                   # Merge sample and batch dimensions by removing dimensions of length
    89                                                   # 1. The shape of the resulting arrays is `new_batch_shape + (num_tokens,)`
    90                                                   # and `new_batch_shape + (vocab_size,)` respectively.
    91       100     809526.0   8095.3      0.0          token_ids = torch.atleast_2d(token_ids.squeeze())
    92       100     501089.0   5010.9      0.0          probs = torch.atleast_2d(probs.squeeze())
    93
    94       100      21946.0    219.5      0.0          return token_ids, probs

Total time: 0.00414091 s
File: /home/remi/projects/normal/outlines/outlines/text/generate/sequence.py
Function: expand_attention_mask at line 96

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
    96                                               @torch.no_grad()
    97                                               def expand_attention_mask(
    98                                                   self, attention_mask: torch.LongTensor
    99                                               ) -> torch.LongTensor:
   100                                                   """Expand the attention mask after the last completion."""
   101       100     186026.0   1860.3      4.5          batch_shape = attention_mask.shape[:-1]
   102<PHONE_NUMBER>.0  13439.1     32.5          attention_mask = torch.concatenate(
   103       100      21965.0    219.7      0.5              [
   104       100      15429.0    154.3      0.4                  attention_mask,
   105       100     399853.0   3998.5      9.7                  torch.broadcast_to(
   106<PHONE_NUMBER>.0  21420.4     51.7                      torch.tensor([1], device=self.device), batch_shape + (1,)
   107                                                           ),
   108                                                       ],
   109       100      14390.0    143.9      0.3              axis=-1,
   110                                                   )
   111       100      17288.0    172.9      0.4          return attention_mask

Total time: 0.551257 s
File: /home/remi/projects/normal/outlines/outlines/text/generate/sequence.py
Function: update_token_ids at line 113

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
   113                                               @torch.no_grad()
   114                                               def update_token_ids(
   115                                                   self,
   116                                                   is_finished: torch.BoolTensor,
   117                                                   token_ids: torch.LongTensor,
   118                                                   token_ids_unfinished: torch.LongTensor,
   119                                               ) -> torch.LongTensor:
   120                                                   """Update the array of token ids after the last completion.
   121
   122                                                   We only generate new tokens for the sequences that are not finished. We thus
   123                                                   update the array with the new tokens, and append pad tokens to the finished
   124                                                   sequences.
   125
   126                                                   Parameters
   127                                                   ----------
   128                                                   is_finished
   129                                                       Boolean array that indicates which sequences are finished.
   130                                                   token_ids
   131                                                       Array that contains the sequences before the generation's last step.
   132                                                   token_ids_unfinished
   133                                                       Array that contains the sequences of the unfinished sequences
   134                                                       after the generation's last step.
   135
   136                                                   Returns
   137                                                   -------
   138                                                   An array that contains the updated array that contains the sequences. We append
   139                                                   pad tokens to the finished sequences.
   140
   141                                                   """
   142       100     167455.0   1674.5      0.0          batch_shape = token_ids.shape[:-1]
   143       100      59216.0    592.2      0.0          num_tokens = token_ids.shape[-1]
   144       100     850508.0   8505.1      0.2          new_token_ids = torch.empty(
   145       100     138924.0   1389.2      0.0              batch_shape + (num_tokens + 1,), dtype=torch.int64, device=self.device
   146                                                   )
   147<PHONE_NUMBER>26.0 5372803.3     97.5          token_ids_finished = token_ids[is_finished]
   148       100     156720.0   1567.2      0.0          batch_shape_finished = token_ids_finished.shape[:-1]
   149       100     677681.0   6776.8      0.1          token_ids_finished = torch.concatenate(
   150       100      20005.0    200.1      0.0              [
   151       100      15914.0    159.1      0.0                  token_ids_finished,
   152       100     529063.0   5290.6      0.1                  torch.broadcast_to(
   153<PHONE_NUMBER>.0  23566.0      0.4                      torch.tensor(
   154       100     143268.0   1432.7      0.0                          [self.model.tokenizer.pad_token_id], device=self.device
   155                                                               ),
   156       100      75104.0    751.0      0.0                      batch_shape_finished + (1,),
   157                                                           ),
   158                                                       ],
   159       100      16499.0    165.0      0.0              axis=-1,
   160                                                   )
   161
   162<PHONE_NUMBER>.0  60011.8      1.1          new_token_ids[~is_finished] = token_ids_unfinished
   163<PHONE_NUMBER>.0  27429.7      0.5          new_token_ids[is_finished] = token_ids_finished
   164
   165       100      25665.0    256.6      0.0          return new_token_ids

Total time: 10.8702 s
File: /home/remi/projects/normal/outlines/outlines/text/generate/sequence.py
Function: __call__ at line 167

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
   167                                               @torch.no_grad()
   168                                               def __call__(
   169                                                   self,
   170                                                   prompt: Union[str, List[str]],
   171                                                   samples: int = 1,
   172                                                   rng: Optional[torch.Generator] = None,
   173                                               ) -> Union[str, List[str]]:
   174                                                   """Generate a new sequence given a prompt.
   175
   176                                                   Parameters
   177                                                   ----------
   178                                                   prompt
   179                                                       The input prompt.
   180                                                   samples
   181                                                       The number of samples to generate for each prompt.
   182
   183                                                   Returns
   184                                                   -------
   185                                                   The full sequence that contains the prompts and the generated string.
   186
   187                                                   """
   188         1    1962430.0 1962430.0      0.0          token_ids, attention_mask = self.model.tokenizer.encode(prompt)
   189
   190         1      71424.0  71424.0      0.0          token_ids = token_ids.to(self.device)
   191         1      10630.0  10630.0      0.0          attention_mask = attention_mask.to(self.device)
   192
   193         1        161.0    161.0      0.0          if rng is None:
   194         1      17423.0  17423.0      0.0              rng = torch.Generator(device=self.device)
   195
   196         1        761.0    761.0      0.0          num_prompt_tokens = token_ids.shape[-1]
   197
   198         1        240.0    240.0      0.0          if samples > 1:
   199                                                       token_ids, _ = self.step(rng, token_ids, attention_mask, samples)
   200                                                       is_finished = self.is_finished(token_ids)
   201
   202                                                       num_batch_dims = token_ids.ndim - 1
   203                                                       repetitions = (samples,) + (1,) * num_batch_dims
   204                                                       attention_mask = torch.tile(attention_mask, repetitions)
   205                                                       attention_mask = self.expand_attention_mask(attention_mask)
   206                                                   else:
   207         1       2033.0   2033.0      0.0              batch_shape = token_ids.shape[:-1]
   208         1     103334.0 103334.0      0.0              is_finished = torch.zeros(batch_shape, dtype=torch.bool, device=self.device)
   209
   210                                                   while True:
   211       101     134723.0   1333.9      0.0              num_generated_tokens = token_ids.shape[-1] - num_prompt_tokens
   212<PHONE_NUMBER>.0  26950.8      0.0              if torch.all(is_finished) or num_generated_tokens == self.max_tokens:
   213         1        230.0    230.0      0.0                  break
   214
   215<PHONE_NUMBER>.0  46386.2      0.0              token_ids_unfinished = token_ids[~is_finished]
   216<PHONE_NUMBER>.0  38418.7      0.0              attention_mask_unfinished = attention_mask[~is_finished]
<PHONE_NUMBER>9776263.0 102897762.6     94.7              token_ids_unfinished, _ = self.step(
   218       100      17093.0    170.9      0.0                  rng, token_ids_unfinished, attention_mask_unfinished
   219                                                       )
   220
   221<PHONE_NUMBER>94.0 5536956.9      5.1              token_ids = self.update_token_ids(
   222       100      17300.0    173.0      0.0                  is_finished, token_ids, token_ids_unfinished
   223                                                       )
   224<PHONE_NUMBER>.0  54475.5      0.1              attention_mask = self.expand_attention_mask(attention_mask)
   225<PHONE_NUMBER>.0  75486.3      0.1              is_finished[~is_finished] = self.is_finished(token_ids_unfinished).flatten()
   226
   227         1     204724.0 204724.0      0.0          result = self.model.tokenizer.decode(token_ids)
   228         1       3406.0   3406.0      0.0          result = self.postprocess_completions(result)
   229
   230         1        541.0    541.0      0.0          if len(result) == 1:
   231         1        271.0    271.0      0.0              return result[0]
   232
   233                                                   return result

The interesting lines are below, where we see that Sequence.update_token_ids takes 5% of the time:
<PHONE_NUMBER>9776263.0 102897762.6     94.7              token_ids_unfinished, _ = self.step(
   218       100      17093.0    170.9      0.0                  rng, token_ids_unfinished, attention_mask_unfinished
   219                                                       )
   220
   221<PHONE_NUMBER>94.0 5536956.9      5.1              token_ids = self.update_token_ids(
   222       100      17300.0    173.0      0.0                  is_finished, token_ids, token_ids_unfinished
   223                                                       )

And most of the time is spent on this line:
   147<PHONE_NUMBER>26.0 5372803.3     97.5          token_ids_finished = token_ids[is_finished]

which tells us that the boolean indexing that we currently use is very inefficient, and likely explains the difference that we see (at least on GPU) with transformers.

For some reason use_cache=False does not work as intended in the transformers library for "togethercomputer/RedPajama-INCITE-Instruct-3B-v1", although it does for gpt2. This explains @arunpatro's and my observation that outlines is faster than transformers for GPT2 but much slower otherwise.
I added the following lines in transformers.generation.utils.py before the model is called to make sure the cache is not used:
model_inputs.pop("past_key_values")
model_inputs.pop("position_ids")
model_inputs["input_ids"] = input_ids

On average over 10 runs I find the following runtime for 10 sampled sequences on my Quadro RTX5000:

transformers: 59s pm 0.3s
outlines: 59s pm 0.3s

So it's a wash. SImilarly for a single sampled sequence, both libraries take 27s on average over 10 runs.

This is good for review again.


fix: publish with deprecated field

When publish with deprecated field in package.json, that will make all old versions miss.
Examples:
I have<EMAIL_ADDRESS>and<EMAIL_ADDRESS>When npm deprecate<EMAIL_ADDRESS>"xxx", Verdaccio will recived:
{
  "name": "module_name",
  "version": {
    "1.0.0": {
      "deprecated": "xxx"
    },
    "1.0.1": {}
  }
}

⬆ This make sense
But then publish new version with @1.0.2.
Verdaccio will recived:
{
  "name": "module_name",
  "version": {
    "1.0.2": {
      "deprecated": "xxx" // if we set this field in package.json
    },
  }
}

and that metadata will override package.json, make old version miss.
migrate from #2766

ref https://github.com/verdaccio/verdaccio/issues/2017

I'm running some local test to double check more details, I'll come with more feedback in the next days, but thanks @Jiasm for taking care of this.

@juanpicado You're welcome. I'm honored to contribute to verdaccio. 😊

By diving more, I just realized we could do it differently without need to hit the local storage. Here the details.
diff --git a/src/api/endpoint/api/publish.ts b/src/api/endpoint/api/publish.ts
index b41bff5c5..36f67d58e 100644
--- a/src/api/endpoint/api/publish.ts
+++ b/src/api/endpoint/api/publish.ts
@@ -217,7 +217,8 @@ export function publishPackage(storage: IStorageHandler, config: Config, auth: I
     try {
       const metadata = validateMetadata(req.body, packageName);
       // treating deprecation as updating a package
-      if (req.params._rev || isRelatedToDeprecation(req.body)) {
+      // _attachments
+      if (req.params._rev || (isRelatedToDeprecation(req.body) && _.isEmpty(req.body._attachments))) {
         debug('updating a new version for %o', packageName);
         // we check unpublish permissions, an update is basically remove versions
         const remote = req.remote_user;

Turns out when you publish a version, the package manager sends the following:

1 single version  (always)
The _attachments property with the content of the tarball

{
  _id: "npm-flat",
  name: "npm-flat",
  description: "dsa dsa sdsa d sa dsa ds",
  "dist-tags": {
    latest: "1.0.3",
  },
  versions: {
    "1.0.3": {
      name: "npm-flat",
      version: "1.0.3",
      deprecated: "pkg json deprecataed",
      description: "dsa dsa sdsa d sa dsa ds",
      main: "src/index.js",
      scripts: {
        test: "echo \"Error: no test specified\" && exit 1",
      },
      repository: {
        type: "http",
        url: "git+https://github.com/pnpm/pnpm.git",
      },
      keywords: [
      ],
      author: "",
      license: "ISC",
      readme: "# hrllo\n\ndsa\ndsa\nsdsa\nd\nsa\ndsa\nds\n",
      readmeFilename: "README.md",
      _id<EMAIL_ADDRESS>      _nodeVersion: "14.17.4",
      _npmVersion: "8.1.1",
      dist: {
        integrity: "sha512-fFAtY6A5uQetOZb8H2yJgLstGBRMRP84UOPw/p/4bQ27p0X5zuObDes0pc7rAByuWzJdqdmCcmnkpKbUt5MmgA==",
        shasum: "43f3b5c9ba9e7a243f09b21c323c24491ac0d6bf",
        tarball: "http://localhost:4873/npm-flat/-/npm-flat-1.0.3.tgz",
      },
    },
  },
  access: null,
  _attachments: {
    "npm-flat-1.0.3.tgz": {
      content_type: "application/octet-stream",
      data: "H4sIAAAAAAAC/+y.........A0gAA",
      length: 19530,
    },
  },
  time: {
  },
}

While using npm deprecate sends all versions ...

_attachments is always empty
If you have one single package published, version also could be 1, but the previous constraint is always true.

{
  name: "npm-flat",
  versions: {
    "1.0.1": {
      name: "npm-flat",
     .....
      dist: {
        integrity: "sha512-81mXvavQA9tAcwqzjLYT60SK51xiTpi7CcusrDv62Dsa8sJu4MSN+7/fct9xa5HMR/oDikY+lelSSYN6zb8lFw==",
        shasum: "bf558de758df5ce18b9bb09584099e11a5ff44ea",
        tarball: "http://localhost:4873/npm-flat/-/npm-flat-1.0.1.tgz",
      },
      contributors: [
      ],
    },
    "1.0.0": {
      name: "npm-flat",
      version: "1.0.0",
      description: "dsa dsa sdsa d sa dsa ds",
      main: "src/index.js",
     .....
      dist: {
        integrity: "sha512-ppU36I/jtrgh47nOPSyaba4Pf8fT/v5/Dk7nT3xbV6WodvXZcD1NCEsMzQmPz6/3zG3B5Doe69ostOvXH8lGCg==",
        shasum: "41ae6ff92e5a45e3c54d0eb92bf3a7589e1db723",
        tarball: "http://localhost:4873/npm-flat/-/npm-flat-1.0.0.tgz",
      },
      contributors: [
      ],
    },
    "1.0.2": {
      name: "npm-flat",
      version: "1.0.2",
      description: "dsa dsa sdsa d sa dsa ds",
      ......
      dist: {
        integrity: "sha512-Mjq4JyUV73vqxcUS6S6ka4z1gTQwIb5OskAUgOVcseDAiW/dB+azzfXaz0kKz7luabWNv5snN08ZdraKPTcL+g==",
        shasum: "04a6714cf00633c5490d672faa36f37222e9cb5b",
        tarball: "http://localhost:4873/npm-flat/-/npm-flat-1.0.2.tgz",
      },
      contributors: [
      ],
      deprecated: "let's ignore 1.0.3",
    },
    "1.0.3": {
      name: "npm-flat",
      version: "1.0.3",
      description: "dsa dsa sdsa d sa dsa ds",
      main: "src/index.js",
      scripts: {
        test: "echo \"Error: no test specified\" && exit 1",
      },
      .....
      dist: {
        integrity: "sha512-z0AtAUA1eH8OCROe0ULctjHHz8wjh6MD+n1DLksWiOhOpmJDyVfTLYCt1CgGxbXRNlaVk7PmW5XOzjsa79jNsg==",
        shasum: "038fc56097e0cf4bef9c2f2728359b9b49347f82",
        tarball: "http://localhost:4873/npm-flat/-/npm-flat-1.0.3.tgz",
      },
      contributors: [
      ],
    },
  },
  time: {
    modified: "2021-12-15T20:03:17.797Z",
    created: "2021-12-14T21:24:23.777Z",
    "1.0.1": "2021-12-15T19:51:23.025Z",
    "1.0.0": "2021-12-15T19:51:49.509Z",
    "1.0.2": "2021-12-15T19:52:48.372Z",
    "1.0.3": "2021-12-15T19:52:57.950Z",
  },
  "dist-tags": {
    latest: "1.0.3",
  },
  _rev: "51-c459ffbc65e2aeda",
  _id: "npm-flat",
  readme: "# hrllo\n\ndsa\ndsa\nsdsa\nd\nsa\ndsa\nds",
  _attachments: {
  },
}

With this approach we could avoid hit the database with would lead to faster request and best performance. What do you think?

@juanpicado This is a better way to distinguish upblish and deprecate, let me upgrade.

Thanks @Jiasm , now we need to figure out how to test this. There is a file test/unit/modules/api/api.spec.ts which at the bottom has a section 'should test (un)deprecate api' would you want to jump into it?
The idea would be try to reproduce the steps:

Publish a package
Bum up 1 or two times
Publish new version with deprecate field
Fetch all packages verify versions still remains in the manifest

Ok, I am interested to do this. @juanpicado

@Jiasm it is a bit messy the branch 5.x 😊 but things are getting better on master branch. Ping me if you get confused.

@juanpicado Sorry, I can't run test and lint in local repo, always encounter strange errors, so rely on CI😅

Looks awesome @Jiasm I will take care later after work. Thanks appreciated.


No loot to be found when doing reinforce attack

Hello,
I encountered "No loot to reinforce for user" when trying to do reinforce attack

Hi @ck0111 , thank you for the report!
I see you have closed the issue, I assume you fixed your problem?
PS: If not, please try the latest commit on master.

Yes, I also take this error and updating solve the problem for me. @coccoinomane @ck0111


Add syntax highlighting support for code element

Currently the code block does not support syntax highlighting, add support via custom logic or a third party lib.

Done with release v1.20.0


recordException should unwrap SomeException

If you call recordException on an exception caught with catchAny or similar, you will get an uhelpful exception.type,  namely SomeException itself. What you really want is the type of the inner exception. We can get this, we just have to unwrap it.
We do this ouselves in the codebase: https://github.com/iand675/hs-opentelemetry/blob/main/api/src/OpenTelemetry/Trace/Core.hs#L395
I think we should just teach recordException to do this itself. Perhaps just call cast to see if it's a SomeException, and if so unwrap it?

In general, I'd like to add support for the TracerProvider to register exception enrichment functions that can do unwrapping, add attributes to the exception events, etc. In particular, we use annotated-exceptions, which is yet another one of these wrappers.
I do agree with teaching registerException what to do there, but ideally it would be somewhat extensible instead of hardcoding to the lowest common denominator in the extensible exception hierarchy.

That sounds like it's going to require quite a bit more design work. I think at least handling SomeException would be useful for users in the short term. I don't tremendously mind - if we want to do it properly I'll just write the wrapper in my work codebase!


Enable indexing in robots.txt

Enabling robots.txt to allow robots to crawl over our content for production environment.
Related with SEO optimisation task: #OP 2324

The added file robots.prod.txt gets added to the stage deployment:

Maybe it is better to update robots.txt during the deployment via
sed -i "" 's/Disallow:/Allow:/g' robots.txt

or even generate it from the deployment script.

The added file robots.prod.txt gets added to the stage deployment:  Maybe it is better to update robots.txt during the deployment via
sed -i "" 's/Disallow:/Allow:/g' robots.txt

or even generate it from the deployment script.

Yes, maybe. I will check, as now we are very much dependent from github actions

Moved to gulpfile.js solution. @JustusFT take a look, maybe we can have even better approach, as now I needed to add two new packages.


.NET 3.5 Unit Tests No Longer Work

Description
Unit tests for .NET 3.5 projects no longer work in VS 2017 (v15.9.8). A fix for this was proposed and implemented in #1896 but it was only pushed into the VS 2019 release, not for 2017. According to some previous discussion on the issue, .NET 3.5 tests were working during some earlier version in 15.x.x which leads me to believe that this should still be supported. This lack of a fix in the 2017 releases is blocking my development, so I'm hoping that this can get escalated to support VS 2017 releases as well in a timely fashion.
Steps to reproduce

Create a project targeting .NET 3.5 in the latest version of visual studio (15.9.8).
Create a unit test.
Run the unit test.

Expected behavior
Tests will run successfully.
Actual behavior
Tests fail to run and output the following error message:
Microsoft.VisualStudio.TestPlatform.ObjectModel.TestPlatformException: Framework35 is not supported. For projects targeting .Net Framework 3.5, please use Framework40 to run tests in CLR 4.0 "compatibility mode".
Environment
Windows 10 64-bit
Visual Studio 2017 Enterprise v15.9.8

@jbrown16 I am trying to push it for 15.9.9, will update once it is in. Thanks for your patience.

I am sorry, it could not make it to 15.9.9, rooting for 15.9.10

@singhsarab, Do you happen to know the timeframe of the 15.9.9 and 15.9.10 releases? Also, is this due to the lack of necessity for the fix or just the timing of when you can get the change in? Thanks for you help on this.

15.9.9 should be out soon in a day or two, while expect 15.9.10 to be released early next month.
Since we have already released the packages with the fix. I can try to unblock you.

You can download the package https://www.nuget.org/packages/Microsoft.TestPlatform/15.9.1
Unblock the nuget package (RightClick->Properties), and extract the contents
Take backup of C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\TestPlatform
Replace the contents in the above folder by copying the contents from tools\net451\Common7\IDE\Extensions\TestPlatform directory in the nuget package.

@singhsarab I am pleased to report that my first test run is working successfully! Thank you so much for helping me take care of this. I'll let you know if I have anymore issues and I'll also watch for the 15.9.10 release.

This is now officially supported in 15.9.10.
Thanks :)

Awesome! Thank you so much, @singhsarab!


Civi keeps redirecting to the homepage

When I click on certain links on Civi it redirects back to the CC homepage with a notice that says "This page has moved." Here is one URL where that happens: https://donate.creativecommons.org/civicrm/admin/messageTemplates?reset=1

Yeah, that's intentional because it's redirecting you to the donate page. You should be able to login at /user/ and do anything in CiviCRM under /civicrm/ without hitting the homepage.

Hi @robmyers ! This is happening again and I can't seem to fix it.
Rebecca says it has to do Civi outgoing message templates that you all talked about recently.
Thanks!

Yeah, when I go to Admin / Comms / Message Templates to kill that outgoing message we discussed that shouldn't be sending, it redirects me to the CC website donate page. Anna thinks it may have something to do with a /donate automatic redirect that needs an exception. Any ideas? It's this https://creativecommons.org/donate/?utm_campaign=redirect_donate_ccorg&utm_source=redirect_donate_ccorg

Yikes. That's not happening for other links under /admin/comms, just the one.
It's a 403 error (Access Forbidden), which then results in a redirect.
I'm investigating why it's causing a 403.

The "Edit Message Templates" permission wasn't checked for administrators(!). I've enabled it.
We should now be able to follow that link.

That works! Thanks so much.


Required fields not set for nodes.ft (using master and TF13)

When trying to deploy v4.6 using master branch and TF13, nodes.tf fails.
Output from apply:
module.bastion.data.openstack_compute_flavor_v2.bastion: Refreshing state...
module.network.data.openstack_networking_network_v2.network: Refreshing state...
module.network.data.openstack_networking_subnet_v2.subnet: Refreshing state...
Error: "vcpus": required field is not set
on modules/4_nodes/nodes.tf line 46, in resource "openstack_compute_flavor_v2" "bootstrap_scg":
46: resource "openstack_compute_flavor_v2" "bootstrap_scg" {
Error: "ram": required field is not set
on modules/4_nodes/nodes.tf line 46, in resource "openstack_compute_flavor_v2" "bootstrap_scg":
46: resource "openstack_compute_flavor_v2" "bootstrap_scg" {
Error: "disk": required field is not set
on modules/4_nodes/nodes.tf line 46, in resource "openstack_compute_flavor_v2" "bootstrap_scg":
46: resource "openstack_compute_flavor_v2" "bootstrap_scg" {
Error: "ram": required field is not set
on modules/4_nodes/nodes.tf line 109, in resource "openstack_compute_flavor_v2" "master_scg":
109: resource "openstack_compute_flavor_v2" "master_scg" {
Error: "disk": required field is not set
on modules/4_nodes/nodes.tf line 109, in resource "openstack_compute_flavor_v2" "master_scg":
109: resource "openstack_compute_flavor_v2" "master_scg" {
Error: "vcpus": required field is not set
on modules/4_nodes/nodes.tf line 109, in resource "openstack_compute_flavor_v2" "master_scg":
109: resource "openstack_compute_flavor_v2" "master_scg" {
Error: "vcpus": required field is not set
on modules/4_nodes/nodes.tf line 164, in resource "openstack_compute_flavor_v2" "worker_scg":
164: resource "openstack_compute_flavor_v2" "worker_scg" {
Error: "ram": required field is not set
on modules/4_nodes/nodes.tf line 164, in resource "openstack_compute_flavor_v2" "worker_scg":
164: resource "openstack_compute_flavor_v2" "worker_scg" {
Error: "disk": required field is not set
on modules/4_nodes/nodes.tf line 164, in resource "openstack_compute_flavor_v2" "worker_scg":
164: resource "openstack_compute_flavor_v2" "worker_scg" {

Removing line 112 from ocp.tf
module "nodes" {
depends_on                      = [module.helpernode]        <------------- line 112
source                          = "./modules/4_nodes"
Allows the apply to run.
Although the first run fails with:

You can re-run and cluster installs.

@cunlifs I have reported this to Terraform community at https://github.com/hashicorp/terraform/issues/26749

So we did not get much support from Terraform community in fixing the actual module dependency problem. With @pravin-dsilva  also facing same issue I went ahead to provide alternative approach to fix the issue.
Once module dependency is removed from nodes block the data sources read the flavor information.

So we did not get much support from Terraform community in fixing the actual module dependency problem. With @pravin-dsilva  also facing same issue I went ahead to provide alternative approach to fix the issue.
Once module dependency is removed from nodes block the data sources read the flavor information.


Update best-practices-resource-manager-state.md

output value was missing .properties before privateIPAddress

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

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

TTYL, AZPRBOT;

@mmercuri - could you please review and let me know if this public contribution can be merged?
cc/ @bennage

@robplank - thanks for making this change, and sorry for being slow in responding to you. The change looks good.
@tysonn - this fix in azure-content can be merged.


Added file type descriptions to the properties popup + window resizing fix for Windows

The file properties popup now shows a brief description of what the file is. The extension -> description mapping is in ui/file_extensions.js.
I also added a fix for Tauri's poor resizing performance on Windows. From what I understand, blocking the thread for a millisecond causes the backing WebView2 to do a context switch which makes the resizing be more responsive.

Hey, first I want to thank you for wanting to contribute to the project.
Secondly I would want to know where this file_extension file originates from.
Is there a source where I could look it up?
I will test this branch when I'm back from work. But it looks good at first sight!

Additionally, please ensure that the version number is increased to avoid any potential conflicts with existing versions.

@TheHighestBit
The changes are looking good, but please change the milliseconds to nanos for the window resizing.
I think the easiest way to reach me is via discord -> rickydane8
Probably it's the best if i open up a discord server for project management.
I would really appreciate your work towards a google drive implementation as CoDriver would immensely profit from it!

Please do another master merge as I have recently added a discord badge to the readme.
After that I will merge the branch


Seems to ignore the src argument

I'm not sure what I'm doing wrong, but statik always includes all files of the current working dir and seems to ignore my src parameter.
Usage:
statik -src=assets

Is this an issue @muesli?

Closing this due to inactivity. Feel free to reopen if needed @muesli.


Add index to "Postleitzahl"

I understand your point, but if the table itself is small the index is also small and should not make a big difference. Is it not better to be consistent in the indexes over all tables? Just let me know, than I will remove the unnecessary indexes. Thanks!

I understand your point, but if the table itself is small the index is also small and should not make a big difference. Is it not better to be consistent in the indexes over all tables? Just let me know, than I will remove the unnecessary indexes. Thanks!

That is a fair point, there are definitely arguments on both sides here.
I'm going to make a call here though and say that I would like to stay consistent with how this has been done so far. Note that there are currently zero indices on EinheitenGasErzeuger, for example.

That being said, I appreciate you digging through this undocumented repo to find the right place to add indices!
I'm always interested in how people found this project and how they use it. If you're willing to share, I encourage you to get in touch via the email address in footer of https://marktstammdatenregister.dev -- in German or English, as you prefer.

@curiousleo ok, the requested changes are reverted. Absolutely right that you want to keep it consistent this way. Thanks for your comments, looking forward to the merge.

... and it's deployed: list of new indices.


Add a CI and a release workflow

This patch adds a CI workflow and Release workflow
CI workflow is triggered on all pull-requests to main branch. It builds
the operator locally (make operator bundle)and also tests if the
images (operator, bundle) can be built properly.
Release workflow gets triggered when a PR is merged to main branch or if
a tag (starting with v) is pushed. The workflow builds all images -
operator, bundle and catalog and pushes those to registry.
The candidate operator can be installed by subscribing to the catalog
See: hack/olm/catalog-src.yaml
Signed-off-by: Sunil Thaha<EMAIL_ADDRESS>

See: https://github.com/sthaha/monitoring-stack-operator/pull/3 for how this works

cc: @fpetkovski @prashbnair


Makyen: Watch What\Wa\Wbrilliant\W*post

Makyen requests the watch of the watch_keyword What\W*a\W*brilliant\W*post. See the Metasmoke search here and the Stack Exchange search here.

What[^A-Za-z0-9]*a[^A-Za-z0-9]*brilliant[^A-Za-z0-9]*post has been seen in 0 true positives, 0 false positives, and 0 NAAs.

!!/approve

Coverage remained the same at 65.091% when pulling 1127ae8b77b2667bc5162e630b35e06ae7a3e996 on auto-blacklist-1524115567.6539314 into 67b09aac800ae08447adee9596fcf688c28df480 on master.


Update use-metrics-server-vertical-pod-autoscaler.md

PR for https://supportability.visualstudio.com/AzureContainers/_workitems/edit/81126

@Nickomang
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

@Nickomang - nudge. can you take a look? thanks.

#sign-off


node: integration with topology manager is stable

Retroactively fix the feature state:

device manager GA'd in 1.26
topology manager GA'd in 1.27 thus we can safely call the integration between topology and device managers GA in 1.27

Extracted from https://github.com/kubernetes/website/pull/41804#discussion_r1247406374

/sig node

Thanks @ffromani
Preview looks good to me: https://deploy-preview-41846--kubernetes-io-main-staging.netlify.app/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#device-plugin-integration-with-the-topology-manager
/lgtm

/lgtm

/retitle Fix stale feature state for topology manager, and for device manager integration

Actually
/retitle Fix stale feature state for device plugin integration with Topology Manager
/approve


⚠ Bofrost.be has degraded performance

In 9d4bf39, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2080 ms

Resolved: Bofrost.be performance has improved in c6ec6ea after 6 minutes.


Development/alex/v3.2.0 cleanup

Fixes bug where setting DAG amount to "max" and then adding an additional DAG fee would allow the user to continue to the confirmation screen.
Fixes console warning about missing "key" on TxsPanel component

Closing to resubmit with cleaned up git history.


Update TIKI SDK JS in Shopify App

As a developer
I need to update the TIKI SDK JS in the embedded app block
So that it can communicate with TIKI infrastructure to create records.
Update the TIKI SDK JS to 2.1.1 and test the proper creation of the License record and Payable Record.

Waiting on https://github.com/tiki/tiki-sdk-js/issues/100 for testing

updated to 2.1.2


support panic recovery for go routines.

When Go routines panic, recover and capture stack trace in stackdriver format.

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "component": "enforcerd",
    "pr-id": "570",
    "commit-sha": "f6f6c10d161c7606096020a3402aa9e9bedd1795"
  },
  {
    "component": "trireme-lib",
    "pr-id": "516",
    "commit-sha": "7a3a60153434e7f9c7a802b295d96c905eb542c3"
  }
]

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "component": "trireme-lib",
    "pr-id": "516",
    "commit-sha": "7a3a60153434e7f9c7a802b295d96c905eb542c3"
  },
  {
    "component": "enforcerd",
    "pr-id": "570",
    "commit-sha": "dce37773c79df72a4e602e2b53123e2c39e51711"
  }
]

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "component": "netlink-go",
    "pr-id": "30",
    "commit-sha": "9b4776a4311d022fbea7019ef0763452990c04a9"
  },
  {
    "component": "trireme-lib",
    "pr-id": "516",
    "commit-sha": "7a3a60153434e7f9c7a802b295d96c905eb542c3"
  },
  {
    "component": "enforcerd",
    "pr-id": "570",
    "commit-sha": "dce37773c79df72a4e602e2b53123e2c39e51711"
  }
]

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "component": "netlink-go",
    "pr-id": "30",
    "commit-sha": "9b4776a4311d022fbea7019ef0763452990c04a9"
  },
  {
    "component": "trireme-lib",
    "pr-id": "516",
    "commit-sha": "f0c2865bc73bfb14be052ef2327be12ba255b855"
  },
  {
    "component": "enforcerd",
    "pr-id": "570",
    "commit-sha": "03d4af2ca75370b88dd2e16ef0032cd9635b42c5"
  }
]

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "project": "panic_recovery",
    "component": "netlink-go",
    "pr-id": "30",
    "commit-sha": "9b4776a4311d022fbea7019ef0763452990c04a9"
  },
  {
    "project": "panic_recovery",
    "component": "trireme-lib",
    "pr-id": "516",
    "commit-sha": "f0c2865bc73bfb14be052ef2327be12ba255b855"
  },
  {
    "project": "panic_recovery",
    "component": "enforcerd",
    "pr-id": "570",
    "commit-sha": "03d4af2ca75370b88dd2e16ef0032cd9635b42c5"
  }
]

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "project": "panic_recovery",
    "component": "enforcerd",
    "pr-id": "570",
    "commit-sha": "03d4af2ca75370b88dd2e16ef0032cd9635b42c5"
  },
  {
    "project": "panic_recovery",
    "component": "netlink-go",
    "pr-id": "30",
    "commit-sha": "9b4776a4311d022fbea7019ef0763452990c04a9"
  },
  {
    "project": "panic_recovery",
    "component": "trireme-lib",
    "pr-id": "516",
    "commit-sha": "f0c2865bc73bfb14be052ef2327be12ba255b855"
  }
]

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "project": "panic_recovery",
    "component": "trireme-lib",
    "pr-id": "516",
    "commit-sha": "f0c2865bc73bfb14be052ef2327be12ba255b855"
  },
  {
    "project": "panic_recovery",
    "component": "enforcerd",
    "pr-id": "570",
    "commit-sha": "03d4af2ca75370b88dd2e16ef0032cd9635b42c5"
  },
  {
    "project": "panic_recovery",
    "component": "netlink-go",
    "pr-id": "30",
    "commit-sha": "9b4776a4311d022fbea7019ef0763452990c04a9"
  }
]

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "project": "panic_recovery",
    "component": "netlink-go",
    "pr-id": "30",
    "commit-sha": "9b4776a4311d022fbea7019ef0763452990c04a9"
  },
  {
    "project": "panic_recovery",
    "component": "trireme-lib",
    "pr-id": "516",
    "commit-sha": "f0c2865bc73bfb14be052ef2327be12ba255b855"
  },
  {
    "project": "panic_recovery",
    "component": "enforcerd",
    "pr-id": "570",
    "commit-sha": "03d4af2ca75370b88dd2e16ef0032cd9635b42c5"
  }
]

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "project": "panic_recovery",
    "component": "netlink-go",
    "pr-id": "30",
    "commit-sha": "9b4776a4311d022fbea7019ef0763452990c04a9"
  },
  {
    "project": "panic_recovery",
    "component": "trireme-lib",
    "pr-id": "516",
    "commit-sha": "f0c2865bc73bfb14be052ef2327be12ba255b855"
  },
  {
    "project": "panic_recovery",
    "component": "enforcerd",
    "pr-id": "570",
    "commit-sha": "03d4af2ca75370b88dd2e16ef0032cd9635b42c5"
  }
]


Hosilla turning ally

When I got to the Hosilla fight, in stage 2 when she summoned the demons she became an ally for some reason, and so I was unable to continue.
I had to restart the playthrough without TT installed, since disabling it and trying to load a save gave me an error.
Installed mods at the start of game:

Respec Mod
Scaling Cantrips
Tabletop Tweaks
Toybox
World Crawl

After I hit the error, I uninstalled everything except Toybox & Tabletop Tweaks, no change in behavior.
Restarting the playthrough without TT let me get through the fight as normal.

Do you have the save file you encountered this on? This sounds unrelated but I'll see if I can reporduce

Ah, you know what? I think it was a problem with the Respec Mod that persisted after I uninstalled it.
Looking at the save files, they look bad:

Which I think the most recent update fixed.


What type of update are you requesting?
A new version of an existing package
Current Package Identifier
AntibodySoftware.WizTree
Package Version
4.20
Please describe the changes you would like to see
There is a new release (4.20) available, download link https://www.diskanalyzer.com/files/wiztree_4_20_setup.exe
Keep in mind that there is also an open issue with the previous version (4.19) see https://github.com/microsoft/winget-pkgs/issues/165210

Currently in progress.

See #165057

[!NOTE]
Issue should be closed as "completed", since #165057 is successfully merged.

CC @BraveThrasher @stephengillie

Note
Issue should be closed as "completed", since #165057 is successfully merged.
CC @ BraveThrasher @ stephengillie


Add onError to scriptOptions

Closes https://github.com/marsidev/react-turnstile/issues/40
This adds an onError option to scriptOptions, which adds an onerror to the script that is injected into the DOM, so that devs can handle failures to load the Cloudflare script, such as when Cloudflare workers, turnstile, and pages recently were down for 25 minutes.
I wasn't able to test the docs locally, since pages.dev has an issue with local previews, but I think it'll just get picked up automatically?

It looks like a preview for the docs is not generated by the vercel bot either.

Hey @IanVS, thanks for contributing!
Can you please add the new script option property into docs/props.mdx? (at the very end)

Ah, I thought maybe they got pulled from the type definitions automatically.  Updated the mdx.

Thank you!

Thanks for the quick review/merge/release!


fixed parameter definition and removed timeout

have to use double square bracket for variable definition and removed time outs in builds as they are to small depending the traffic on nodes

Jenkins please retest this


[BUG]

clickhouse dont use ID
how i can create django model without ID?

Django always add an id field to model if you don't specify a primary key. To avoid this issue, just choose a field and add primary_key＝True


add tracing  in higress-config configmap

Ⅰ. Describe what this PR did
Add tracing in higress-config and auto construct envoyfilter
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #409 (dd26166) into main (fc05a3b) will decrease coverage by 1.09%.
The diff coverage is 3.48%.

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #409      +/-   ##
==========================================
- Coverage   40.29%   39.20%   -1.09%
==========================================
  Files          45       45
  Lines        6142     6356     +214
==========================================
+ Hits         2475     2492      +17
- Misses       3494     3691     +197
  Partials      173      173

Impacted Files
Coverage Δ

pkg/ingress/config/ingress_config.go
12.52% <3.48%> (-1.78%)
:arrow_down:

... and 1 file with indirect coverage changes