📝 Guidance for what an Sdk looks like

What makes a good Sdk? What functionality must it provide? Should it always include Common.targets? Should we define a new minimum target surface?
What do dependencies look like?
Must every Sdk have both props and targets? Should an Sdk define a version-number that can be used in other Sdks for error checking?
We should pull heavily from the experience of the existing Web and NET Sdks, but temper that with understanding that they were originally defined for something else.

MSBuild SDKs are very similar to plugins in Gradle. So, we can have a look on their description of plugins-
https://docs.gradle.org/current/userguide/plugins.html

A point to consider: what is the difference between SDKs and "normal" PackageReference packages that bring build logic? Both of them lead to extra top and bottom imports, but via different mechanism (sdks have msbuild awareness whereas build augmentor PackageReferences use the common props / targets extensions).
When should users use one against the other?

I have a related use case: bringing in a compiler with targets inside a package that depends on the Sdks installed by the dotnet CLI tooling. How will that work?

@borgdylan
With the current implementation, I don't think there's a way to have a node in the PackageReference closure depend on a node in the SDK closure. With the way the current design is going, you'd have to make a third party SDK with the compiler logic, and have it depend on some other SDK (though the following are not yet supported: third party SDKs, inter-SDK dependencies, SDK closure, and on the fly SDK acquisition).
This is because PackateReference is an item, and items are only evaluated in msbuild after imports and properties. Since the SDK closure is computed in an earlier step of the evaluation, you can't have a thing from the future influence a thing from the past (the SDK version constraint of a PackageReference node affecting the dependency resolution in the SDK graph).

I do not wish to write an Sdk myself. I'd rather import targets from a path based on the package root property that is already available by filling in a property in the Sdk that comes with the CLI. The .NET Sdk happens to require a property that points to the targets for a compiler i.e. the Sdk already lets third party languages participate.. I just wanted to know if there will be an official story or if I could just hack my way to something that works.

@borgdylan Take a look at dotnet/sdk#539.  I think if we do that, you will be able to have a compiler in a NuGet package by setting the LanguageTargets property to a .targets file in your NuGet package in the auto-imported Build\<PackageName>.props file.

So far language targets has worked for me when setting a hard coded path(I'm still authoring the targets). Once the bug regarding netxy targeting is fixed on non windows I'll try the budget route as well.

@borgdylan see FSharp.NET.Sdk package, works really well to add F# support using LanguageTargets (thx to @dsplaisted ).
About sdk, ihmo can be useful to customize some behaviours, mostly related to restore i think:

override or customize restore target to use another nuget client (like Paket /cc @forki)
include of <PackageReference dinamically
languages
evaluation of project pre-restore

If LanguageTargets works OK now, I won't need to write an Sdk but only targets files. I don't use Paket with my custom language but normal NuGet.

@borgdylan paket doesnt matter, was an example of configuration of sdk.
For language yes, afaik, you can just use a PackageReference (who contains a props file with the LanguageTarget property set).
I used an sdk for F# because like that i can enable dotnet pack with multiple <TargetFrameworks> too.

Shouldn't that work automatically without writing an Sdk? Why does the language specific support have to drive multi-targeting builds?

@borgdylan @enricosada I'm a little confused following this discussion. How is the LanguageTarget property coming into play here? My team is currently just using a nuget package for our compiler + sdk and I want to understand the implications here.

I have been developing experimental SDKs for my projects.
Here's the MSBuild-Sdks repo that I currently hold these SDKs.
They are experimental, bit of mixed from existing projects, props, targets and some my own to get my projects going. some might not build on your systems.
But I hope these will provide some insight on what I was hoping to achieve! and possibly give a standard for SDKs design


feat: the n-th harmonic number is not an integer for n > 1.

The n-th Harmonic number is not an integer for n > 1. This proof uses 2-adic valuations.

This proof is of Theorem 1 in Keith Conrad's blurb. This proof is credited to Kürschák (1918). From this it follows that the 2-adic valuation of H_n tends to infinity as n does. We quickly run into open problems when similar questions are asked for odd primes p.

@Ruben-VandeVelde thank you for your comments, I've incorporated most of them and the build passes. @alexjbest suggested that we could move this material out of Counterexamples and into mathlib proper. I could do that as a follow up PR if that works.

i think i've addressed most of the comments - just waiting now for the build to turn green, thanks everyone!

It seems like induction can be used to simplify the main proof:
open BigOperators

/-- The nth-harmonic number defined as a finset sum of consecutive reciprocals. -/
def harmonic : ℕ → ℚ := fun n => ∑ i in Finset.range n, (↑(i + 1))⁻¹

@[simp]
lemma harmonic_zero : harmonic 0 = 0 :=
  rfl

@[simp]
lemma harmonic_succ (n : ℕ) : harmonic (n + 1) = harmonic n + (↑(n + 1))⁻¹ := by
  apply Finset.sum_range_succ

lemma harmonic_pos {n : ℕ} (Hn : n ≠ 0) : 0 < harmonic n :=
  Finset.sum_pos (fun n _ => inv_pos.mpr (Nat.cast_pos.mpr n.succ_pos))
    (Finset.nonempty_range_iff.mpr Hn)

lemma key1 {n : ℕ} (hn : n ≠ 0) : Nat.log 2 n ≠ padicValNat 2 (n + 1) := by
  rw [Ne, Nat.log_eq_iff (by simp [hn])]
  rintro ⟨h1, h2⟩
  rw [← Nat.lt_add_one_iff, ← mul_one (2 ^ _)] at h1
  rw [← Nat.add_one_le_iff, pow_succ'] at h2
  refine' Nat.not_dvd_of_between_consec_multiples h1 (lt_of_le_of_ne' h2 _) pow_padicValNat_dvd
  exact pow_succ_padicValNat_not_dvd n.succ_ne_zero ∘ dvd_of_eq

lemma key2 (n : ℕ) : max (Nat.log 2 n) (padicValNat 2 (n + 1)) = Nat.log 2 (n + 1) := by
  apply le_antisymm (max_le (Nat.le_log_of_pow_le one_lt_two (Nat.pow_log_le_add_one 2 n))
    (Nat.le_log_of_pow_le one_lt_two (Nat.le_of_dvd n.succ_pos pow_padicValNat_dvd)))
  rw [le_max_iff, or_iff_not_imp_left, not_le]
  intro h
  replace h := le_antisymm (Nat.add_one_le_iff.mpr (Nat.lt_pow_of_log_lt one_lt_two h))
    (Nat.pow_log_le_self 2 n.succ_ne_zero)
  rw [h, padicValNat.prime_pow, ← h]

/-- The 2-adic valuation of the n-th harmonic number is the negative of the logarithm
    of n. -/
theorem harmonic_two_adicValRat {n : ℕ} : padicValRat 2 (harmonic n) = -Nat.log 2 n := by
  induction' n with n ih
  · simp
  · rcases eq_or_ne n 0 with rfl | hn
    · simp
    rw [harmonic_succ]
    have key : padicValRat 2 (harmonic n) ≠ padicValRat 2 (↑(n + 1))⁻¹
    · rw [ih, padicValRat.inv, padicValRat.of_nat, Ne, neg_inj, Nat.cast_inj]
      exact key1 hn
    rw [padicValRat.min_eq_padicValRat_add (harmonic_succ n ▸ (harmonic_pos n.succ_ne_zero).ne')
        (harmonic_pos hn).ne' (inv_ne_zero (Nat.cast_ne_zero.mpr n.succ_ne_zero)) key, ih,
        padicValRat.inv, padicValRat.of_nat, min_neg_neg, neg_inj, ← Nat.cast_max, Nat.cast_inj]
    exact key2 n

/-- The n-th harmonic number is not an integer for n ≥ 2. -/
theorem harmonic_not_int {n : ℕ} (h : 1 < n) : ¬(harmonic n).isInt := by
  apply padicNorm.not_int_of_not_padic_int 2
  rw [padicNorm.eq_zpow_of_nonzero (harmonic_pos (ne_zero_of_lt h)).ne',
      harmonic_two_adicValRat, neg_neg, zpow_coe_nat]
  exact one_lt_pow one_lt_two (Nat.log_pos one_lt_two h).ne'

@tb65536 Can we just merge this and you can make your changes as a PR later?

maintainer merge

Thanks for making all these changes @kodyvajjha, hopefully the next PR will be smoother :)

Hahaha hopefully! Thanks @alexjbest


Use plugin architecture to implement support for basic detectors

E.g., ASan, MSan, UBSan, TSan.

Implemented as sanitisers.


pythonPackages.python-daemon: disable tests after pytest upgrade

A git bisect shows this stopped building with adb485bb934e44c7f5e8f83d263acc68e5d48c63.
Many tests appear to need updates.
CC @jonringer

Motivation for this change
Things done

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

[X] NixOS
[ ] macOS
[ ] other Linux distributions

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

Using pytest_4 solves the issue 35556acf6e49d6768f7c7f28d848579caad19e78

pushed 77d893eea3a5dcc035b92123be44aae82b5014c8 to master

Thanks @FRidh!  That is a much nicer fix!


Update Managers collection and Manager

We should have only one Manager - Oneview (Type: service). Need to check other mappings.
We should map all status from controller.json to Redfish Manager enum values.
Collection will not use python sdk to list all managers.
Remove all other Managers implemented in phase 1.
Update Links to ManagedBy for Chassis and ComputerSystem.
Check if we should keep firmware version (appliance node info - software version as used for enclosure).
We should get appliance uuid for the manager uuid GET /rest/appliance/nodeinfo/version).
Depends on #268 (Closed)

Let's map description with "family" from Oneview response.
Regarding appliance health status, let's check Severity response from OneView for each member. Possible values are: INFO, CRITICAL and WARNING.


Handle 136. Frequencies

:tada: This PR is included in version 6.9.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


some error logs

starting. Version 0.6.6 in /opt/iobroker/node_modules/iobroker.roborock, node: v20.16.0, js-controller: 6.0.10
iobroker
Plattform: linux
RAM: 7.8 GB
Node.js: v20.16.0
NPM: 10.8.1
`

roborock.0 | Zeit | debug |
-- | -- | -- | --
roborock.0 | 2024-08-15 06:09:27.851 | warn | MQTT connection reconnect.
roborock.0 | 2024-08-15 06:09:27.850 | warn | MQTT connection close.
roborock.0 | 2024-08-15 06:09:27.837 | warn | Reconnecting mqtt client!
roborock.0 | 2024-08-15 05:09:27.851 | warn | MQTT connection reconnect.
roborock.0 | 2024-08-15 05:09:27.850 | warn | MQTT connection close.
roborock.0 | 2024-08-15 05:09:27.837 | warn | Reconnecting mqtt client!
roborock.0 | 2024-08-15 04:55:58.709 | warn | Unable to decode message for 6JjS9OuGMvnyj9WHHsYT53. The the device is most likely offline. data: {"version":"1.0","seq":69,"random":264660,"timestamp":1723690558,"protocol":500,"payload":{"type":"Buffer","data":[123,34,111,110,108,105,110,101,34,58,116,114,117,101,125]},"crc32":2111064786}
roborock.0 | 2024-08-15 04:55:36.235 | warn | Unable to decode message for 6JjS9OuGMvnyj9WHHsYT53. The the device is most likely offline. data: {"version":"1.0","seq":11,"random":688154,"timestamp":1723690536,"protocol":500,"payload":{"type":"Buffer","data":[123,34,111,110,108,105,110,101,34,58,102,97,108,115,101,125]},"crc32":894164302}
roborock.0 | 2024-08-15 04:51:51.229 | warn | Unable to decode message for 6JjS9OuGMvnyj9WHHsYT53. The the device is most likely offline. data: {"version":"1.0","seq":75,"random":998109,"timestamp":1723690311,"protocol":500,"payload":{"type":"Buffer","data":[123,34,111,110,108,105,110,101,34,58,116,114,117,101,125]},"crc32":4222913258}
roborock.0 | 2024-08-15 04:51:50.723 | warn | Unable to decode message for 6JjS9OuGMvnyj9WHHsYT53. The the device is most likely offline. data: {"version":"1.0","seq":79,"random":444815,"timestamp":1723690310,"protocol":500,"payload":{"type":"Buffer","data":[123,34,111,110,108,105,110,101,34,58,102,97,108,115,101,125]},"crc32":2731923726}
roborock.0 | 2024-08-15 04:48:44.380 | warn | Unable to decode message for 6JjS9OuGMvnyj9WHHsYT53. The the device is most likely offline. data: {"version":"1.0","seq":52,"random":367511,"timestamp":1723690124,"protocol":500,"payload":{"type":"Buffer","data":[123,34,111,110,108,105,110,101,34,58,116,114,117,101,125]},"crc32":863922782}
roborock.0 | 2024-08-15 04:48:43.839 | warn | Unable to decode message for 6JjS9OuGMvnyj9WHHsYT53. The the device is most likely offline. data: {"version":"1.0","seq":73,"random":202985,"timestamp":1723690123,"protocol":500,"payload":{"type":"Buffer","data":[123,34,111,110,108,105,110,101,34,58,102,97,108,115,101,125]},"crc32":3206265612}
roborock.0 | 2024-08-15 04:09:27.856 | warn | MQTT connection reconnect.
roborock.0 | 2024-08-15 04:09:27.855 | warn | MQTT connection close.
roborock.0 | 2024-08-15 04:09:27.837 | warn | Reconnecting mqtt client!
roborock.0 | 2024-08-15 03:35:04.038 | warn | Unable to decode message for 6JjS9OuGMvnyj9WHHsYT53. The the device is most likely offline. data: {"version":"1.0","seq":46,"random":738547,"timestamp":1723685704,"protocol":500,"payload":{"type":"Buffer","data":[123,34,111,110,108,105,110,101,34,58,116,114,117,101,125]},"crc32":3447157281}
roborock.0 | 2024-08-15 03:35:02.548 | warn | Unable to decode message for 6JjS9OuGMvnyj9WHHsYT53. The the device is most likely offline. data: {"version":"1.0","seq":40,"random":424372,"timestamp":1723685702,"protocol":500,"payload":{"type":"Buffer","data":[123,34,111,110,108,105,110,101,34,58,102,97,108,115,101,125]},"crc32":2106372568}
roborock.0 | 2024-08-15 03:09:57.251 | info | Starting adapter finished. Lets go!!!!!!!
roborock.0 | 2024-08-15 03:09:32.473 | warn | Unable to decode message for 6JjS9OuGMvnyj9WHHsYT53. The the device is most likely offline. data: {"version":"1.0","seq":77,"random":322456,"timestamp":1723684172,"protocol":500,"payload":{"type":"Buffer","data":[123,34,111,110,108,105,110,101,34,58,116,114,117,101,125]},"crc32":896922896}
roborock.0 | 2024-08-15 03:09:27.837 | info | MQTT initialized
roborock.0 | 2024-08-15 03:09:27.383 | info | Starting adapter. This might take a few minutes depending on your setup. Please wait.
roborock.0 | 2024-08-15 03:09:27.373 | info | starting. Version 0.6.6 in /opt/iobroker/node_modules/iobroker.roborock, node: v20.16.0, js-controller: 6.0.10
roborock.0 | 2024-08-15 03:08:55.028 | info | terminating
roborock.0 | 2024-08-15 03:08:54.527 | warn | Terminated (UNCAUGHT_EXCEPTION): Without reason
roborock.0 | 2024-08-15 03:08:54.526 | info | terminating
roborock.0 | 2024-08-15 03:08:54.519 | error | Exception-Code: ECONNREFUSED: connect ECONNREFUSED <IP_ADDRESS>:58867
roborock.0 | 2024-08-15 03:08:54.519 | error | Error: connect ECONNREFUSED <IP_ADDRESS>:58867 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1607:16)
roborock.0 | 2024-08-15 03:08:54.519 | error | unhandled promise rejection: connect ECONNREFUSED <IP_ADDRESS>:58867
roborock.0 | 2024-08-15 03:08:54.519 | error | Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
roborock.0 | 2024-08-15 03:08:53.841 | warn | Unable to decode message for 6JjS9OuGMvnyj9WHHsYT53. The the device is most likely offline. data: {"version":"1.0","seq":70,"random":943513,"timestamp":1723684133,"protocol":500,"payload":{"type":"Buffer","data":[123,34,111,110,108,105,110,101,34,58,102,97,108,115,101,125]},"crc32":3138761092}
roborock.0 | 2024-08-15 02:39:44.297 | warn | Unable to decode message for 6JjS9OuGMvnyj9WHHsYT53. The the device is most likely offline. data: {"version":"1.0","seq":55,"random":956126,"timestamp":1723682384,"protocol":500,"payload":{"type":"Buffer","data":[123,34,111,110,108,105,110,101,34,58,116,114,117,101,125]},"crc32":1642790994}
roborock.0 | 2024-08-15 02:39:42.659 | warn | MQTT connection reconnect.
roborock.0 | 2024-08-15 02:39:41.658 | warn | MQTT connection close.

`

Same as this one maybe? https://github.com/copystring/ioBroker.roborock/issues/584


Uncaught ReferenceError: ReactDOM is not defined error

I did the setup for a NodeJS project.
The page loads but I get a Uncaught ReferenceError: ReactDOM is not defined error
My Admin Bro Route file looks something like :
const AdminBro = require('admin-bro')
const AdminBroExpress = require('@admin-bro/express')
const AdminBroMongoose = require('@admin-bro/mongoose')
const UserModel = require('../models/users')

AdminBro.registerAdapter(AdminBroMongoose)

const AdminBroOptions = {
    resources: [UserModel],
}

console.log("Inside admin bro")

const AdminBroObj = new AdminBro(AdminBroOptions)

const router = AdminBroExpress.buildRouter(AdminBroObj)

module.exports = router;

And I initialize it in my main entry file after connection to the db is over

app.use(cors())
app.use(express.json());
app.use(express.urlencoded({ extended: false }));

//connecting to db
var connection = require('./middlewares/connection').then(db => {

    console.log("Connection Success")

    //initializing admin bro
    var adminBroRouter = require('./routes/admin_bro');
    //setting up admin bro
    app.use('/adminPanel', adminBroRouter)
    app.listen(8080, () => {

        console.log('AdminBro is under localhost:8080/admin')

    })

})

Changed the route of AdminBro from :

    app.use('/adminPanel', adminBroRouter)

to     app.use('/admin', adminBroRouter) and it worked 💯

Changed the route of AdminBro from :

    app.use('/adminPanel', adminBroRouter)

to     app.use('/admin', adminBroRouter) and it worked 💯


Unable to generate android apk

I have to generate the android apk of my flutter app, to do it I run flutter clean and then flutter build apk, when the apk build is performed I have the following errors reported below, do any of you know how to solve these errors?
build.gradle:
buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google()
        jcenter()
         maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        //classpath 'com.android.tools.build:gradle:3.3.0'
        classpath 'com.google.gms:google-services:4.2.0'
        classpath 'io.fabric.tools:gradle:1.30.0'
    }

    //compileSdkVersion 28
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Error:
1) Android dependency 'androidx.core:core' has different version for the compile (1.1.0)
        and runtime (1.2.0) classpath. You should manually set the same version via DependencyResolution

    2). Execution failed for task ':app:preReleaseBuild'.
    > Android dependency 'com.android.support:support-v4' has different version for the compile (27.1.1)
and runtime (28.0.0) classpath. You should manually set the same version via DependencyResolution

Hi @riccardopirani
can you please provide your flutter doctor -v ,
your flutter run --verbose,
your pubspec.yaml
and a reproducible minimal code sample.
Thank you


OOM - LinkedList$Node

java_pid2385155.zip.001.zip
java_pid2385155.zip.004.zip
java_pid2385155.zip.005.zip
java_pid2385155.zip.006.zip
java_pid2385155.zip.002.zip
java_pid2385155.zip.003.zip

java_pid2385155.zip.009.zip
java_pid2385155.zip.010.zip
java_pid2385155.zip.007.zip
java_pid2385155.zip.008.zip

java_pid2385155.zip.015.zip
java_pid2385155.zip.011.zip
java_pid2385155.zip.012.zip
java_pid2385155.zip.013.zip
java_pid2385155.zip.014.zip

java_pid2385155.zip.019.zip
java_pid2385155.zip.020.zip
java_pid2385155.zip.016.zip
java_pid2385155.zip.018.zip

java_pid2385155.zip.017.zip

java_pid2385155.zip.024.zip
java_pid2385155.zip.025.zip
java_pid2385155.zip.021.zip
java_pid2385155.zip.022.zip
java_pid2385155.zip.023.zip

java_pid2385155.zip.028.zip
java_pid2385155.zip.029.zip
java_pid2385155.zip.030.zip
java_pid2385155.zip.031.zip
java_pid2385155.zip.026.zip
java_pid2385155.zip.027.zip

spring-boot.zip

This is purely caused by user code, which creates huge LinkedList. One of the ways to solve it is to self-heal JVM by killing it and running again with below flag.
XX:OnOutOfMemoryError="<cmd args>;  <cmd args>"	Run user-defined commands when an OutOfMemoryError is first thrown. (Introduced in 1.4.2 update 12, 6)


Click on Save Datasource in API editor2. You will be redirected to the datasource config page and then SAVE it3. you will be redirected to the wrong URL expectation: redirect to the same API editor page

https://www.notion.so/1-Click-on-Save-Datasource-in-API-editor2-You-will-be-redirected-to-the-datasource-config-page-and-018e74d77e5740fea33987839c1a111b
https://www.loom.com/share/33eef1ea703743eaa30860376ebdf552

Bumping this issue up to prod because it should have made it's way there by now if it was not fixed


Adding Actuator integration for storage

Description
A few sentences describing the overall goals of the pull request's commits.
Todos

[x] Tests
[ ] Documentation

Codecov Report

Merging #742 into master will increase coverage by 0.68%.
The diff coverage is 82.00%.

@@             Coverage Diff              @@
##             master     #742      +/-   ##
============================================
+ Coverage     58.42%   59.10%   +0.68%
- Complexity      874      885      +11
============================================
  Files           197      201       +4
  Lines          3557     3607      +50
  Branches        277      281       +4
============================================
+ Hits           2078     2132      +54
+ Misses         1327     1317      -10
- Partials        152      158       +6

Impacted Files
Coverage Δ
Complexity Δ

...torage/actuator/AzureStorageActuatorConstants.java
66.66% <66.66%> (ø)
1.00 <1.00> (?)

...e/storage/actuator/BlobStorageHealthIndicator.java
78.26% <78.26%> (ø)
2.00 <2.00> (?)

...e/storage/actuator/FileStorageHealthIndicator.java
85.71% <85.71%> (ø)
2.00 <2.00> (?)

...ctuator/AzureStorageActuatorAutoConfiguration.java
100.00% <100.00%> (ø)
3.00 <3.00> (?)

.../autoconfigure/storage/AzureStorageProperties.java
81.81% <0.00%> (+9.09%)
6.00% <0.00%> (+1.00%)

...nfigure/storage/AzureStorageAutoConfiguration.java
56.66% <0.00%> (+40.00%)
5.00% <0.00%> (+2.00%)

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 49d4432...d4ee6bc. Read the comment docs.


Update project-structure file paths

There were some wrong file paths, now they should reflect the real project structure.

This one is (more) complete: https://github.com/driftyco/ionic-site/pull/321
I am sorry for the double work, I did not check for existing PRs. My apologies for that.


Constant name "tag_list" doesn't conform to UPPER_CASE naming style

https://github.com/lbonanomi/gRist/blob/0bb7eceee04bd597966217117892ae3e98250892/grist.py#L192

Issues for naming style are now ignored.


Only upload actions artifacts when not in live results mode

When in live-results mode, we don't want to upload the old actions artifacts because they are unnecessary and also a privacy concern.
Shouldn't affect behaviour when not in live-results mode.

Kind of unrelated to the PR, but are we planning to write some unit tests around query.ts? It's getting a bit more complex so it'd be good to have some coverage.

Kind of unrelated to the PR, but are we planning to write some unit tests around query.ts? It's getting a bit more complex so it'd be good to have some coverage.

I would also love to have some tests of this code. I think we just need to do it, but it's hard to find the time, especially when there aren't many tests to start with. It may tie in to the work we're planning for mocking the github API in the extension and then we can use the same approach here. I'll at least add a note about this repo to the release confidence issue.


Button hover effect

What happened?
i recently heard that the plan is to change text color on button hover rather than background-color of the button on button hover. i disagree with this because it's not a good UX choice due to the colors we use.
as it currently stands, the colors we use in our design language is bad for accessibility on dark backgrounds (one of the reasons why I strayed away from dark mode at the early stages of the website) due to how saturated the colors are. relating to this, acmBlue does not look good on acmDark because both colors are too dark. this is why I designed the buttons to change the background color to acmBlue on hover.
i recommend that for buttons, background-color change should be the hover effect.

Followed up in #647.


slug for search_queries

It probably is a good idea to add a slug field to the search_queries resource. So that they are not addressed by an id but the slug. The slug should be related to value. I have no exact idea how this is done best.

This is definitely an interesting issue, as search_queries are case sensitive, and can contain html unsafe text. Ecto allows you to just set any value as the "data value" of a schema, so when that schema is passed as a html parameter, phoenix uses that indicated field as the data for the request. By default, it's the id, but for example with user it's the active_slug field. However since search_queries can contain html unsafe text it's inconvienant to just turn `value

seach_queries should not contain html unsafe text. I don't see a reason why it should. Anyway: I like the idea of doing something similar to the way we do it for User.
PS: It should be downcased.


workflow: trigger nydus test in workflow

trigger nydus test in workflow.

I just retriggered the CI to check if it is caused by network fluctuations


[Usage]: how to acquire logits in vllm

Your current environment
The output of `python collect_env.py`

How would you like to use vllm
I want to acquire logits when I run benchmark_throughput.py to do the softmax optimization, but the output in vllm doesn't have logits, how can I acquire it.
Before submitting a new issue...

[X] Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

my env is MI250 and ROCM 6.1

Would a logits_processor work for your use case? https://docs.vllm.ai/en/latest/dev/sampling_params.html


Unable to add new ASCO abstract source

While trying to curate this evidence (https://meetings.asco.org/abstracts-presentations/195666) I found that the source field, on either the Add Evidence or Add Source page, is not able to identify abstract ID 195666. This may be related to #942.
I also noticed that on the Sources browse grid there are display issues when filtering on the source, and when typing in a specific source ID a match is displayed that is not a match to the ID entered (see below).

Yeah, ASCO removed the API we were previously using and their new site is behind cloudflare bot protection so we can't scrape it directly any longer. Until we manage to figure out a way to work around that, it will unfortunately remain broken. We have some ideas though!
We will take a look at the filtering issue though, that's strange and unexpected.

#1105 should fix the filtering issue mentioned here. Ongoing issue with the ASCO API will be tracked in #942


Merge together both capistrano unicorns (unicorni?)

Before diving down this path, would it make sense to try to merge both this and @sosedoff's gems together into one for both Capistrano 2 & 3 support under one gem and namespace?
Would @sepastian and @sosedoff be ammenable to that?
My preposal would be:

Move capistrano 2 support under lib/capistrano/unicorn/ to model how the other Capistrano gems are modeled (i.e. Capistrano Rails, Capistrano Rbenv, etc... )
Implement Capistrano 2/3 detection similar to how Sidekiq and others are doing it.

:+1: looks like this is way outdated... but worth a shot


Fixes for a bunch of reported issues

See list of commits for full list

@matejdro doing some testing of the PR. It looks like the app still doesn't disconnect or unpair the watch when forget watch is selected.

@matejdro
I can confirm this fixes: #116, #134, #135
It fixes #108 but it has a weird icon animation when the app opens, the "rock on" hand logo sort of floats up while the window opens. I haven't seen this happen with other apps.
I wasn't able to reproduce #124 or #118,
#103 needs more work I think, it still doesn't function as expected.

Thanks for the review. I've added disconnect for the #103.
I can't reproduce the #108 issue you have (or maybe I don't know what I'm looking for). Can you record your screen?


Add ability to bypass terms and conditions check when creating a Kafka or service registry instance

Problem
It would be useful if the kas-installer could just use the rhoas cli, that would allow several of the scripts that currently > support the kas-installer to be removed and drive all our use-cases towards one set of tooling.
One barrier is the T&C check made by the CLI. When you run kas from the kas-installer, fleet-manager is configured not to enforce a T&C check, but the CLI doesn't know that. The T&C check made by the CLI fails because the T&C endpoint doesn't exist.

<EMAIL_ADDRESS>
Solution
One simple solution might be a flag in the CLI (environment variable or command line switch) that allowed the check to be bypassed. If it were to exist, there'd be no chance that a user could use this to bypass T&Cs in real life as the fleet-manager normally enforces this on creation.

My preference for this would be to use a flag which is hidden from completions and documentation.
We can hide a flag in Cobra easily:
// Hide flag for this command
command.Flags().MarkHidden("some-flag")

A benefit of a flag is we can direct users to try this option of the terms and conditions pre-check is causing issues.

+1 for CLI flag


adding part (file) of entire gist

thanks for this extension!
It seems it is only possible to add the entire gist, however there are gists with multiple files in which case it would be nice to have the ability to add files individually.
e.g. this works (adding both included files)
{{< gist wiesehahn 6b6c215c227341f4faab03ff96fa7f1b >}}
but this does not work (adding only one file)
{{< gist wiesehahn 6b6c215c227341f4faab03ff96fa7f1b#file-lidar_availability_germany_table-md >}}
Is it already possible somehow or would it be possible to add this functionality?

Thanks, works as expected!


Gif keyboard support

Similar to a couple slack command integrations, but limited to certain channels

https://api.tenor.co/#start


🐛 Fix cache check

Description
There is a bug in the optimisation where we try to avoid writing, if another thread already updated the cache: I believe we should be checking catalog.Status.ResolvedSource.Image.ResolvedRef (includes sha) as in other places instead of catalog.Status.ResolvedSource.Image.Ref.
Related:

#529
#528

Reviewer Checklist

[ ] API Go Documentation
[ ] Tests: Unit Tests (and E2E Tests, if appropriate)
[ ] Comprehensive Commit Messages
[ ] Links to related GitHub Issue(s)

Accidentally deleted the branch. Restored and reopened.


BUG: if result folder exist, program fails

It claims it could not be generated and fails. It should issue a warning, or tell the user

Fixed


question: Support for gke-gcloud-auth-plugin in k8sgpt docker image

Checklist:

[x] I've searched for similar issues and couldn't find anything matching
[x] I've included steps to reproduce the bug.
[x] I've included the version of Kubernetes and k8sgpt.

Subject of the issue
Potential future proof feature,
Support for gke-gcloud-auth-plugin in k8sgpt docker image.
If the plugin is installed locally using the methods described at https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke, the local k8sgpt package works correctly.
However, the container fails since the k8sgpt image does not have a plugin installed.
Your environment
k8sgpt running as container against GKE cluster.

Version of Kubernetes
GKE - 1.24.10-gke.2300
Host OS and its version / If windows, is it WSL?
Mac/Darwin
Version of k8sgpt
dev - latest

Steps to reproduce

Run the k8sgpt container and mount the kube config of a GKE cluster

Expected behaviour
K8sgpt Container Able to analyze the GKE cluster successfully using gke-cloud-auth-plugin.
Actual behaviour
Starting server on port 8080
Error: Get "https://<IP_ADDRESS>/apis/batch/v1/cronjobs": getting credentials: exec: executable gke-gcloud-auth-plugin not found

It looks like you are trying to use a client-go credential plugin that is not installed.

To learn more about this feature, consult the documentation available at:
      https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins

Install gke-gcloud-auth-plugin for use with kubectl by following https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke

Additional context / screenshots

Would you like to contribute to this @VinayKadalagi ? We could have an additional Dockerfile we build.

Hey @AlexsJones Yea sure, please assign this to me.
Do you mean we should have separate Dockerfile with this plugin installed ? Makes sense as the docker image grows fat in size after we install the gcloud cli plugins & dependencies.

Hey @AlexsJones Please assign this to me..
Also can you please add me to slack channel<EMAIL_ADDRESS>

Hey @AlexsJones Yea sure, please assign this to me.
Do you mean we should have separate Dockerfile with this plugin installed ? Makes sense as the docker image grows fat in size after we install the gcloud cli plugins & dependencies.

That's what I am thinking yeah, we could have something like container/build_gcloud.Dockerfile and add it also to our GitHub actions to build and produce both the standard and this image.

Any luck with this @VinayKadalagi ?

@AlexsJones I stumbled over https://github.com/traviswt/gke-auth-plugin which gets rid of the gcloud cli + python dependencies and keeps the size small. Although there is the issue with it not being officially maintained by gcloud, but at least worth to consider.


New to hiredis

Hi I'm new to hiredis or in general key value database, and I am quite lost now. Sorry for asking but after downloading the source code. Do I have to do anything before I compile? I tried to compile and run with some of the examples here: https://redislabs.com/lp/hiredis/. However it seems like there is an error saying some methods example sdsempty() in the hiredis.c file is not defined. Am I missing a step of making files or installing the hiredis library? I am very clueless right now and will appreciate any help I can get. Thanks in advance.

Hi,
There are a variety of ways to install hiredis on Linux and Mac but from source the process would look like this:
$ git clone https://github.com/redis/hiredis.git
$ cd hiredis
$ make && sudo make install

That will install the required headers on your system.
Once hiredis is installed, you can get started by simply including hiredis/hiredis.h.
Here's a quick example program:
#include <hiredis/hiredis.h>
#include <stdio.h>

int main(void) {
    redisContext *context;
    redisReply *reply;

    context = redisConnect("<IP_ADDRESS>", 6379);
    reply = redisCommand(context, "SET %s %s", "foo", "bar");
    if (!reply || context->err) {
        printf("Error setting key\n");
        return -1;
    }

    freeReplyObject(reply);

    reply = redisCommand(context, "GET %s", "foo");
    if (!reply || context->err) {
        printf("Error gettihng key\n");
        return -1;
    }

    printf("Key foo = '%s'\n", reply->str);

    freeReplyObject(reply);
    redisFree(context);
}

Compile like so:
cc hiredis-hello.c -o hiredis-hello -lhiredis

omg I'm sorry i forgot to mention that I was doing it on Windows. Is it technically possible to do it?

The main hiredis repository doesn't support windows so I can't help much there :/
Here are a couple of Microsoft forks of hiredis and Redis which might work, but I don't have any experience with them:
https://github.com/Microsoft/hiredis
https://github.com/MicrosoftArchive/redis

Its alright! Thanks for the help here. Really appreciate it!


generate typescript source map with loader:'typescript-simple'

I wanted to debug with vscode, so I'll need to generate source map for the ts files. But the ts loader is using 'typescript-simple' which didn't support generate source map. Is there anyway I can generate source map for it instead of generate *.js.map files? Or can I change the loader to some other source map supported loaders? Thanks!

if you want the source maps, then simple build using 'gulp'
mentioned on the main page, the two different gulp tasks to run, 'default' and 'release'
https://github.com/ceolter/ag-grid

(please ignore my activity on this thread, i got mixed up between projects!)

@Gabriel0402 can you change this line of code
https://github.com/angular-class/angular2-webpack-starter/blob/master/webpack.config.js#L35...L38
devtool: env({
    'development': 'eval',
    'all': 'source-map'
  }),

change to
devtool: 'source-map',

@gdi2290 Thanks!


FR: Command for updating lookup fields

I would love to have a command "Update lookup fields in current file" and/or "Update all lookup fields". So I can map it to a keyboard shortcut.

shipped in 0.3.10


.env.test not being loaded

I tried renaming my .env file to .env.test and it doesnt seem that it gets loaded when I run my tests. Same thing if I have a .env.production file and run the console in production. Is there anything special to do to get this working?

Unable to reproduce anymore so closing...


2.x: Make HBXCTClient use Swift Concurrency

If the server requires Swift Concurrency, it'll simplify tests if the test client also uses it.

done


Use mongodb v4.4.1 when testing to match real version used in production

Current mongodb version being used is 4.4.1 so we should also use this version when testing.

Coverage increased (+0.06%) to 93.923% when pulling 37325eed7da6890f878abf295390dc9fe94b6c71 on test_with_mongo_4.4.1 into 9884b80cf937fc1d24b096bb486776fa5b3e0823 on master.


SQL Horrendous memory issue

https://github.com/11TStudio/SquadStatsJSPRO/blob/7c4f7de4afa53efe229fc48b9d88d01409a48427/commands/Squad/profile.js#L110
Noticed after opening #9. Bot is opening a new sql connection for every command when using sql. These connections are never disposed of, and will remain open for 8+ hours. The bot will eventually run to a screeching halt.

The database connection pool is limited in size, and if it fills up, new connections will wait for old connections to be released. If you don't dispose them as soon as you're finished with them, they'll eventually get released when the finaliser runs, but that's an indeterminate amount of time in the future... So at best, you're going to see long delays when opening new connections.
At worst, they might've disabled the connection pool. Perhaps they discovered that after a while their app was returning "timeout waiting for connection" errors and disabling the connection pool "solved" that problem. However, this is much worse because it means you're creating a whole new connection every time - which is surprisingly resource intensive. If you've got hundreds of connections to the database open, it would be no wonder you're seeing performance problems.
The correct way to solve all of these problems is to dispose of your connection as soon as you're finished with it. The best idea is to hold the connection open for exactly as long as needed, and no longer.

You're code is doing the latter, Creating a new connection every time, and Never disposing. mysql connections can remain suspended for 8 hours by default.

None of this will be freed by the garbage collector either as it's still "In Use".

None of this will be freed by the garbage collector either as it's still "In Use".

Thank you for pointing it out, will fix it asap 💯

This has been fixed in this PR https://github.com/11TStudio/SquadStatsJSPRO/commit/686b4d27fc6e1922a87fe6fb58d27628c1f353e9
As you mentioned from PM I will later today make this pormise based.


[Pager] animateScrollToPage tries to render all pages after changing to LazyRow

Describe the bug
This is a regression of https://github.com/google/accompanist/issues/368 after Pager has been reimplemented with LazyRow / LazyColumn.

Pager seems to really try and scroll through all the pages and render them while doing so. In effect, when I animateScrollToPage from, say, page 1 to page 80, it looks very laggy. Old ViewPager is cheating here - it only really scrolls one page. So if I wanted it to scroll from page 1 to page 80, it would really only scroll from 79 to 80. It was fast enough to fool the eye, though - and thus looked smoother.

Environment:
val composeVersion = "1.1.0-beta02"
val accompanistVersion = "0.21.2-beta"

I was trying this out and we are experiencing this issue as well. The first method was definitely superior and Google Maps does it that way too. We're still stuck on 0.18.0 because of these issues.
I hope we can migrate soon...

Is there any update here?

Well, copying 0.18 version is very easy and after a quick test I don't see any issues, so as a quick workaround it's fine.
https://github.com/google/accompanist/tree/v0.18.0/pager/src/main/java/com/google/accompanist/pager

Well glad that helped. Have you tried the latest version already? Did it fix anything?

No, I'm on 1.1.0-beta02 right now, but I don't think new version was fixed, @andkulikov would let us know or cross referenced a pull request if he started working on that. I hope it's going to be properly fixed at some point.
@andkulikov is there maybe a Compose / LazyRow blocker issue on google issue tracker that we could follow or you don't know yet how to tackle this issue?

There is no clear strategy what to do with this issue yet. I will explore how that was handled in ViewPager2 which is based on RecyclerView which is pretty similar


api.tx.subs.md typo

"to to" should be "to be"

You can combine this with your other PR :)

Combining into https://github.com/polkadot-js/docs/pull/247. Closing this PR.

thanks for your contributions @tarrball
^_^


Pass variables as args to all "osascript" commands

Instead of placing variables directly in AppleScript code passed to  "osascript", pass the variables as arguments to be retrieved from within the AppleScript code instead.
To be able to retrieve arguments passed to "osascript" within the AppleScript code, the AppleScript code must be within an "run" function/handler, which is shown and described near the top of the "DESCRIPTION" section in "man osascript".
When a variable is placed directly in AppleScript code, its value is expanded by the shell before being passed to "osascript" and is therefore being interpreted as raw AppleScript code. This means that any special characters such as double quotes (") would need to be manually escaped within the variables contents to not break the quoted AppleScript string that the variable is being placed within.
But, when the values are passed to "osascript" as arguments and then retrieved within the AppleScript code from the arguments array, they are always static string values that are never interpreted as AppleScript code. This means that any literal quotes within a variable are properly displayed without needing to be escaped and without ever breaking the AppleScript code.
Double quotes are just one example, but in general passing variables as arguments prevents any possible arbitrary AppleScript code execution. While that is not really likely with how these function are used in Installomator, passing arguments to other environments that interpret code instead of placing variables directly in that code is a safe practice in general and helps avoids any possible mistakes or bugs in the future.
Also, I have slightly adjusted the behavior of "displaydialog" function to set the "Not Now" button as the dialogs "cancel button" which means the Escape key can now be used to dismiss the alert as is normal and expected in standard macOS dialogs. The adjustments needed for this behavior to not require other changes throughout the code is documented in the "NOTE" comment at the end of the "displaydialog" function.
Finally, I added a new "quitApp" function instead of repeating the same "osascript" command 4 times to quit apps in different case statements within the "checkRunningProcesses" function.
These may be a lot of changes in a single PR, but they were all pretty interconnected. If any part of all these changes is not desired, I can make changes as needed.

Would you like me to re-do this as a PR agains the Dev branch to include the giving up after $PROMPT_TIMEOUT option in displaydialog?
If so, would I need to close this and re-do a PR with a branch from Dev, or is there an easy way for me to commit an update to this PR that resolves the Dev conflicts?

Looks to me like quitApp $x could be a little dangerous, as the function only grabs $1, so “Microsoft Edge” would only be “Microsoft”. I think it should be quitApp "$x".
(But today I learned something about osascript, thank you!

In zsh word splitting would not happen on the $x argument passed to quitApp, so $1 would always be the whole thing, such as "Microsoft Edge"
In bash or POSIX shell (sh), it would be important to quote the variable passed to quitApp, like quitApp "$x", but that's not an issue since Installomator is zsh.

I generally write in bash so I'm still getting the hang of zsh quoting and word splitting behavior. Totally trips me up that passing unquoted command substitution as an argument is word split but an unquoted variable is not.


New Plugin Idea: log discord and summarize channels

Is your feature request related to a problem? Please describe.
We could use a way to summarize discord channels periodically. There's too much activity to keep up on, but a periodic (like daily or weekly) summary would help us to keep up as a community.
Describe the solution you'd like
Create a new plugin for eliza that would log particular channels in a discord and save the logs or into memory. Then periodically summarize these and post to a different channel. i.e. if logging #arena post daily summaries to #area-summary.
Describe alternatives you've considered
Doing this manually.

I was made for this.

Can I lock this bounty?

Can I lock this bounty?

hop into ai16z discord: https://discord.gg/YQXh2xYV
tag me, lets discuss

Hello @madjin, I'm interested in this also
What channel can I reach you in the discord?

Is your feature request related to a problem? Please describe.
We could use a way to summarize discord channels periodically. There's too much activity to keep up on, but a periodic (like daily or weekly) summary would help us to keep up as a community.
Describe the solution you'd like
Create a new plugin for eliza that would log particular channels in a discord and save the logs or into memory. Then periodically summarize these and post to a different channel. i.e. if logging #arena post daily summaries to #area-summary.
Describe alternatives you've considered
Doing this manually.

this already exists. you should be able to ask for a channel summary for any given date range. it attaches as a markdown.


is there any other ways to install extensions,it always 'end of central directory record signature not found'

VSCode Version:Version 1.4.0 (1.4.0)
OS Version:MacOS 10.11.6

Steps to Reproduce:
some extensions like  Debugger for Chrome always 'end of central directory record signature not found'.
but some small extensions are ok.

Are you behind a proxy?


Publish 08/05/2022 3:30 PM PT

Docs Build status updates of commit fd9e8dc:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/Set-CsPrivacyConfiguration.md
:white_check_mark:Succeeded
View (skype-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Fix couchjs utf8 conversions

Overview
This fixes UTF-8 conversions in the SpiderMonkey 60 implementation
Testing recommendations
I should add tests
Related Issues or Pull Requests
#2756
Checklist

[x] Code is written and works correctly
[x] Changes are covered by tests
[N/A] Any new configurable parameters are documented in rel/overlay/etc/default.ini
[N/A] A PR for documentation changes has been made in https://github.com/apache/couchdb-documentation

thanks @davisp
I saw below error in https://ci-couchdb.apache.org/blue/organizations/jenkins/jenkins-cm1%2FPullRequests/detail/PR-2786/3/pipeline
[2020-04-14T22:40:43.754Z] test/javascript/tests/invalid_docids.js                        ported to elixir

[2020-04-14T22:40:44.105Z] test/javascript/tests/jsonp.js                                 double free or corruption (out)

looks that we expected test/javascript/tests/jsonp.js                                 ported to elixir.  Let me re-trigger CI.

SM sure has come a long way since 1.8.5! I'm really happy to see these improvements in our code, and suspect they will pay off in the long term.

As discussed on IRC, I'm going to squash and merge this, then port my changes over to my #2788 PR, which needs one final thoughtful review due to the Realm vs. Container change in SM68.
Once both have landed we'll backport this one to 3.0.x, and both to 3.x.


Develop/announcement

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


feat: wire-up rfox staking

Description
This PR implements RFOX staking e2e.

Wallet/custom RUNE address with newly added bech32 validateAddress in THOR adapter
balance and fee asset balance validation, using react-hook-form. <TradeAmountInput /> has been touched in a non-breaking manner to now consume a form context if present with useFormContext or have a dummy useFormContext otherwise. We actually declare the form context up top in RFOX's <StakeInput /> and do anything with said consumed form context in <TradeAmountInput /> meaning this isn't a user-facing change despite the seemingly scary diff there
Handles approval needed/allowance Tx firing
Handles signing and broadcasting the Tx, including EIP1559 support
Displays approval/estimate fees programmatically
Displays share of pool
Handles loading states gracefully
Adds some market-data patching for missing FOX on Arb market data
Adds some generatedAssetData patching for missing FOX on arb asset
Adds FOX on arb and RFOX contract address + RFOX ABI constants (to be updated with latest once @0xean's https://github.com/shapeshift/rFOX/pull/43 goes in and v2 is deployed)
Reintroduces wagmi for QoL (no need to reinvent the wheel when reading data with our own react-query hooks when battle-tested ones exist)
Bumps viem from v1 -> v2 to work nicely with wagmi v2, and tackles all type errors and breaking changes (i.e function and arg name changes)

TODO:
- [x] tackle comments in this guy https://github.com/shapeshift/web/blob/7f85132b0f6b73cd77d8078ec060ebe5ae17da63/src/components/MultiHopTrade/components/TradeAmountInput.tsx
- [x] regression test added `useFormContext` and related changes in `<TradeAmountInput />` don't cause in regressions in current consumers
- [x] market patch FOX on Arb market data
- [x] approval fee instead of gas fee at input time when required
- [x] find a solution for `generatedAssetData.json` madness
- [x] share of pool?
- [x] Scrutinize react-queries that live in a wrong place currently (i.e lending)/should be generalized here, this is a bit messy on the query side and not really leveraging our current react-queries reusable queries for some
  - [x] 'estimateFees' (and consume the abstracted version in lending too after ensuring the implementation is line-per-line the exact same)
  - [x]  yeah no, we need the current mutation for proper loading state after click ~~send Tx mutation - probably not a now thing though it looks like we don't need a mutation at all here since we're not doing anything complex that requires a mutation - just move the logic to `handleStake` itself~~
- [x] Contract ABI and consumption
- [x] cooldownPeriod query
- [x] input
  - [x] estimate gas when approval *not* needed
  - [x] balance checks
  - [x] balance + fees checks as additional validate method
- [x] confirm
  - [x] approval step when required
  - [x] Tx broadcast
- [x] status
- [x] Record a final commented jam before opening this commenting on every row and ensuring data is there and things are happy re: balance checks, approval, spamming the delete key and re-inputting ensuring no race conditions etc. Go with the full flow e2e, including custom receive addy and its RUNE bech32 validation

Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[x] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)

closes https://github.com/shapeshift/web/issues/6737
Risk

High Risk PRs Require 2 approvals

Low/medium

What protocols, transaction types or contract interactions might be affected by this PR?

Testing

RFOX flow is happy e2e, including

Approval needed (approval step is triggered and approval Tx is happy)
Not enough fee for gas
Not enough FOX balance for entered amount
Manual RUNE address (try with an invalid address too and ensure you cannot continue), as well as account RUNE addies

Do a quick regression test of inputs in THOR LP, swapper and lending. No need to test these end-to-end, just ensure that you can still type amounts there without inputs being rugged

Engineering

☝🏽

Operations

☝🏽

Screenshots (if applicable)
https://jam.dev/c/ef9c0848-d978-459e-b209-5b57c4b1257f

❌ Fiat amounts are sad, but only when connected to an account with no FOX on Arbitrum:
rFOX-fiat-sad.mp4

Nice find. Looking closely, we can see that the opposite fiat value is also missing when inputting crypto. The issue here is we needed to hydrate FOX on Arbitrum market data. Mainnet FOX market-data would conventionally be hydrated across the app regardless of whether or not the user has balance (many many consumers) and isn't an issue, but FOX on Arbitrum isn't.
Fixed in b5b8d3d643 - tangential, but also passed the cryptoAmount in to <TradeAssetInput /> too for sanity in cdf3dfe94b, and while at it, added missing prefix for crypto as opposite currency when isFiat in <TradeAmountInput />
https://jam.dev/c/c57272f9-9ddb-4c33-bac3-8d50ceebd751

❌ Share of pool looks off in both the quot and the confirm screens:

There are two things off here:

the whole share of pool thing isn't very clear and
derp, this is an actual bug, forgot to cherry-pick math fixes from the unstaking PR, consuming stakingInfo[2], i.e the staking balance, vs. the wrong hollistic balanceOf, which includes pending unstaking too.

as for 1. tl;dr, we've been back and forth with this one with beard many times, and this isn't super clear either for engineering nor users. Is it your current share of pool? Is it the share of pool for the exact amount you're staking, but not taking into account your currently staked amount? Is it the new share of pool after you stake said amount?
The answer is the latter, but that's not super obvious at all UX-wise. We've agreed to do a follow-up to use the same <DynamicComponent /> as lending, which will show both before and after values in the spirit of clarity.
Fixed in bbacc30eb6:

Current contract balance: 123 FOX

Current user staking balance: 10.6875 FOX i.e  (10.6875 / 123) = 8.68902439 % of the pool

Staking 0 - no change of pool share

Staking a fraction of FOX - no visible change of pool share given the toFixed(2) and rounding for percentage, but allows us to confirm confirm is happy

Staking 100 FOX - i.e new staking balance = 110.6875. New share of pool = (110.6875 / (123 + 100)) = 49.635650224 %

❓ I'm not sure I understand this, is it 1 hour or 28 days?

8196a79ba4

❓ Approval does not show a transaction ID, and is a little jumpy (could use some loading states on the button and on the gas estimate):
rFOX-approval.mp4

Toast added in 4f537d519d https://jam.dev/c/bcf00f41-c36a-416b-bc35-cf20cb53cf7a
Jumpy states tackled in 1e141542c2 https://jam.dev/c/bcf00f41-c36a-416b-bc35-cf20cb53cf7a
Paranoia jam retest of staking flow without approval required https://jam.dev/c/604abc97-a874-4eba-aa09-535c701d7938

Still a few small things to do as follow-ups, which I'll outline below, but let's get this monster in 🙏

[ ]  Approval gas estimate changes after confirming quote:

changing-approval-gas.mp4

[ ]  Approval fee fiat amount spans two lines:

Nice catch @0xApotheosis - tackled in https://github.com/shapeshift/web/pull/6989 as a follow-up!


Notification Problem using SMTP

Hey all, I have a little problem with setting up the Email Notifications:
I am running Ajenti and Ajenti - V on my server. Setup a Mailserver with exim4. The Mailserver is running well with different clients.
now i wanted Traccar sending email notifications over this Mail server.
<EMAIL_ADDRESS>Server: domain.de
port: 25
Security: None
Auth: Yes
User<EMAIL_ADDRESS>pass: pass
<EMAIL_ADDRESS>is a working email adress on the mailserver. I can sent and recive emails with it.
but when clicking test i get:
500 Server Error The call failed on the server; see server log for details
INFO   | jvm 1    | 2015/11/29 19:50:35 | javax.mail.AuthenticationFailedException: 435 Unable to authenticate at present

AFAIK the current version of traccar does not support email notifications. Thus, I guess you are talking about my web UI mod. This issue tracker is related to a different project. Please don't post anything about my mod on this tracker, use the it's own tracker instead: https://github.com/vitalidze/traccar-web/issues
Regarding your issue I think you should make sure whether it is possible to send emails from your server where traccar is installed via some different smtp client (like sendmail). Then I think you should also check your smtp server logs.

Thanks for your answer. Fixed my problem. It was a ttls error.
Removed the certs from the exim4, restarted, added the certs again, restart and voilà.. It's working.
Just for the people who have the same problem.


Time zone functionality isn't doing any conversions

I tried to use https://www.meetingbrew.com to schedule a weekly event across time zones, but it's not doing any time zone conversions. I have someone in US Central time who entered 10:30-1:00, which should display as 8:30-11:00 for me in Pacific time, but I see 10:30-1:00. Same for the Eastern time person who entered noon-midnight, I see noon-midnight when I should see 9am-9pm. For both me and them, when we change the time zone from the drop down at the top of the page nothing changes.

The timezone select should default to your current timezone. Any availability entered in that timezone should be automatically adjusted for other timezones. Is it possible you could provide a video of your issue/any other information about your conversion problems?
Here is an example of the timezone conversion working properly in the current version of the app:
https://github.com/csaye/meetingbrew/assets/27871609/94ec9190-9de8-45b2-b4a2-f0fa915b64fd


Implement Lazy Listener Functions #34

Summary
This pull request adds "Lazy Listener Functions" to Bolt for Python. Please refer to #34 for details.
Category (place an x in each of the [ ])

[x] slack_bolt.App and/or its core components
[x] slack_bolt.async_app.AsyncApp and/or its core components
[x] Adapters in slack_bolt.adapter

Requirements (place an x in each [ ])

[x] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've run ./scripts/run_tests.sh after making the changes.

I'll be merging this within a few days (before merging this, I will add more unit tests but don't have anything further to add in the main code). Let me know if you have any comments or feedback by then.


[Hornbunny] New Video Format Not supported

[X] I've verified and I assure that I'm running youtube-dl 2016.10.19
Before submitting an issue make sure you have:

[X] At least skimmed through README and most notably FAQ and BUGS sections
[X] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[X] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add -v flag to your command line you run youtube-dl with, copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
PS C:\mpv> .\youtube-dl.exe --verbose http://hornbunny.com/videos/panty-slut-jerk-off-instruction-5227.html
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['--verbose', 'http://hornbunny.com/videos/panty-slut-jerk-off-instruction-5227.html']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2016.10.19
[debug] Python version 3.4.4 - Windows-10-10.0.14393
[debug] exe versions: none
[debug] Proxy map: {}
[HornBunny] 5227: Downloading initial webpage
ERROR: Unable to extract title; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest v
ersion; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete outp
ut.
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\build\youtube_dl\YoutubeDL.py", line 694,
in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\build\youtube_dl\extractor\common.py", lin
e 356, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\build\youtube_dl\extractor\hornbunny.py",
line 34, in _real_extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\build\youtube_dl\extractor\common.py", lin
e 668, in _html_search_regex
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\build\youtube_dl\extractor\common.py", lin
e 659, in _search_regex
youtube_dl.utils.RegexNotFoundError: Unable to extract title; please report this issue on https://yt-dl.org/bug . Make s
ure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag
 and include its complete output.
<end of log>

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: http://hornbunny.com/videos/panty-slut-jerk-off-instruction-5227.html
Note: this is the same video as used in the current code

Description of your issue, suggested solution and other information
"A friend of mine" noticed that the Hornbunny functionality broke when Hornbunny updated their website. Could you guys fix it for 'my friend'

Thanks for the report. Hornbunny will be fixed in the next version.


question about open contours

if I make a contour contour = RContour() , and append points with appendPoint and then use appendContour to add that contour to a glyph, the contour is closed. Is there a way to add points to a contour and keep it open? apologies in advance if there's a better place to ask this kind of question :)

I should mention I did try setting counter.open before adding the points but it looked like it was read-only

I read here that the first point in an open contour needs to be a move, but oddly if I try to add a move first with appendPoint I get this error: fontTools.ufoLib.errors.GlifLibError: move occurs after a point has already been added to the contour.

oh, and just like that I noticed my own index error. I'll see myself (and this issue) to the door!


New version: ProbabilityBoundsAnalysis v0.1.2

Registering package: ProbabilityBoundsAnalysis
Repository: https://github.com/AnderGray/ProbabilityBoundsAnalysis.jl
Created by: @AnderGray
Version: v0.1.2
Commit: f929d3490522b206f26c82be339f73ca93d31f17
Reviewed by: @AnderGray
Reference: https://github.com/AnderGray/ProbabilityBoundsAnalysis.jl/commit/f929d3490522b206f26c82be339f73ca93d31f17#commitcomment-39133683

Replaced by #14650


CHG MUI Decide what can be moved out of pages.

We have lots of lingering components that repeat themselves lets make a list of what we can turn into some shared components while we are moving over to MUI V5

Basically figure out anything we can turn into a base component.


Add API for post-processing a character in multimode

Similar to the retainer's post-processing API, this introduces character post-processing (triggered before logging out in multi-mode).
Tested with the following changes to my plugin: https://git.carvel.li/liza/ARDiscard/commit/36c52f433b7f0d36f40ffc97c9ec90250bc6527e

Thank you!


Desktop version doesn't display new Civ builds

Desktop version filter:

Mobile displays:

Abbasid Dynasty
Ayyubids
Byzantines
[etc]

Oops, web caching tricket me. Sorry.


Using colon (:) in Settings section setting raise error

As of the documentation

All setting names can optionally include a colon at the end, for example Documentation:.
Having a robot suite file as

*** Settings ***
Documentation:    Here we have documentation for this suite.
...               Documentation is often quite long.
...
...               It can also contain multiple paragraphs.
Resource:         ${execDir}/CommonResource.resource
Force Tags:       MyTag
Library:          myLibarary

and executing
python -m robot .\Test.robot

rais the following errors:
[ ERROR ] Error in file '<...>\Test.robot' on line 2: Non-existing setting 'Documentation:'. Did you mean:
    Documentation
[ ERROR ] Error in file '<...>\Test.robot' on line 6: Non-existing setting 'Resource:'. Did you mean:
    Resource
[ ERROR ] Error in file '<...>\Test.robot' on line 7: Non-existing setting 'Force Tags:'. Did you mean:
    Force Tags
[ ERROR ] Error in file '<...>\Test.robot' on line 8: Non-existing setting 'Library:'. Did you mean:
    Library

This also affects testdoc command so that, for example, the suites documentation is not included in html.
Version-Infos:
Robotframework: 4.0.1 and 4.0.3
OS: Windows 10 Version 20H2 (Build 19042.1023)
Python: 3.9.4

I can reproduce the bug and it seems it was introduced already in RF 3.2 that was released in April 2020. Most likely it was caused by the parser rewrite what also affected all settings. Surprising we didn't have any tests that would have caught it. Even more surprising that nobody has noticed or at least reported it earlier.
Because there's a simple workaround to use settings without colons, and because nobody has reported this in over a year, I don't consider this severe enough to warrant another RF 4.0.x bug fix release. This could easily be fixed in RF 4.1, but I'm not certain is that a good idea. Based on nobody reporting this earlier, this functionality doesn't seem to be too widely used and we could consider it removed and just update documentation instead. Did you @mathze encounter this problem when upgrading RF or did you just spot the documentation explaining this functionality and decided to test it?

@pekkaklarck I agree to the 'unused' part 😄
How I detected it was, by writing a Parser for a IDE plugin. So more by accident 😋 I my self also don't used the colon.

Sounds like we can considering this feature gone. I'll update the title and leave this open for a while to see does anyone complain. If not, we'll just update the docs in RF 4.1.


confusing result after running alphafold-multimer

I have run alphafold-multimer for several heterodimers, but everytime I got the confusing result .
As shown in the picture, the distance between the two subunits are so far. Does this mean they cannot be heterodimer?

Looks like they don't interact. However, just because two chains are in contact in the prediction doesnt mean that it is accurate. You need to look at the ranking confidence / iptm scores to say if they interact or not.

thanks for you reply!


chore: check that all text files only contain expected ASCII chars

What is the problem with non-ascii characters?

We had a problem recently (admittedly in another repo) where weird unicode characters had snuck in where they were unwanted: https://github.com/resin-io-modules/mountutils/pull/20
@jviotti suggested I knock up a batch script to catch them.

There is no technical problem, but they look weird in comments.

P.S. I forgot to mention at the time... I started out using grep in this script, but when doing comprehensive tests I found that there's some non-ASCII byte ranges that grep can't even detect, and other byte-ranges that actually cause grep to crash with a segmentation fault. I guess it shouldn't be too surprising that a tool designed for working on text files, isn't ideally suited to detecting binary (non-ASCII) byte values.
Hence why I switched to using perl instead...
@jviotti I'm beginning to wonder if the Prerequisites listed in docs/RUNNING-LOCALLY.md ought to be divided into separate lists of prerequisites needed to run Etcher, prerequisites needed to build Etcher, prerequisites needed to package Etcher, prerequisites needed to unit-test Etcher (including linting), prerequisites needed to sanity-check Etcher (primarily only done by the CI servers), prerequisites needed to publish Etcher, etc. etc.
Currently docs/RUNNING-LOCALLY.md lists Asar which I think is only needed to package Etcher, and Codespell which I think is only needed to lint Etcher? And it doesn't list perl or git needed to sanity-check Etcher, or AWS CLI needed to publish Etcher.

That's spot on. Lets update that document that with the latest additions, and separate them between CI, development, release, etc.

Also, what about having shell scripts that initialise your environment for Etcher development? They can detect the OS you're running, and whether you have apt-get, pip, brew, etc, and attempt to pull the necessary dependencies using the tools it finds on the system.


Configure app memory & instances

Enable configuring the CF memory and instances used by the Kibana dashboard.
push-kibana.app_memory:
   description: "The Kibana log dashboard app memory quota"
   default: 256M
push-kibana.app_instances:
   description: "The Kibana log dashboard app number of instances"
   default: 2

@gerhard - Great idea; thanks!


Rebuild project structure

Current coverage is 41.79%

Merging #30 into develop will increase coverage by +24.89% as of 9f76acf

@@            develop     #30   diff @@
=======================================
  Files            14       7     -7
  Stmts           497     189   -308
  Branches          0       0
  Methods           0       0
=======================================
- Hit              84      79     -5
  Partial           0       0
+ Missed          413     110   -303

Review entire Coverage Diff as of 9f76acf

Powered by Codecov. Updated on successful CI builds.


Resume download for large websites

What is the best way to resume a download of a large website? I see there is a future feature planned to tackle this, but what is the current solution? Thanks.

There is no current "solution". One hacky way is to set --retries with a high enough value like 5 and just send the job to the background usually CTRL+Z. You can then resume with fg.
The downside is that you can't reboot

Yeah, my concern is if my internet drops out. I suspect the download will take about a 3 days. The ability to resume download would be great - I look forward to that release. Cheers


[ISSUE] Enable admin forced password reset via SCIM 2.0 available by default

Steps to reproduce,

Follow the steps in https://is.docs.wso2.com/en/latest/learn/forced-password-reset to enable  Enable Password Reset via OTP option.
Add 'forcePasswordReset' as a SCIM 2 extension.

Use the following SCIM 2.0  patch request.

POST https://<host>:<port>/scim2/Users/<users-scim-id>

{"schemas":
["urn:ietf:params:scim:api:messages:2.0:PatchOp","urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
 "Operations": [
 	{"op": "add",
 	"value": {"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {"forcePasswordReset": true}
}}]
}

If we add forcePasswordReset to SCIM 2 extensions by default, will be straightforward.

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Fails to build on Gentoo due to libappindicator-sys v0.3.0 build failure

Relevant part:
   Compiling libappindicator-sys v0.3.0
error: failed to run custom build command for `libappindicator-sys v0.3.0`
process didn't exit successfully: `/home/zetok/git/rust/tray/target/debug/build/libappindicator-sys-4dae8ec67c91a56c/build-script-build` (exit code: 101)
--- stdout
cargo:rustc-link-lib=appindicator3

--- stderr
thread 'main' panicked at 'libappindicator3 library not found!', /home/zetok/.cargo/registry/src/github.com-1ecc6299db9ec823/libappindicator-sys-0.3.0/build.rs:37:27
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

warning: build failed, waiting for other jobs to finish...
error: build failed

The same error happens regardless of whether libappindicator is installed or not.

Also, I'd like to say that depending on libappindicator for tray support is likely a bad idea if this library is supposed to work with all DE/WM combinations since libappindicator doesn't work in all of them (I'm assuming here that libappindicator is the only tray backend used by systray crate). The only "working" solution is to provide "all" tray backends; here's a fairly comprehensive info on the issue: https://github.com/qTox/qTox/wiki/Tray-icon

I installed libappindicator-gtk3 and it fixed the error on my case.

libappindicator has been updated, so this should work now. Please refile if this becomes an issue again.

I had to install clang (I'm using Arch Linux), because I was getting this:
cargo:warning=couldn't execute `llvm-config --prefix` (error: No such file or directory (os error 2))
cargo:warning=set the LLVM_CONFIG_PATH environment variable to a valid `llvm-config` executable

--- stderr
thread 'main' panicked at 'Unable to find libclang: "couldn\'t find any valid shared libraries matching: [\'libclang.so\', \'libclang-*.so\', \'libclang.so.*\'], set the `LIBCLANG_PATH` environment variable to a path where one of these files can be found (invalid: [])"', src/libcore/result.rs:1188:5

I don't know if this is documented.


TLS 1.3

The script worked very well for me on centOS 7, but is there a way to get openvpn 2.4.9 (wich is installed by the scipt with TLS 1.3 (openssl 1.1.1)
Thanks!

TLS 1.3 support starts from Centos 8, I would recommend to upgrade the OS instead of manually building and updating openvpn and openssl.

Tanks for your answer!
I had openvpn on cent os 8 with tls 1.3 but I would like to do the 2nd factor with linotp (www.linotp.org http://www.linotp.org ) which has no way for installing on cent os 8 …. So I went back to cent os 7… ?
Von: randomshell<EMAIL_ADDRESS>Gesendet: Dienstag, 13. Oktober 2020 21:22
An: angristan/openvpn-install<EMAIL_ADDRESS>Cc: LDByteron<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Betreff: Re: [angristan/openvpn-install] TLS 1.3 (#740)
TLS 1.3 support starts from Centos 8, I would recommend to upgrade the OS instead of manually building and updating openvpn and openssl.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/angristan/openvpn-install/issues/740#issuecomment-707956295 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AO3JW2P4AANVZWGZYYEXAV3SKSSFJANCNFSM4SK6PZNA . https://github.com/notifications/beacon/AO3JW2ITYJIKRWBL4RBCOZDSKSSFJA5CNFSM4SK6PZNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFIZI4RY.gif

Upon investigation, linotp is based on the old and not anymore in use python2.7. The incompatibility on Centos 8 comes from the fact that this version of the distro switched completely to python3.
You could compile the latest version of openvpn and the stable one of openssl to support TLS 1.3, but in the end linotp should switch to python3. You can try contacting them.
BTW I recommended not to compile manually at start to avoid the need of keeping openvpn and openssl up to date manually instead of relaying on the distro repository.


Remove warnings when reading in CSV files

In reproducing the 6/9/2021 estimate, this warning is being generated:
Warning message:
In read.table(file = file, header = header, sep = sep, quote = quote,  :
  incomplete final line found by readTableHeader on 'data-raw/FC_2021_06_09.csv'

This is caused by empty rows/column in the data file that once contained information. Deleting the empty rows/columns fixes the problem. The code automatically deletes these empty rows after reading in, but it is the read.csv that throws this warning. Just wrap a suppressWarnings() around it.

Closed in #131


[C++][HDFS] Can't get performance improve when increase the thread number of IO thread pool

Describe the enhancement requested
Hi, I've tested an ExecPlan and the read time is almost 80% of the total time(though I can't give out the exact read time, I've printed out the log in the HDFS read interface, and it shows read ended at almost 80% of total).
And here is my test results, it tells me the increase of ARROW_IO_THREADS doesn't help to improve performance.

total time: 322.502s（OMP_NUM_THREADS=10 ARROW_IO_THREADS=1）
total time: 321.271s（OMP_NUM_THREADS=10 ARROW_IO_THREADS=2）
total time: 325.166s（OMP_NUM_THREADS=10 ARROW_IO_THREADS=3）
when I read the code I found no matter how many IO thread Arrow used, it will only use one HDFS connection, I draw a thread model I learned from the code(pls point out if I'm wrong).

Also, I've checked the CPU usage when I run the tests, the CPU usage of the read threads is very low, about  15%--22% each. I guess the CPU rate can't increase is because of the output IO upper bound of one HDFS connection.（OMP_NUM_THREADS=10 ARROW_IO_THREADS=3）

here are some pieces of my code
	int main() {
		arrow::dataset::internal::Initialize();

		// default context will only use one thread
		ExecContext execContext;
		ExecContext exec_context(arrow::default_memory_pool(), ::arrow::internal::GetCpuThreadPool());

		auto&& resultPlan = ExecPlan::Make(&exec_context);
		if (!resultPlan.ok()) {
			WIND_ERR_LOG("Executor run task fail because of make exec plan failed. detail:{}", resultPlan.status().ToString());
			return wind::api::ActionResult{ErrorCode::ERR_COLUMN_ENGINE_INIT};
		}
		std::shared_ptr<ExecPlan> plan = std::move(resultPlan).ValueUnsafe();
		std::vector<Declaration> decls;
		auto actionNode = api::CreateDataFrame(task_.plan, dataFrameMap_, schemas_, *config_, outputPath, decls);

		Declaration::Sequence(decls).AddToPlan(plan.get());

		if (!plan->Validate().ok()) {
			WIND_ERR_LOG("Executor run task fail because of can't get validate exec plan. detail:{}", plan->ToString());
			return wind::api::ActionResult{ErrorCode::ERR_COLUMN_ENGINE_CREATE_EXEC_PLAN};
		}

		plan->StartProducing();
		auto future = plan->finished();

		future.Wait();
	}

	std::shared_ptr<ds::Dataset> MakeDataSet() {
		wind::column::MakeFileSystem(schema_.file.path);

		auto format = wind::column::MakeFileFormat(schema_.file.option.csvOption.delimiters[0]);

		auto schema = MakeSchemaAndUpdateFileFormat(format);
		if (!schema) {
			WIND_ERR_LOG("MakeDataSet fail, detail: make schema failed.");
			return nullptr;
		}

		auto fs = wind::column::GetFileSystem();
		if (!fs) {
			WIND_ERR_LOG("MakeDataSet fail, detail: make file system failed.");
			return nullptr;
		}

		auto&& dataset = ds::FileSystemDataset::Make(schema, cp::literal(true), format, fs, MakeFileFragments(format, fs, schema));
		if (!dataset.ok()) {
			WIND_ERR_LOG("MakeDataSet fail, detail:{}", dataset.status().ToString());
			return nullptr;
		}

		return dataset.ValueUnsafe();
	}

	std::shared_ptr<ds::ScanOptions> MakeScanOptions(const wind::thrift::ReadLineNode& node,
                                                               const std::shared_ptr<ds::Dataset>& ds) {
		auto options = std::make_shared<ds::ScanOptions>();
		options->use_threads = true;
		arrow::io::IOContext io_context(arrow::default_memory_pool(), ::arrow::internal::GetCpuThreadPool());
		options->io_context = io_context;

		std::vector<std::string> columns;
		for (const auto& column : node.columns) {
			columns.push_back(schema_.fields[column].name);
		}

		// The CsvFileFragment wouldn't benefit from this as much, but
		// can still benefit from skipping conversion of unneeded columns.
		auto resultProject = ds::ProjectionDescr::FromNames(std::move(columns), *(ds->schema()));
		if (!resultProject.ok()) {
			// in this case, convert all columns in table
			options->projection = cp::project({}, {});
			WIND_ERR_LOG("get projectionDescr fail, detail:{}", resultProject.status().ToString());
		} else {
			auto project = std::move(resultProject).ValueUnsafe();
			options->projection = std::move(project.expression);
		}

		if (!node.__isset.filter) return options;

		options->filter = MakeScanFilter(node.filter);
		return options;
	}

The ExecPlan for short of my test is like
:ConsumingSinkNode{}
  :GroupByNode{keys=["starttime", "cus_area_id", "rat"], aggregates=[
  	hash_sum(intra_rau_req_times),
	....
  ]}
    :ProjectNode{projection=["starttime": get_time(starttime, 86400), cus_area_id, rat...]}
      :FilterNode{filter=((get_time(starttime, 86400) >=<PHONE_NUMBER>) and (get_time(starttime, 86400) <<PHONE_NUMBER>))}
        :SourceNode{}

In conclusion, my questions are these(Arrow version: 10.0.0):

Is that add multi-connections to HDFS will help?
Am I wrong with using Arrow API so that I can't get improvement when I increase the IO thread pool num?
How can I get the performance improvement of reading CSV from HDFS in this case?

Any hint is welcome! Thx in advance!
Component(s)
C++

From a glance I don't see anything obvious that would limit the concurrency of HDFS.  It appears the HDFS filesystem will launch a new thread task for each read request.  Do you have multiple CSV files or just one CSV file?
Unfortunately, I do not have an HDFS test environment locally so it is hard for me to test / profile HDFS.
You shouldn't need to do anything to get concurrent I/O.

Do you have multiple CSV files or just one CSV file? --
Yes. My test table has 196 files, even though I've set the ARROW_IO_THREADS to 200, but it just runs with 5 reading threads(I print out the log inside hdfs read and count the thread number).

Unfortunately, I do not have an HDFS test environment locally so it is hard for me to test / profile HDFS. --
It's ok. I have the HDFS env, if you have ideas maybe I can do the test.
I just want to figure out WHY can't I get the performance improvement by increasing the io thread and what should I do(what parameters should I change in code).
You shouldn't need to do anything to get concurrent I/O. --
Yep, I know it should be. But right now the ARROW_IO_THREADS  and OMP_NUM_THREADS just seem didn't work.
Thank you for replying.

Ah, that number 5 jogged my memory.  Perhaps you need to increase fragment_readahead in ScanOptions?

thx~~~ I will test it right now.
Btw what about batch_size and batch_readahead, do they affect the thread number?
Also, Do you think the HDFS connection number will affect the reading performance? I mean that each reading thread owns its HDFS connection will read faster than the case all reading threads share one HDFS connection.

Ah, that number 5 jogged my memory. Perhaps you need to increase fragment_readahead in ScanOptions?

I've changed fragment_readahead to 10(ARROW_IO_THREADS=40) and 40(ARROW_IO_THREADS=200), but it seems nothing changed, still 5 reading threads. And I am sure I've changed the lib after recompiling. So Am I wrong about anything?

No, I don't think you are wrong.  You should be seeing more parallelism.  I am not sure when I will get a chance to fully investigate this however.  I don't see anything in here that would lead threads to share HDFS connections but I don't know anything about how HDFS works.


[Feature] Support deploying Appsmith on a sub-path instead of at /

Currently, the index.html page of Appsmith requests for resources starting at /, like /static/main.js etc. This makes it hard to have an Appsmith instance deployed at a non-root path in a domain. Like http://example.com/appsmith or something.
This will be useful in setups where people don't have access to setup an A record for a subdomain, but do have access setup multiple applications over paths by configuring their routing.
 Front conversations

@mohanarpit any idea how easy / hard this is?

As a solution, we'll have to:

Include the host URL as an environment parameter. This way the application understands what the root URL needs to be.
Wherever we are invoking these URLs, we need to append the root URL.
During installation, this needs to be configured in the Nginx configuration as well. Else Nginx routing will fail.

Honestly, I'm not sure how extensive a change this will be across the board. Need to investigate the source code before being able to commit a timeline here.

I try to deploy Appsmith with subdirectory like example.com/admin but it didn't work. According to my network tab. Appsmith try to get example.com/static/js/...chuck.js that doesn't exist. (It should get from example.com/admin/static/js/...chuck.js).
I found that Appsmith Client currently doesn't support subdirectory hosting, according to Appsmith Client's AppRouter
Since this application use create-react-app. This article would help you for supporting subdirectory hosting. (I'm not sure it'll work since I didn't try it yet.)

Did not test dockerized output and production output.
But in the development environment, I am able to achieve it by modifying Nginx reverse proxy files and some level of edits in react.

A example for this is grafana . We have achieved it while building the app, we are able to run in production too in docker. But the catch is here again we need to rebuild if the sub-path is different.

@Nikhil-Nandagopal @manikumarnune123 Hello everyone, is there any update on this issue?

I've the same use case and I have tried implementing this(for /appsmith) but in the end it breaks the ui editor(drag/drop and connect data with widget).
Steps taken:

app/client/src/entities/URLRedirect/SlugURLRedirect.ts:

let { pathname } = window.location;
if (pathname.startsWith("/appsmith")) {
// Use the replace method with a regular expression to match the first occurrence of "/appsmith" at the beginning
pathname = pathname.replace(/^/appsmith/, "");
}

Dockerfile:

Modify the content of index.html to replace /pageService.js with /appsmith/pageService.js
RUN sed -i 's//pageService.js//appsmith/pageService.js/g' /opt/appsmith/editor/index.html

app/client/src/constants/routes/baseRoutes.ts:

export const BASE_URL = "/appsmith";

app/client/src/utils/history.ts:

const history: History = createHistory({
basename: "/appsmith",
});

app/server/appsmith-server/src/main/java/com/appsmith/server/helpers/RedirectHelper.java:
public String buildApplicationUrl(Application application, HttpHeaders httpHeaders) {
String redirectUrl = RedirectHelper.DEFAULT_REDIRECT_URL;
if (application != null && application.getPages() != null && application.getPages().size() > 0) {
ApplicationPage applicationPage = application.getPages().get(0);
}
return fulfillRedirectUrl("/appsmith"+redirectUrl, httpHeaders);
}

public String buildSignupSuccessUrl(String redirectUrl, boolean enableFirstTimeUserExperience) {
String url = "/appsmith"+SIGNUP_SUCCESS_URL + "?redirectUrl=" + URLEncoder.encode(redirectUrl, StandardCharsets.UTF_8);
if (enableFirstTimeUserExperience) {
url += "&" + FIRST_TIME_USER_EXPERIENCE_PARAM + "=true";
}
System.out.println("Build signup success url: "+url);
return url;
}

Hey @asingh072318, appreciate your interest here in fixing this but solving for this is quite a complex change. There's several smaller pieces of functionality in both the client and backend that'll need to be reviewed and adjusted for this. In that context, this isn't something that we believe will be impactful for the product right now.
Thank you. 🙏

Hey @sharat87, i get why you think that not will be good for the product at this time, to be honest this fix will be very practical for big corp or air gapped networks,  where very problematic or even not available creating new dns entry or whole server.

Would greatly appreciate this feature

@Dofamin it's interesting that you mention it would be practical for large orgs. From our analysis, hosting on a subpath exposes the session cookies of all applications hosted under that path and so this could become a security risk inside large organizations. If you are part of a large organization that would benefit from this feature, I'd love to chat and understand how your team views this type of deployment. https://calendly.com/appsmith-nikhil/30min

@Nikhil-Nandagopal sounds good

wanna this feat +1

@Bleoo @willmorgan you can still deploy on a subdomain. We don't recommend deployin on a subpath because it shares cookies with all applications on that subpath and that can be a potential security vulnerability

Sure, but I'm happy to accept the risk of doing so as the person in control of deploying my infrastructure, given Appsmith would be the only application on my domain that actually sets cookies or serves webpages.
You can also encrypt the cookie contents on your side, use random cookie names, and use HTTP-only secure cookies by prefixing them with __Secure or __Host.
Conversely, Appsmith could still access cookies from my root domain if I deployed it at cms.website.app.

For the ones that knows the risk, that's actually why we want appsmith to be shared in a subpath. With this, the user wouldn't need to do another OIDC login to access appsmith and other apps we deploy on the same url, integrating appsmith in our apps environment


Attempt to index nil with Release

Hey, I know this is my third issue and I apologize for that, really but I have another problem.
I get the error attempt to index nil with release for some reason, sometimes, any idea why?
	local ProfileKey = "Player_"..UserId
	local profile = ProfileStore:LoadProfileAsync(ProfileKey, "ForceLoad")
	profile:Release()
	return profile
end

You need to check that the profile is returned or not, if it's not, then it wasn't able to load properly.

You need to check that the profile is returned or not, if it's not, then it wasn't able to load properly.

How can I check that?

@MegamiShin
if profile == nil then


11818: only accept alphanumeric form names

I'm sure there are more broken tests with this, so going to push and let the CI run to see where it fails.

FYI looks like a lot of spec failures re: ActiveRecord::RecordInvalid: Validation failed: Name: is invalid


const/let variables with require() initializer are not correctly block-scoped

TypeScript Version: 4.2.0-dev.20201126

Search Terms: TS2300
Code
// compiled in JS mode. Works fine when compiled as TS
switch(something) {
    case "a": {
        const x = require("fs"); // TS2300: Duplicate identifier 'x'
        console.log(x);
        break;
    }
    case "b": {
        const x = require("fs"); // TS2300: Duplicate identifier 'x'
        console.log(x);
        break;
    }
    case "c": {
        const x = 123; // No error (only happens with require() as initializer)
        console.log(x);
        break;
    }
}
x.readFileSync("x"); // should be error

Expected behavior:
No TS2300 error. const variables should be block-scoped.
Actual behavior:
const variables with require() initializer leak into outer scope. Looks like they are incorrectly function scoped.
Playground Link: Playground link
Related Issues:

That’s because in JS code, TypeScript treats
const x = require("foo");

as
import x = require("foo");

which gets transpiled to
var x = require("foo");

Thu culprit seems to be #39770. Unfortunately there was no mention of this change in the release notes and there are many related issues.

Unfortunately there was no mention of this change in the release notes

We didn't realize it was a break at the time -- our bad!

I surveyed Definitely Typed, our user tests and all the code in their node_modules to see how often this is used, and found that 5 projects used it outside of generated code or tests.
The total number of duplicated imports is quite small: 55 out of 71,000 non-toplevel require calls in aws-sdk, @babel/core, webassembly-feature and read-installed:

require json files in different functions, all with the same type
require different protocol handlers, all with the same type
some kind of delayed evaluation pattern
codegen repeated require calls for feature detection
conditionally require('graceful-fs') with a fallback to fs. I assume they must be treated as if they have the same type.

So:

this affects a small proportion of non-toplevel imports
most JS users don't have checkJS on, which would not report the error, but give the error semantics where the first require's type is used.
more than half of the duplicated requires gave [nearly] the same type to every require, which would make the error semantics [nearly] the same as correct semantics
block-scoping wouldn't give the correct semantics to the codegen examples, just silence the error.

I think the value of just silencing the error is pretty low since it only helps checkJS code bases, and we expect checkJS code bases to be on the way to using TS/ES imports anyway. Especially if the cost is making the 71,000 other non-toplevel require back into non-aliases.


Updating HERON and LOGOS submodules.

Pull Request Description
What issue does this change request address?
#1114
What are the significant changes in functionality due to this change request?
Updates the HERON and LOGOS submodules to be compatible with the updated libraries in RAVEN.

For Change Control Board: Change Request Review
The following review must be completed by an authorized member of the Change Control Board.

[ ] 1. Review all computer code.
[ ] 2. If any changes occur to the input syntax, there must be an accompanying change to the user manual and xsd schema. If the input syntax change deprecates existing input files, a conversion script needs to be added (see Conversion Scripts).
[ ] 3. Make sure the Python code and commenting standards are respected (camelBack, etc.) - See on the wiki for details.
[ ] 4. Automated Tests should pass, including run_tests, pylint, manual building and xsd tests. If there are changes to Simulation.py or JobHandler.py the qsub tests must pass.
[ ] 5. If significant functionality is added, there must  be tests added to check this. Tests should cover all possible options.  Multiple short tests are preferred over one large test. If new development on the internal JobHandler parallel system is performed, a cluster test must be added setting, in  XML block, the node <internalParallel> to True.
[ ] 6. If the change modifies or adds a requirement or a requirement based test case, the Change Control Board's Chair or designee also needs to approve the change.  The requirements and the requirements test shall be in sync.
[ ] 7. The merge request must reference an issue.  If the issue is closed, the issue close checklist shall be done.
[ ] 8. If an analytic test is changed/added is the the analytic documentation updated/added?
[ ] 9. If any test used as a basis for documentation examples (currently found in raven/tests/framework/user_guide and raven/docs/workshop) have been changed, the associated documentation must be reviewed and assured the text matches the example.

Job Test Ubuntu 18 PIP on 917277a : invalidated by @wangcj05

Job Test Fedora 31 on 917277a : invalidated by @joshua-cogliati-inl
checking that matplotlib update did not break this.

checklist is good, and tests are green. PR can be merged.


Add release workflows

Signed-off-by: Sayali Gaikawad<EMAIL_ADDRESS>Description
This change automates the release of opensearch-js on npmjs platform. Please see https://github.com/opensearch-project/opensearch-build/issues/1234 for more detail on how the end to end workdlow is expected to work.
TL;DR:
When a tag is pushed to this repository, it will generate a draft release. The draft release will trigger the jenkins job (see file diff for attached jenkins file) that publishes the client to npmjs. Once the release is successful, the draft release is published on github.
Issues Resolved
List any issues this PR will resolve, e.g. Closes [...].
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Converting to draft till https://github.com/opensearch-project/opensearch-build-libraries/pull/22 gets merged.
Thanks!

@dblock @nhtruong @harshavamsi @VachaShah Can you guys review this PR?
Thanks!

Let's also add a RELEASING.md that explains how to make a release and where to look for its implementation?


[Fatal] 导出失败：file name length exceeds maximum limit#

[Fatal] 导出失败：file name length exceeds maximum limit#
how to resolve?

感谢师傅反馈，下个版本会修复


Functionality to the change paginator description

Hello, great paginator plug in.
I just needed to change the default text of "Page 1 of 6" for exemple, to my local language, so i created the properties "page_text" and "of_text" inside the options config, so people can change these texts to their local language, the default i left as it was, so it doesnt change the previous behavior.

Hey, thanks for the contribution.
However, you have to update the component within src since dist contains the compiled code.