text:
cookie-backed session storage

Type of PR (feature, enhancement, bug fix, etc.)
Enhancement
Description
This PR restores support for cookie-backed session storage in SR. You can set cookie values in a Reflex action method, and they will be persisted the long way.
I had two major approaches I could choose. I initially chose the first path. We can evaluate the best option.

Store the session data as a JSON blob in Redis so that there is no payload sent to the client.
Use MessageVerifier to encode the session data, sent it to the client, client sends it back to the server as a parameter to the fetch call. This seems much more complex to me, given that Redis is a requirement of SR and caching must be enabled.

This PR is 90%ish done; I need help from you folks to figure out where in the codebase to to capture the session data, both before and after all of the callbacks have finished and the main method has finished executing. My intention is to only store and update the session data that changes during the course of the Reflex. More importantly, we don't want to send the update unless session data is changed.
Note that I have gated the update-cookies functions (even the route the engine adds) to applications that report using the CookieStore.
In the interim, I have created a Reflex action that proves the functionality works. You're supposed to use your imagination and picture the lines in the Reflex action below starting with "redis_key" and "Rails.cache" as happening in the background of the ultimate solution. :wink:
Rails.application.routes.draw do
  mount StimulusReflex::Engine => "/stimulus_reflex"
end

<button data-reflex="click->Runner#update_session">Session</button>
<%= session[:test] %>

def update_session
  redis_key = "stimulus_reflex:session:" + session.id.to_s
  session[:test] = 666
  Rails.cache.write redis_key, session.to_h.reject {|key| ["session_id", "_csrf_token"].include? key }.to_json
  morph :nothing
end

I'm really proud of this solution. I've never really modified an Engine on my own, before.
Why should this be added
A lot of people perceive cookie storage as a reasonable default and seem outraged when they can't use it.
Checklist

[x] My code follows the style guidelines of this project
[x] Checks (StandardRB & Prettier-Standard) are passing
[x] This is not a documentation update

We decided that cookie-based session storage is not going to be supported in StimulusReflex. Turbo Boost is going to have support for cookies, since that comes out-of-the-box, given that the default transport mechanism is HTTP. While architecting a way around it works, it isn't really desirable. Therefore we are going to close this pull request for now.

authors: leastbad marcoroth


text:
Fixes does function wrapping #244

In issue #244 types were not being propagated of the function being wrapped.
This changes that by adding the functools.wraps decorator.
Adds a unit test to test for two decorators playing nice together and verified that it's broken before and fixed afterwards.
Changes

modifies @does wrapper function to properly emulate the signature of the function it is replacing.

How I tested this

locally
unit test

Notes
Checklist

[x] PR has an informative and human-readable title (this will be pulled into the release notes)
[x] Changes are limited to a single goal (no scope creep)
[x] Code passed the pre-commit check & code is left cleaner/nicer than when first encountered.
[x] Any change in functionality is tested
[x] New functions are documented (with a description, list of inputs, and expected output)
[x] Placeholder code is flagged / future TODOs are captured in comments
[x] Project documentation has been updated if adding/changing functionality.

Closing in favor of #247 .

source: gharchive/pull-request

repo: stitchfix/hamilton

license_type: permissive

license_source: github-api


text:
Locking inner mutex in main loop is effectively single-thread operation

Hello. It seems like locking the inner mutex in the main_loop, how it’s currently done, will block all the worker threads except one, effectively only allowing for only a single thread to process tasks.

It's true that there is a single mutex all threads share, but note that they don't hold the mutex while running tasks.

Don't they? Maybe I'm missing something.
I was looking at
https://github.com/stjepang/blocking/blob/4651a353c2133c209ba84d62defafecadc0aa3cf/src/lib.rs#L203-L236
It looks like the lock is held on to from the beginning of the fn, and then relocked at line 218. But it's still being held for the whole time. It does allow other threads to take over via relocking, but it still looks like at most one thread can hold the lock at a time.
If it's something simple that I don't follow along, could you please explain what's the idea there?

Ah, I see, grow_pool takes the guard by-value.
Nvm!

source: gharchive/issue

authors: MOZGIII stjepang

repo: stjepang/blocking


text:
Error inflating XML

I keep getting this error on app start:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dejiapps.a4do/com.dejiapps.a4do.MainActivity}: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class com.github.stkent.amplify.prompt.DefaultLayoutPromptView
This is the layout I choose to put in my XML:
<com.github.stkent.amplify.prompt.DefaultLayoutPromptView
        android:id="@+id/prompt_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

I don't know what I could be doing wrong, any help will be appreciated.

Uh oh! When you see that InflateException, it's common for there to be a separate exception (the underlying cause) printed lower down in the stack trace. Could you please reply and copy in the entire stack trace from this crash? Thanks!

Wow, thanks for replying so soon. Here is the entire error message:
02-02 13:17:37.287 18136-18136/com.dejiapps.a4do E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.dejiapps.a4do, PID: 18136
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dejiapps.a4do/com.dejiapps.a4do.MainActivity}: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class com.github.stkent.amplify.prompt.DefaultLayoutPromptView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2680)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2741)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6176)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)
Caused by: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class com.github.stkent.amplify.prompt.DefaultLayoutPromptView
Caused by: android.view.InflateException: Binary XML file line #18: Error inflating class com.github.stkent.amplify.prompt.DefaultLayoutPromptView
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
at android.view.LayoutInflater.createView(LayoutInflater.java:645)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:288)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.dejiapps.a4do.MainActivity.onCreate(MainActivity.java:278)
at android.app.Activity.performCreate(Activity.java:6679)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2633)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2741)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6176)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)
Caused by: java.lang.IllegalStateException: You must call initSharedInstance before calling getSharedInstance.
at com.github.stkent.amplify.tracking.Amplify.getSharedInstance(Amplify.java:101)
at com.github.stkent.amplify.prompt.BasePromptView.(BasePromptView.java:117)
at com.github.stkent.amplify.prompt.DefaultLayoutPromptView.(DefaultLayoutPromptView.java:56)
at com.github.stkent.amplify.prompt.DefaultLayoutPromptView.(DefaultLayoutPromptView.java:48)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
at android.view.LayoutInflater.createView(LayoutInflater.java:645)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:288)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.dejiapps.a4do.MainActivity.onCreate(MainActivity.java:278)
at android.app.Activity.performCreate(Activity.java:6679)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2633)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2741)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6176)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)

Thanks for the full trace! It would seem that the prompt view is attempting to access the shared Amplify instance before that instance has been configured. Whereabouts in your app are you performing the Amplify initialization? It should look something like this:
public class ExampleApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        Amplify.initSharedInstance(this)
               .setFeedbackEmailAddress("someone@example.com")
               .applyAllDefaultRules();
    }

}

Its in a different class on its own, like in the test app.

@dejiapps r.e.

Its in a different class on its own, like in the test app.

Is that class set as the application class for your app? Please paste your entire application class and AndroidManifest here so we can check :)

No, I'm using Sugar ORM was set as the application class. I have set Amplify as the application class and it is working now. Thanks for the library and helping me figure the issue out.

Glad we figured it out! Let me know if you run into any other issues. Cheers!

authors: dejiapps stkent

repo: stkent/amplify


text:
fugit units

related issue: https://github.com/korken89/fugit/issues/25

I've rebased onto master since #172 was merged

Thank you for the work on this PR @burrbull ! I've rebased onto master again, and I'm going to mark it "ready for review" as I think the overall benefit of using fugit is clear.

authors: burrbull richardeoin


text:
[FT][Growth 1164] reduce gif quality

Issue #, if available:

GROWTH-1164
Added Support to reduce gif quality in SIH
Also added local compile support using docker
Description of changes:

Checklist

[x] :wave: I have added unit tests for all code changes.
[x] :wave: I have run the unit tests, and all unit tests have passed.
[ ] :warning: This pull request might incur a breaking change.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I would like for you to ensure that Product approves this change before it is deployed.

Yup done

repo: stocktwits/serverless-image-handler


text:
Update to rustfmt 0.9.0?

It's rarely a great time to change rustfmt versions, but 0.9 may be a local maximum. This blog post says 0.9 is likely to be the last stable update for the foreseeable future. And, 0.9 switched to the new RFC style in general, so while it obviously doesn't have everything that nightly rustfmt has, it's much closer than previous versions.
This bubbled up for me because I was working on other projects which happen to use 0.9 -- it's the current stable version -- and it's a minor hassle to switch rustfmt versions back and forth when moving between projects.
I'm willing to do the work, but I wanted to collect input here first.

I'm ok with making this change.
I used to update rustfmt regularly, but stopped when they moved development to the nightly branch. It was always my intention to pick it up again when the new version was more stable.
Now is a good time, I don't think there are any big outstanding branches we need to worry about.

BTW, this should be fairly simple to do:

Edit VERS in check-rustfmt.sh.
./check-rustfmt.sh --install
./format-all.sh
git commit -a

And it's now done. I also had to also edit a few places to break some long lines up.
Glancing through the changes, one change that pops out is changes from
  moderately_long_function_name(lots,
                                of,
                                args)

to
  moderately_long_function_name(
      lots,
      of,
      args
  )

which is nice.

authors: stoklund sunfishcode

repo: stoklund/cretonne

license_source: bigquery


text:
Add the create cluster set link in the policy set wizard

Relates:
https://issues.redhat.com/browse/ACM-2438

/approve

authors: KevinFCormier mprahl

repo: stolostron/console


text:
ACM-13743 - Export button tooltip for AcmTable

Regarding: ACM-13743
Before:

After:

/lgtm


text:
Add route agent healthcheck

Add route agent healthcheck

/cc @yboaron


text:
关于 硕/博士论文 参考文献 “出版地不详”

@phdthesis{曹蕾2009肺结节图像的分析与识别,
  title  = {肺结节图像的分析与识别},
  author = {曹蕾},
  year   = {2009},
  school = {南方医科大学}
}

显示为
曹蕾.肺结节图像的分析与识别[D]. [出版地不详]:南方医科大学, 2009.

查了下gbt7714规范，显示成 出版地不详，是符合规定的，但就是觉得有点不对劲，这个不改的话，交图书馆或毕业后会出问题吗？
如果要查到出版地，要按照什么格式补上去呢，先谢谢各位大佬了~~

address = {<出版地>},

A phdthesis is like a mastersthesis.
Required: author, title, school, year
Optional: type, address, month, note
@phdthesis{曹蕾2009肺结节图像的分析与识别,
  title   = {肺结节图像的分析与识别},
  author  = {曹蕾},
  year    = {2009},
  school  = {南方医科大学},
  address = {广东},
  doi     = {10.7666/d.y1554072},
}

哦哦，我把address都补上了，那个doi没有写上去，应该也可以吧
现在是这样了
曹蕾.肺结节图像的分析与识别[D].广州:南方医科大学, 2009.

那个doi没有写上去，应该也可以吧

默认情况下如果有 doi 就会输出到参考文献表。你的 TeX Live 和 gbt7714 的版本是啥？

那个doi没有写上去，应该也可以吧

默认情况下如果有 doi 就会输出到参考文献表。你的 TeX Live 和 gbt7714 的版本是啥？

他的意思是没在 bib 文件中写

那个doi没有写上去，应该也可以吧

默认情况下如果有 doi 就会输出到参考文献表。你的 TeX Live 和 gbt7714 的版本是啥？

他的意思是没在 bib 文件中写

DOI 可有可无，另外学位轮文一般也没有 DOI。

authors: leewi9 sikouhjw zepinglee

repo: stone-zeng/fduthesis


text:
メニューのリンク修正

メニューのリンクを兵庫県の内容に修正して下さい。

初期バージョンではメニューの内容を以下とします。
- 兵庫県内の最新感染動向
----
- 兵庫県 / 新型コロナウイルスの対応について
    - https://web.pref.hyogo.lg.jp/kf16/singatakorona.html
- 兵庫県 / 記者発表資料
    - https://web.pref.hyogo.lg.jp/kk03/singatakoronataiou.html
- 兵庫県 / 新型コロナウイルスに感染した患者の発生状況
    - https://web.pref.hyogo.lg.jp/kk03/corona_hasseijyokyo.html
- 兵庫県 / 新型コロナウイルス感染症の県内検査状況について
    - 新型コロナウイルス感染症の県内検査状況について
----
- 兵庫県ホームページ
   - https://web.pref.hyogo.lg.jp/index.html
- 兵庫県広報戦略課 Twitter
    - https://twitter.com/hyogokoho

license: MIT


text:
keep encoded value if decoding fails.

#2376
Summary
Handles when uri decoding binary data fails.
Checklist

The basics

[x] I tested these changes manually in my local or dev environment

Tests

[x] Added or updated
[ ] N/A

Event Tracking

[ ] I added event tracking and followed the event tracking guidelines
[ ] N/A

Error Reporting

[ ] I reported errors and followed the error reporting guidelines
[ ] N/A

Screenshots
Using the following curl request:
curl -X POST -H "Content-Type: multipart/form-data" -F "profileImage=@/Users/chelsea/Downloads/1x1.png" "http://127.0.0.1:4010/anything"

the behavior is as follows for the different versions of Prism:
Version 4.14.1

Version 5.3.1

Local With Fixes

This has been released in version 5.3.2.

repo: stoplightio/prism


text:
Is Tailwind class binding possible through Storyblok?

I'm trying to develop some components that will be used by the content editors in Storyblok and there's a use case where we would like to define layout properties (using Tailwind's classes) through props that will be coming from Storyblok components.
As an example,

I am passing the width prop through storyblok giving a value of w-1/2 which is a Tailwind class. As you see on the right the class is applied just fine to the element but there's no actual impact on the page. I have tried the same with many other classes (either for background or border colors or for text styling etc, tried to use Tailwind classes as props coming from Storyblok but didn't work).
My only guess is that Nuxt is a server side application and the CSS gets compiled on build time, therefore any new class binding to the DOM will not reflect the actual CSS that they represent. Is this right? If yes, is there a way to make this happen and work?
The code for the widthSetter component is as simple as that
<template>
  {{blok.width}}

    <component
      v-for="value in blok.blocks"
      :key="value._uid"
      :is="value.component"
      :blok="value"
    />

</template>

@telisjok - were you able to get the Tailwind classes working? I am facing the same issue with the Tailwind classes coming in from Sotryblok, being rendered in HTML but missing the related CSS styles.

The issue is that the Tailwind "compiler" (sorry, if that's not what it's called) doesn't know to add those classes to the build output because they are injected dynamically.
It's not a great solution, but for now my approach has been to create a vue/html page that is in my main templates directory called _compiler.vue and list all those classes that I make available to my Storyblok editors in there. Tailwind then compiles them into the build and they work.
eg

<template>
    <div class="
        hidden
        font-medium font-bold font-normal italic underline text-white placeholder-white
        max-w-7xl max-w-6xl max-w-5xl max-w-4xl max-w-3xl
        h-4 h-6 h-8 h-12 h-16 h-20
        w-4 w-6 w-8 w-12 w-16 w-20
        border-b border-b-link border-b-primary border-b-gray-300 border-b-gray-50
        mt-0 mb-0 mt-4 mb-4 mt-8 mb-8 mt-12 mb-12 mt-16 mb-16
        px-2 px-4 px-12
        grid gap-0 gap-6 gap-16 grid-cols-1 grid-cols-2 grid-cols-3 grid-cols-4 grid-cols-5
        items-start items-center items-end items-top
        bg-white bg-gray-50 bg-gray-100 bg-gray-200 bg-gray-300 bg-primary bg-secondary
    ">

</template>

I don't know over what timescale you are comparing and I'm not a Tailwind expert, but newer Tailwind optimises the final CSS that is built - so only classes used in your monitored directories/files are compiled. These are configured in your tailwind.config.js file under the content directive.
If you use a tailwind class in any file that is matched by the rules in your content directive then they will also work via the Storyblok dynamic class inclusion method. So, if you already have a file that uses px-8 then you can also use that via Storyblok. But if none of your normal components/pages use a class then you will need to include it in the Tailwind build via a route such as the one I suggest.

authors: chrisnoden jsthind telisjok

repo: storyblok/storyblok-nuxt


text:
[Bug] Error with using package (vite4) | Vue

What version of vite are you using?
4.0.1
System info and storybook versions
System:
OS: macOS 13.0.1
CPU: (8) arm64 Apple M1 Pro
Binaries:
Node: 16.11.1 - /usr/local/bin/node
Yarn: 1.22.19 - /opt/homebrew/bin/yarn
npm: 8.0.0 - /usr/local/bin/npm
Browsers:
Chrome: 108.0.5359.98
Safari: 16.1
npmPackages:
@storybook/addon-actions: ^6.5.14 => 6.5.14
@storybook/addon-essentials: ^6.5.14 => 6.5.14
@storybook/addon-interactions: ^6.5.14 => 6.5.14
@storybook/addon-links: ^6.5.14 => 6.5.14
@storybook/builder-vite: ^0.2.5 => 0.2.5
@storybook/testing-library: ^0.0.13 => 0.0.13
@storybook/vue3: ^6.5.14 => 6.5.14
Describe the Bug
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: @storybook/builder-vite@0.2.5
npm ERR! Found: @vitejs/plugin-vue@4.0.0
npm ERR! node_modules/@vitejs/plugin-vue
npm ERR!   dev @vitejs/plugin-vue@"^4.0.0" from the root project

Hello everyone.
Is vite4 support planned?
Link to Minimal Reproducible Example
No response
Participation

[ ] I am willing to submit a pull request for this issue.

Thanks for the report.  I've been working hard to get Vite 4 supported in the upcoming Storybook 7 before the beta announcement this week.  I was hoping it would just work in 6.5, but it sounds like it doesn't.
I'll take a look into this as soon as I can though.  We definitely want to support vite 4 in storybook 6.5.

Actually I was just able to add storybook to a vite 4 project.  This is what I did.

npm create vite, chose vue.
npm sb init
npm run storybook, loaded up just fine.

Can you give me a set of steps to reproduce the error you are seeing?

I'm getting the following npm error when running npm install after I updated my package.json to use vite 4:
npm ERR! Could not resolve dependency:
npm ERR! peerOptional @vitejs/plugin-vue@"^3.0.0" from @storybook/builder-vite@0.2.5
npm ERR! node_modules/@storybook/builder-vite
npm ERR!   dev @storybook/builder-vite@"0.2.5" from the root project
npm ERR!
npm ERR! Conflicting peer dependency: @vitejs/plugin-vue@3.2.0
npm ERR! node_modules/@vitejs/plugin-vue
npm ERR!   peerOptional @vitejs/plugin-vue@"^3.0.0" from @storybook/builder-vite@0.2.5
npm ERR!   node_modules/@storybook/builder-vite
npm ERR!     dev @storybook/builder-vite@"0.2.5" from the root project

You need to be using @vitejs/plugin-vue@4.0.0
add that as a dependency to your package

From what I can see, @storybook/builder-vite has @vitejs/plugin-vue@"^3.0.0 as a peer dependency, which conflicts with the new version @vitejs/plugin-vue@^4.0.0 installed in the user project.
Using --legacy-peer-deps gets around this, but I thought we wanted to avoid that going forward?

@spacedawwwg I am using "@vitejs/plugin-vue": "^4.0.0", thats when the error occurred. @bodograumann is correct as far as I can see.

I'll publish an update to use vite 4 as 0.3.0 when I get a chance.  Most of my effort has been spent getting Storybook 7.0 beta polished up.

@IanVS would you mind publishing 0.3.0 or pointing to the commit folks can use to get over this issue if it is solved?

Thanks, I lost track of this, I'll get a new release out soon.

authors: Aghassi IanVS Ni9ja bodograumann landoephan spacedawwwg

repo: storybookjs/builder-vite


text:
remove default plugins

Hi ther and thanks for the excellent tool. I'm running into an issue where the automatically included CaseSensativePlugin conflicts with and breaks other plugins we use in our webpack setup. Specifically because it relys on the fs module instead of the exposed compiler filesystem. In any case it prevents my use of storybook while that issue is pending. It would be great if there was a way of completely opting out of any of the default plugins.

Check the extending default config section of our docs.

With that, you can access our plugin list and you could remove that.

perfect! missed that part

authors: arunoda jquense

repo: storybooks/react-storybook

license: mit


text:
Extend "sharing violation" logic to send SIGHUP to yubikey-agent processes

Closes #94.

Codecov Report

Merging #95 (ab96028) into main (d4f8993) will increase coverage by 0.02%.
The diff coverage is 0.00%.

:exclamation: Current head ab96028 differs from pull request most recent head 9595a76. Consider uploading reports for the commit 9595a76 to get more accurate results

@@           Coverage Diff            @@
##            main     #95      +/-   ##
========================================
+ Coverage   1.23%   1.25%   +0.02%
========================================
  Files          6       6
  Lines        405     398       -7
========================================
  Hits           5       5
+ Misses       400     393       -7

Impacted Files
Coverage Δ

src/key.rs
2.29% <0.00%> (+0.07%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

I did some testing, and noticed that this change works for direct age-plugin-yubikey commands, but not for plugin usage. The reason is that the latter uses YubiKey::open_by_serial, which ignores all opening errors because it can't check the serial without opening a YubiKey.
yubikey should instead detect the case where we haven't found a matching serial, and we weren't able to check the serials of all available YubiKeys. For 0.3.2 we can implement this ourselves, and then for 0.4.0 once #88 is merged we can upstream the logic into yubikey.


text:
Question: Extrinsic Support

As I understand it there is no declarative support, via annotation, for Extrinisics but is there a way to piece together that support with what currently does exist? I'm not super versed on how Extrinsics work at a spec level so I'm not entirely sure, some of the examples in the wiki make me think there may be support but I'm not recognizing it because of my ignorance, If there is a way to piece together that support can you provide an example or point me to one?
Thanks!

I believe the answer is yes, with examples being here https://github.com/strategyobject/substrate-client-java/blob/develop/api/src/test/java/com/strategyobject/substrateclient/api/pallet/balances/BalancesTest.java#L51 and https://github.com/strategyobject/substrate-client-java/blob/develop/rpc/rpc-api/src/test/java/com/strategyobject/substrateclient/rpc/api/section/AuthorTests.java#L80-L93

@pfrank13 there is no declarative approach for extrinsics right now. You'll have to implement it manually. An example can be found here

Awesome, I'll take a look at that. Thank you very much!

repo: strategyobject/substrate-client-java


text:
Staking null reference exception

Took a while to happen, below is the relevant log & stack trace:
[2018-03-11 04:53:59.8097 34] INFO: Stratis.Bitcoin.Utilities.AsyncLoop+<>c__DisplayClass16_0+<<StartAsync>b__0>d.MoveNext PosMining.Stake stopping
[2018-03-11 04:53:59.8392 34] FATAL: Stratis.Bitcoin.Utilities.AsyncLoop+<>c__DisplayClass16_0+<<StartAsync>b__0>d.MoveNext PosMining.Stake threw an unhandled exception
[2018-03-11 04:53:59.8392 34] ERROR: Stratis.Bitcoin.Utilities.AsyncLoop+<>c__DisplayClass16_0+<<StartAsync>b__0>d.MoveNext PosMining.Stake threw an unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at Stratis.Bitcoin.Features.Consensus.StakeValidator.CheckProofOfStake(ContextStakeInformation context, ChainedBlock prevChainedBlock, BlockStake prevBlockStake, Transaction transaction, UInt32 headerBits) in C:\Users\fullnodemike\source\StratisBitcoinFullNode\src\Stratis.Bitcoin.Features.Consensus\StakeValidator.cs:line 182
   at Stratis.Bitcoin.Features.Consensus.PosConsensusValidator.CheckAndComputeStake(RuleContext context) in C:\Users\fullnodemike\source\StratisBitcoinFullNode\src\Stratis.Bitcoin.Features.Consensus\PosConsensusValidator.cs:line 192
   at Stratis.Bitcoin.Features.Consensus.PosConsensusValidator.ExecuteBlock(RuleContext context, TaskScheduler taskScheduler) in C:\Users\fullnodemike\source\StratisBitcoinFullNode\src\Stratis.Bitcoin.Features.Consensus\PosConsensusValidator.cs:line 121
   at Stratis.Bitcoin.Features.Consensus.ConsensusLoop.<ValidateAndExecuteBlockAsync>d__42.MoveNext() in C:\Users\fullnodemike\source\StratisBitcoinFullNode\src\Stratis.Bitcoin.Features.Consensus\ConsensusLoop.cs:line 487
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Stratis.Bitcoin.Features.Consensus.ConsensusLoop.<AcceptBlockAsync>d__40.MoveNext() in C:\Users\fullnodemike\source\StratisBitcoinFullNode\src\Stratis.Bitcoin.Features.Consensus\ConsensusLoop.cs:line 358
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Stratis.Bitcoin.Features.Miner.PosMinting.CheckStake(Block block, ChainedBlock chainTip) in C:\Users\fullnodemike\source\StratisBitcoinFullNode\src\Stratis.Bitcoin.Features.Miner\PosMinting.cs:line 599
   at Stratis.Bitcoin.Features.Miner.PosMinting.<GenerateBlocksAsync>d__44.MoveNext() in C:\Users\fullnodemike\source\StratisBitcoinFullNode\src\Stratis.Bitcoin.Features.Miner\PosMinting.cs:line 561
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Stratis.Bitcoin.Features.Miner.PosMinting.<>c__DisplayClass42_0.<<Stake>b__0>d.MoveNext() in C:\Users\fullnodemike\source\StratisBitcoinFullNode\src\Stratis.Bitcoin.Features.Miner\PosMinting.cs:line 427
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Stratis.Bitcoin.Utilities.AsyncLoop.<>c__DisplayClass16_0.<<StartAsync>b__0>d.MoveNext() in C:\Users\fullnodemike\source\StratisBitcoinFullNode\src\Stratis.Bitcoin\Utilities\AsyncLoop.cs:line 136

Soon after there was a reorg - not sure if related or not. Related log snip:
[2018-03-11 04:54:01.7843 38] INFO: Stratis.Bitcoin.Features.Consensus.ConsensusLoop+<RewindCoinViewLockedAsync>d__39.MoveNext Reorg detected, rewinding from '329812-021eb5214efdbb3c87eb57d5a9fc86abf47a3ad2c3d3fbf692ae943b723e1b44' to '329811-035bf67a51dfa5394b60bfdccf3a60d942c10157d6d0597a7335f5a8efda6db7'.
[2018-03-11 04:54:02.2303 23] INFO: Stratis.Bitcoin.Features.Wallet.WalletSyncManager.ProcessBlock Reorg detected, going back from '329812-021eb5214efdbb3c87eb57d5a9fc86abf47a3ad2c3d3fbf692ae943b723e1b44' to '329811-035bf67a51dfa5394b60bfdccf3a60d942c10157d6d0597a7335f5a8efda6db7'.
[2018-03-11 04:54:02.8411 49] DEBUG: Stratis.Bitcoin.Features.BlockStore.BlockStoreBehavior.AnnounceBlocksAsync Sending 2 headers, range efb5fbf3bda9f6329d0b3cb61dca19900c0661290016896acc1b08b6b2318292 - 91f1d67a802d191246d8183de1893b5170d50fb70b4cdf05d255a528f55c7514, to peer '[::ffff:52.233.33.138]:51843'.
[2018-03-11 04:54:02.8411 49] DEBUG: Stratis.Bitcoin.Features.BlockStore.BlockStoreBehavior.AnnounceBlocksAsync Sending inventory hash '91f1d67a802d191246d8183de1893b5170d50fb70b4cdf05d255a528f55c7514' to peer '[::ffff:84.192.155.226]:26178'.
[2018-03-11 04:54:02.8411 49] DEBUG: Stratis.Bitcoin.Features.BlockStore.BlockStoreBehavior.AnnounceBlocksAsync Sending header '91f1d67a802d191246d8183de1893b5170d50fb70b4cdf05d255a528f55c7514' to peer '[::ffff:13.91.95.87]:26178'.
[2018-03-11 04:54:03.0657 30] INFO: Stratis.Bitcoin.Features.BlockStore.BlockStoreStats.Log ====BlockStore Repository Stats(%)====
Hit Count:

The crashing code reads as:
            ChainedBlock prevBlock = this.chain.GetBlock(coins.BlockHash);
            UnspentOutputs prevUtxo = coins.UnspentOutputs[0];

            // Verify signature.
            if (!this.VerifySignature(prevUtxo, transaction, 0, ScriptVerify.None))
            {
                this.logger.LogTrace("(-)[BAD_SIGNATURE]");
                ConsensusErrors.CoinstakeVerifySignatureFailed.Throw();
            }

            // Min age requirement.
            if (this.IsConfirmedInNPrevBlocks(prevUtxo, prevChainedBlock, this.consensusOptions.StakeMinConfirmations - 1))
            {
                this.logger.LogTrace("(-)[BAD_STAKE_DEPTH]");
                ConsensusErrors.InvalidStakeDepth.Throw();
            }

            this.CheckStakeKernelHash(context, prevChainedBlock, headerBits, prevBlock.Header.Time, prevBlockStake, prevUtxo, txIn.PrevOut, transaction.Time);

And the crash procurers on the last line. It seems obvious that prevBlockcan be null. I would call it concurrent chain strikes again.
So basically what happened here is that the peer was informed about the better chain which orphaned  the tip, therefore concurrent chain no longer contained the tip, so null was returned and there is a check missing for that.

Ah well spotted, another concurrent chain shenanigan.
We have this check in the CheckKernal method so we just need to add it in CheckProofOfStake
            if (prevBlock == null)
            {
                this.logger.LogTrace("(-)[REORG]");
                ConsensusErrors.ReadTxPrevFailed.Throw();
            }

authors: Aprogiena dangershony mikedennis

repo: stratisproject/StratisBitcoinFullNode


text:
[WalletManager] ProcessBlock assertion

I had tons of Wallet is behind the best chain and the next block is not found in store on the console, so I ctrl+C and
Application is shutting down...
info: Stratis.Bitcoin.Base.BaseFeature[0]
      FlushChain stopping
info: Stratis.Bitcoin.FullNode[0]
      MemoryPool.RelayWorker stopping
info: Stratis.Bitcoin.Base.BaseFeature[0]
      FlushAddressManager stopping
info: Stratis.Bitcoin.FullNode[0]
      wallet persist job stopping
info: Stratis.Bitcoin.FullNode[0]
      Closing node pending...
info: Stratis.Bitcoin.FullNode[0]
      BlockStore.DownloadAndStoreBlocks stopping
info: Stratis.Bitcoin.FullNode[0]
      PeriodicLog stopping
info: Stratis.Bitcoin.FullNode[0]
      BlockStore.RelayWorker stopping
crit: Stratis.Bitcoin.Features.Consensus.ConsensusFeature[0]
      Consensus loop unhandled exception (Tip:6135)
System.ArgumentNullException: Value cannot be null.
Parameter name: block
   at Stratis.Bitcoin.Utilities.Guard.NotNull[T](T value, String parameterName) in C:\StratisBitcoinFullNode\Stratis.Bitcoin\Utilities\Guard.cs:line 46
   at Stratis.Bitcoin.Features.Wallet.WalletManager.ProcessBlock(Block block, ChainedBlock chainedBlock) in C:\StratisBitcoinFullNode\Stratis.Bitcoin.Features.Wallet\WalletManager.cs:line 471
   at Stratis.Bitcoin.Features.Wallet.WalletSyncManager.ProcessBlock(Block block) in C:\StratisBitcoinFullNode\Stratis.Bitcoin.Features.Wallet\WalletSyncManager.cs:line 131
   at Stratis.Bitcoin.Features.Wallet.Notifications.BlockObserver.OnNextCore(Block block) in C:\StratisBitcoinFullNode\Stratis.Bitcoin.Features.Wallet\Notifications\BlockObserver.cs:line 24
   at System.Reactive.SafeObserver`1.OnNext(TSource value)
   at System.Reactive.Observer`1.OnNext(T value)
   at System.Reactive.SynchronizedObserver`1.OnNextCore(T value)
   at Stratis.Bitcoin.Signals.Signaler`1.Broadcast(T item) in C:\StratisBitcoinFullNode\Stratis.Bitcoin\Signals\Signaler.cs:line 70
   at Stratis.Bitcoin.Signals.Signals.SignalBlock(Block block) in C:\StratisBitcoinFullNode\Stratis.Bitcoin\Signals\Signals.cs:line 74
   at Stratis.Bitcoin.Features.Consensus.ConsensusFeature.RunLoop() in C:\StratisBitcoinFullNode\Stratis.Bitcoin\Features\Consensus\ConsensusFeature.cs:line 165

Unhandled Exception: System.ArgumentNullException: Value cannot be null.
Parameter name: block
   at Stratis.Bitcoin.Utilities.Guard.NotNull[T](T value, String parameterName) in C:\StratisBitcoinFullNode\Stratis.Bitcoin\Utilities\Guard.cs:line 46
   at Stratis.Bitcoin.Features.Wallet.WalletManager.ProcessBlock(Block block, ChainedBlock chainedBlock) in C:\StratisBitcoinFullNode\Stratis.Bitcoin.Features.Wallet\WalletManager.cs:line 471
   at Stratis.Bitcoin.Features.Wallet.WalletSyncManager.ProcessBlock(Block block) in C:\StratisBitcoinFullNode\Stratis.Bitcoin.Features.Wallet\WalletSyncManager.cs:line 131
   at Stratis.Bitcoin.Features.Wallet.Notifications.BlockObserver.OnNextCore(Block block) in C:\StratisBitcoinFullNode\Stratis.Bitcoin.Features.Wallet\Notifications\BlockObserver.cs:line 24
   at System.Reactive.SafeObserver`1.OnNext(TSource value)
   at System.Reactive.Observer`1.OnNext(T value)
   at System.Reactive.SynchronizedObserver`1.OnNextCore(T value)
   at Stratis.Bitcoin.Signals.Signaler`1.Broadcast(T item) in C:\StratisBitcoinFullNode\Stratis.Bitcoin\Signals\Signaler.cs:line 70
   at Stratis.Bitcoin.Signals.Signals.SignalBlock(Block block) in C:\StratisBitcoinFullNode\Stratis.Bitcoin\Signals\Signals.cs:line 74
   at Stratis.Bitcoin.Features.Consensus.ConsensusFeature.RunLoop() in C:\StratisBitcoinFullNode\Stratis.Bitcoin\Features\Consensus\ConsensusFeature.cs:line 186
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

Ok yeah thanks, its currently an ugly hack.
When the wallet is behind consensus a loop tries to find the block in store (this will only work for not pruned nodes).
The problem is the loop is blocking consensus, and if the block is not in store (waiting for consensus to signal a block block to store) then the loop will never exit.
I have a hack on top of a hack.
Release the loop after x attempts, and don't push the block to the wallet assuming the next block will now release store to push the block and it will be available next round.
The proper fix:
Make wallet stand alone same as BlockStore.
If the wallet is behind and the block is not available in store (or if prune mode enabled) then wallet will download blocks (another puller is going to be introduced ;) )

authors: Aprogiena dangershony


text:
[P2P] Calculate ban time based on network configuration

In this PR we calculate the default ban time based on the network's target spacing and max reorg values:
Ban time = (target spacing in seconds) * (max reorg length) / 2

This is to ensure that the ban time never exceeds the amount of time it takes to create the amount of blocks equivalent to the max reorg value.
We check the type of ConsenusOptions to determine if the network is POW or POS. If it is POW, we use network's consensus powTargetSpacing, otherwise the network's consensus options TargetSpacingSeconds.
If the network does not have a max reorg value we use the FallbackMaxReorg constant on network.
The following changes should be noted:

TargetSpacingSeconds on the StakeValidator has been moved to ConsensusOptions.
FallbackMaxReorg in AddressIndexer has been moved to Network.
Some of the peer banning tests in the consensus feature has been moved Stratis.Bitcoin.Tests.

https://dev.azure.com/Stratisplatformuk/StratisBitcoinFullNode/_workitems/edit/4023

ConsensusOptions is supposed to disappear at some point, I'd recommend not puting anything there.
What's the difference between MaxReorg and FallbackMaxreorg. I understand it's a property of the indexer but why move it to consensus.

I am also  it sure I agree with the logic of this change.
A node that was banned and passed max reorg will still be able to jump on the main chain as long as they dont mine a new longer chain (max reorg applies to the longest chain not the banned nodes chain).
What's the reason behind deviding the max reorg second in two?
The ban reason that lead to this change was determined?

Every time we try to add something to ConsensusOptions the PR author gets hit with "we're going to remove ConsensusOptions soon", but there's nowhere else to put this stuff sensibly yet, and when we do remove ConsensusOptions it will be nice to have the problem all in one place :)

@dangershony what would you say about how:

IBD
MaxReorg
MaxTipAge
Ban time

Are related? Are some of them related and some not?

@codingupastorm what is the reason that nodes get banned? (what triggered this PR?) I think this should be addressed first. If miners get banned and fork away it indicates a biggere problem becuse forking to a new chain is not that easy if a node is playing by the rules.
I'd also agree perhaps we ban too fast, ideally a ban is long term and is removed after soetime just so to not lock the ip anymore. reducing a ban time is not the best solution to bypass consensus bugs.
Fiar point with ConsensusOptions  best I can do is try to prevent adding stuff to it, better put things in IConsensus perhaps or the consensus factory?

@dangershony @quantumagi I moved TargetSpacingSeconds to Consensus, let me know how this feels/looks like.
I think we can move TargetSpacingSeconds to Network or just delete TargetSpacingSeconds?
Or how do we handle networks that have both POW and POS eras?

Hey @fassadlr et al.
Why not make ban time just configurable per network. Doesn't have to be bound to TargetSpacing.
Just like we now know that MaxTipAge needs to get us within MaxReorgLength, we can document these constraints but allow the user to configure the values.
This PR would only need to be changed slightly I think!
Thoughts?

@fassadlr can we close this?

Closing as this was fixed in #3796

authors: codingupastorm dangershony fassadlr


text:
Fix CI with new Ubuntu LTS

Description

Our CI started getting some new erros, I've checked that CodSpeed doesn't support Ubuntu 24.04 LTS (lastest LTS).
This PR fixes Unit tests / 💻 Generate test matrix (pull_request) and Unit tests / 📈 Benchmarks (pull_request) workflows
Types of Changes

[ ] Core
[ ] Bugfix
[ ] New feature
[ ] Enhancement/optimization
[ ] Documentation

Issues Fixed or Closed by This PR

Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

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

Project coverage is 43.46%. Comparing base (550c23c) to head (49a9767).

:exclamation:  There is a different number of reports uploaded between BASE (550c23c) and HEAD (49a9767). Click for more details.
HEAD has 6 uploads less than BASE

Flag
BASE (550c23c)
HEAD (49a9767)

7
1

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #198       +/-   ##
===========================================
- Coverage   85.32%   43.46%   -41.86%
===========================================
  Files          16       16
  Lines        1615     1615
  Branches      320      128      -192
===========================================
- Hits         1378      702      -676
- Misses        183      886      +703
+ Partials       54       27       -27


text:
Postponed annotation evaluation causes Annotated to break

When using postponed annotation evaluation, annotating resolver arguments no longer works:
from __future__ import annotations

import random
from typing import Annotated

import strawberry

@strawberry.type
class Query:
    @strawberry.field
    def dice_roll(
        self,
        sides: Annotated[
            int,
            strawberry.argument(description="Number of sides the die should have."),
        ] = 6,
    ) -> int:
        return random.randint(1, sides)

strawberry.Schema(query=Query)

The example above raises this TypeError:
TypeError: Query fields cannot be resolved. Unexpected type 'typing.Annotated[int, <strawberry.arguments.StrawberryArgumentAnnotation object at 0x7fd12e130d00>]'

When the first line (from __future__ import annotations) is left out, everything works as intended. This will probably also break once Python 3.11 lands, since the behavior will become mandatory then. #1586 refers to a somewhat related issue.

@yrd I think this has been fixed, I'll close for now, but let me know if is not fixed.
I tested it here: https://play.strawberry.rocks/?gist=1f311d6ce6b63ef50bdb55115551fbb5

repo: strawberry-graphql/strawberry


text:
[Suggestion] add CONTRIBUTING.md

I recently submitted a PR and when setting up the project locally I had some issues. Particularly related to yarn, I have no previous experience using it and had some issues with duplicated React types).
I think a simple "get started" section in a CONTRIBUTING.md file would be most helpful :)

Indeed, would be nice to have some guidelines about what's needed when adding new hooks (example file, test file, linting passing, etc) or when editing hooks (add new tests cases, etc)

@belco90 I'll write a contributing.md when I'll have some time.

One requirement for a hook could be:

A hook internally must use at least one another hook.

@streamich What exactly do you mean with the following?

A hook internally must use at least one other hook

Do you mean a hook has to use a part of the React hooks API internally? This kind of seems like a given since this lib a collection custom hooks tbh. Unless there's a way to create hooks or hook factory functions without using React's API?

@wardoost Yes, exactly that. It is given, but I've seen people just write a JavaScript function that starts with use... and they think it is a hook. Maybe if it is obvious, we should not put that in the doc.

@streamich Makes sense to add it if people add a normal function 👍Maybe we could rephrase is to the following to make it more clear?

A hook internally must use the React Hooks API

:tada: This issue has been resolved in version 12.6.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

authors: Belco90 PetterIve streamich wardoost xobotyi

repo: streamich/react-use

license: Unlicense


text:
feat: add type define for createMemo

like this

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

authors: liaoyinglong streamich


text:
🛑 WSDL Cencosud Mobile SAM is down

In 8a734ba, WSDL Cencosud Mobile SAM (https://seam.cencosud.com/WsseamPROD/WSEAMC/ws/ObtenerEquipos?OBJ_MRC=E585&OBJ_ESPE=TV) was down:

HTTP code: 500
Response time: 14851 ms

Resolved: WSDL Cencosud Mobile SAM is back up in ec771a3 after 6 minutes.

repo: streamlined-scs/upptime


text:
🛑 SEAM SCS Demo is down

In f620743, SEAM SCS Demo (https://seam-demo.streamlined-scs.cl/web/base/logindisp?tenant=SEAMXIII) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SEAM SCS Demo is back up in cbcc722 after 27 minutes.


text:
Update install-package-pypi-github.md

Proposing an update to this documentation in response to this forum thread:
https://discuss.streamlit.io/t/can-you-use-secrets-as-environment-variable-for-use-in-requirements-txt/28881
📚 Context
Helpful information from forum representative here:
https://discuss.streamlit.io/t/can-you-use-secrets-as-environment-variable-for-use-in-requirements-txt/28881
🧠 Description of Changes
Proposed a known limitations section for documentation of the use packages not listed in PyPy of conda.
Revised:
Added "Known Limitations" section to this document with example Secrets manager not creating environment variables that can be used by pip installer.
Current:
Section did not exist.
💥 Impact
Narrow applicability, but useful to users referencing private git repositories in the requirements.txt file
Size:

[X] Small
[ ] Not small

🌐 References

[ ] Notion

Contribution License Agreement
By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.

Thank you! Love the edits. :-)
On Mon, Aug 15 2022 at 6:41 AM, Snehan Kekre < @.*** > wrote:

Merged #448 ( https://github.com/streamlit/docs/pull/448 ) into main.
—
Reply to this email directly, view it on GitHub (
https://github.com/streamlit/docs/pull/448#event-7187727800 ) , or unsubscribe
(
https://github.com/notifications/unsubscribe-auth/AUBURJDFQ5I7V4PP7CWSKGLVZINGRANCNFSM556OMPLA
).
You are receiving this because you were mentioned. Message ID: <streamlit/docs/pull/448/issue_event/7187727800
@ github. com>

--
Confidential

repo: streamlit/docs


text:
Support tenant and namespace

Currently KoP only support produce or consume topics in the configured namespace by kafkaTenant and kafkaNamespace. If we want to make use of Pulsar's multi-tenancy, we need to enable SASL authentication and encode the namespace info into the sasl.jaas.config property.
This PR is to use Pulsar topic name as Kafka topic name, the topic mapping from topic in Kafka client to the real Pulsar topic is:

my-topic => persistent://<kafkaTenant>/<kafkaNamespace>/my-topic
my-tenant/my-ns/my-topic => persistent://my-tenant/my-ns/my-topic

This work is done by the new added KopTopic.
Besides, if client want to fetch the metadata of all topics, before this PR, only the topics of <kafkaTenant>/<kafkaNamespace> would be returned, now the topics of all namespaces would be returned.
Following unit tests are added:

KopTopicTest: test the basic functions of KopTopic;
DifferentNamespaceTest: test the newly supported topic name version to specify a custom namespace

Mark the PR as WIP because the unit test failure of PublishRateLimitTest#testBrokerPublishByteThrottling and KafkaRequestTypeTest.testPulsarProduceKafkaConsume2 need to be solved.

overall looks good, left some comments.
We should also change the documents

overall looks good, left some comments.
We should also change the documents

There's one point that the configuration and authentication docs are both in StreamNative website, which is recorded in the private repository. Should we also add some docs to this repository?

overall looks good, left some comments.
We should also change the documents

There's one point that the configuration and authentication docs are both in StreamNative website, which is recorded in the private repository. Should we also add some docs to this repository?

there were README.md and DEVELOP.md in this repo.  once this is added, we could change the repo of StreamNative website

Changes have been done, PTAL, @jiazhai

authors: BewareMyPower jiazhai

repo: streamnative/kop


text:
Fix HttpRequestMetric format: was expecting string for response headers.

Returning null could break some 3rd party plugins

thanks @ruslandinov


text:
Making existing tests location-agnostic; add conditional check for server static path before mounting

Updated tests in test_core.py, test_app_runner.py, and test_serve.py to use dynamic paths derived from test_app_dir in __init__.py of the tests directory. This ensures consistent path resolution across different environments.

Implemented a check to verify the existence of the server static path before mounting it in the ASGI app. Added an error message guiding users on how to resolve the issue if the path is not found.

repo: streamsync-cloud/streamsync


text:
Add "application/gzip" to recognize gzipped files

Using version pulse 2.8, I have some "gz" files that I want to parse but pulse fails to parse them with:
2023-02-25 12:50:06 2023-02-25 19:50:06,259 ERROR [task-thread-connect-sbd-cdr-0] Failed to execute filter 'DelimitedRowFilter' on record at offset '[startPosition=313, endPosition=558, rows=2, timestamp=1677354606258, size=244]' from object-file [uri=file:/tmp/connect-data/test-2.gz, name='test-2.gz', contentLength=55671, lastModified=1677353549000, contentDigest=[digest=2361669476, algorithm='CRC32'], userDefinedMetadata={system.inode=247951, system.hostname=263ca83c292e}]. Error: Cannot parse 64-bits long content from
The issue is this code at io.streamthoughts.kafka.connect.filepulse.fs.codec.GZipCodec:
   static  {         MIME_TYPES.add("application/x-gzip");     }
It should also add `application/gzip' since gzip is no longer experimental.
Am I missing something?

Created a MR to add this functionality: https://github.com/streamthoughts/kafka-connect-file-pulse/pull/398

The tarball also seems to have the same issue. I was going to fix it too but I had to add a library to create tar files from Java but I am not sure of pulse requirements for adding dependencies so I did not do that, but I can do it if ok.

repo: streamthoughts/kafka-connect-file-pulse


text:
Reduce latency during startup

Loading all of the member's roles during startup is very slow and essentially gridlocks the bot. This adds delays to it.

Thanks @Ma-wa-re

repo: strinking/futaba


text:
fix bug where user_schedule table wasn't being stored

Summary
In #11, I changed database_update to clear out the old database records before entering new ones, in order to account for deleted schedules and users.
For the user_schedule table, I was calling database_update for each schedule, which caused it to delete whatever was in there before. This PR fixes this bug by only calling database_update once for all of the user_schedule records.
Testing
Ran locally and checked that the records were actually being stored.

r? @stripe/observability

At @joshu-stripe's suggestion, I changed database_update to database_replace so it's a bit more obvious in the future.


text:
Getting "No such payment_intent: 'pi_3LiNiUDBzg8BxVzZ0fADyJQb'" on retrievePaymentIntent

Describe the bug
Getting "No such payment_intent: 'pi_3LiNiUDBzg8BxVzZ0fADyJQb'" on retrievePaymentIntent after creating the payment intent on server side.
To Reproduce
Steps to reproduce the behaviour:
const { error } = await discoverReaders({
discoveryMethod: 'bluetoothScan',
simulated: true
});
const { reader, error } = await connectBluetoothReader({
reader: data,
});
const response = await createReaderIntentService(obj); // getting secret from server side
const retrievedResponse = await retrievePaymentIntent(response?.client_secret);
console.log('\n\n\n\n   retrievePaymentIntent response ', retrievedResponse);
log:  {"error": {"code": "PAYMENT_ERROR.DECLINED_BY_STRIPE_API", "message": "No such payment_intent: 'pi_3LiNiUDBzg8BxVzZ0fADyJQb'"}, "paymentIntent": undefined}
Expected behaviour
Payment intent should be retrieved after creating it at backend and passing retrievePaymentIntent function client secret.
Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

Device: Tecno camon 17 and huawei honor 7c
OS: Android 12 and Android 8
WisePad3 BT Simulator

Hi @abdulrafeh857 -- looking at our logs, it appears the Payment Intent was created under a different account that you were using to retrieve it. Please make sure that you're using the same secret key for creating connection tokens and creating Payment Intents in your backend. I'm going to optimistically close this issue.

Hi, thanks for input, turns out that device was registered on main account and payment intent was created on a connected account. Thanks for pointing out.

repo: stripe/stripe-terminal-react-native


text:
Get rid of RemoteArtifact inheritance

Task Description
Within current implementation we have RemoteArtifact entity inherided from Artifact entity. Both entities have the uuid index which affects on JG commit performance when adding new entities. We could drop this inheritance and put cached attribute dirrectly into Artifact entity for the sake of performance.
Tasks
The following tasks will need to be carried out:

[x] Moove cached attribute to Artifact entity
[x] Drop the RemoteArtifact entity
[x] Rework RemoteArtifact specific logic

Task Relationships
This task:

Is a sub-task of:  #1754

Help

Our chat
Points of contact:

@carlspring
@sbespalov
@steve-todorov

fixed

repo: strongbox/strongbox


text:
計算・印刷の部材で部材項目の数よりもチェックボックスの数が多い

「ファイルを開く」で任意ファイルを開いた後「部材・断面」を開かずに「計算・印刷」を開くと部材の数よりチェックボックスの数の方が多くなる

この状態から「部材・断面」を開いて、「計算・印刷」に戻ると表示は正しい形に戻るが、
印刷ができなくなってしまう。

チェックボックスが増える要因は分からない

印刷機能については解決

サンプルファイルが壊れていたことが発覚。解決

repo: structuralengine/WebDanforJS


text:
Title of the docs does not follow the documentation file name

I just experimented with this tools and was trying to make custom docs for my company. I follow the instructions on how to make the .md file gets rendered by Structurizr here. It says that Structurizr will change the name of the section from the document name and will be sorted alphabetically. But, I found that Structurizr does not do that it renders "Name" instead. Is there any updates on how the documentation works? How do I change the "Name" title?

“Name” is the default name of your workspace - you can override this by adding a name to your workspace definition on line 1.

Oh right, thanks for your reply.
it works!

repo: structurizr/dsl


text:
change email adress in components and readme

email adress should be support@strusoft.freshdesk.com

if no email is necessary we should direct users to the form instead https://strusoft.freshdesk.com/en/support/tickets/new

authors: Marco-Pellegrino andosca

repo: strusoft/femdesign-api


text:
Allow User-Configurable Port for MSP

Currently, the Mutation Server Protocol (MSP) reports the selected port via STDOUT, but there’s no mention in the protocol specification about using a user-configurable port. This works fine in local development but becomes challenging in containerized environments.
For example, in the Stryker Cloud Orchestrator setup, which distributes the mutation testing process across multiple workers, the tool implementing MSP will run in a separate container. Which makes it hard to retrieve the port from STDOUT.
In my use case, I want to control the mutation testing tool via MSP from a separate worker container. Without a way to set a fixed port, it’s challenging to establish reliable communication between the worker and the MSP server since the port may change dynamically.
Proposed Update
I suggest extending the base protocol documentation with the following note:

The mutation server may use a user-configurable port specified through a command-line option or configuration setting.

This small addition to the documentation would clarify that implementations can support a user-defined port, making it clear for users and tool developers that this option is available when needed.

@nicojs @ any objections?

I agree with the proposed addition to the documentation, good idea! Allowing a user-configurable port would provide the flexibility needed for containerized environments.

authors: Aimless321 jaspervdveen rouke-broersma

repo: stryker-mutator/editor-plugins


text:
feat(regex-mutator): smart regex mutations

This PR adds support for smart regex mutations to Stryker. 👽
Some examples:
/\d{4}\s[a-Z]{2}/;
// Mutates to:
/\d\s[a-Z]{2}/; // => Quantifier removal
/\D{4}\s[a-Z]{2}/; // => Predefined Character Class Negation
/\d{4}\S[a-Z]{2}/; // => Predefined Character Class Negation
/\d{4}\s[a-Z]/; // => Quantifier removal
/\d{4}\s[^a-Z]{2}/; // => Character Class Negation

Stryker will identify regex literals: /\d{4}\s[a-Z]{2}/ as well as clear regex string literals in a RegExp constructor: new RegExp('\\d{4}\\s[a-Z]{2}'). After that it uses the awesome Weapon-regeX library to generate mutants based on the regex pattern. These mutants are then placed inside the code with regular mutation switching practises.
Weapon regex supports mutation levels. Currently, Stryker only introduces regex mutants of mutation level 1 in your code. We might be making this configurable in the future.
Note: this mutator might have a significant impact on your mutation score, depend on whether or not you use regexes a lot and how well you've been testing them 😉.
You can opt-out of using this mutator by excluding it via stryker.conf.json:
{
  "mutator": {
    "excludedMutations": ["Regex"]
  }
}

Looks very clean! Nice to see Weapon regeX found a home in stryker 😄. I am a little sad that you mutate only on level 1, but I guess users otherwise drown in mutants by default.

Looks very clean! Nice to see Weapon regeX found a home in stryker 😄. I am a little sad that you mutate only on level 1, but I guess users otherwise drown in mutants by default.

authors: nicojs wijtserekker

repo: stryker-mutator/stryker


text:
Question on permissions

My scanner got a few more checks added recently, and on today's release of your app reported:
! repo/com.github.stsaz.phiola_20016.apk declares risky permission(s): android.permission.READ_EXTERNAL_STORAGE android.permission.MANAGE_EXTERNAL_STORAGE android.permission.RECORD_AUDIO

While RECORD_AUDIO is clear for an audio recorder (and went straight to the "allow-list") and READ_EXTERNAL_STORAGE is explained by the app supporting pre-Lollipop Android versions: why does the app need MANAGE_EXTERNAL_STORAGE?
Thanks in advance for clarification!

why does the app need MANAGE_EXTERNAL_STORAGE?

This is because phiola provides the ability to browse the complete storage content via its Explorer tab view like a natural File Manager App.
Without this, for example, I won't be able to navigate to an arbitrary directory on my sdcard and then add it to the playlist.
More info here:
https://developer.android.com/training/data-storage/manage-all-files
In general, I don't see any trouble for the users here because Android explicitly asks for this permission when user first taps on Explorer tab, and after that it becomes obvious to the user that all files are seen by phiola.  Also, phiola's code is open for analyzing by anyone in case someone suspects a potential threat or misbehavior...
It's also fine if someone makes a more "google-user-privacy-friendly" fork of phiola where browsing for dirs & files isn't a requirement :)

browse the complete storage content via its Explorer tab view like a natural File Manager App

Thanks! So:
      android.permission.READ_EXTERNAL_STORAGE: needed for the integrated file explorer on Android 10 and before
      android.permission.MANAGE_EXTERNAL_STORAGE: needed for the integrated file explorer on Android 11+
      android.permission.RECORD_AUDIO: this is an audio recorder app

(in case you want some description to the remaining non-bold ones)

if someone makes a more "google-user-privacy-friendly" fork

Well… my main "target group" are those not bound to Google :wink:
That said: All gaps filled, issue solved – closing up and saying thanks once more!

authors: IzzySoft stsaz

repo: stsaz/phiola


text:
20180401 Learn Go by writing tests: Pointers and errors

标题：Learn Go by writing tests: Pointers and errors
原文链接：https://dev.to/quii/learn-go-by-writing-tests-pointers-and-errors-2kp6
译者自己根据原文翻译，译文保存为 markdown 格式，并附上尾部的签名。
----------------

via:https://dev.to/quii/learn-go-by-writing-tests-pointers-and-errors-2kp6

作者：[Chris James](https://dev.to/quii)
译者：[译者ID](https://github.com/译者ID)
校对：[校对者ID](https://github.com/校对者ID)

本文由 [GCTT](https://github.com/studygolang/GCTT) 原创编译，[Go 中文网](https://studygolang.com/) 荣誉推出

认领

repo: studygolang/GCTT


text:
「!」論理否定の使い方

質問
変数　a が　""　又は数値にしか成らない条件の下、
式　If a = "" Then を　If ! a Then　に　置き換えてみたら
異なる結果になったのですが、この「!」の使い方は正しくないでしょうか？
私としては""の真偽性評価に対して論理否定しているイメージで使ったのですが、
UWSCRの建付けは、""以外の物全てを真偽性評価すると言う風になっているのでしょうか？
この使い方が誤りであればSyntax Errorにして貰えると良いのですが、
場合によって、正しいとも間違いとも言えるのですかね～？
補足用コード
a = ""
Print  a ?  "a = True" :  "a  =  False"     //　a  =  False
Print !a ?  "!a = True ":  "!a =  False"   //　!a  =  False

バージョン
1.0.1
実行環境
Windows 10

実装を確認したところ真偽値、数値、EMPTY以外は一律falseにしていました
これは最初期に実装して以来手がついてない部分ですね…
現行仕様の一部はバグとし、仕様を整理して修正します

単に真偽性をひっくり返したのだとCONDUWSCだとかで不整合がありそうなので、! の右辺は FORCEBOOL や CONDUWSC の影響を受けるものとする

この修正により ! "" は

デフォルト: TRUE
FORCEBOOL: エラー
CONDUWSC: エラー

となります

聞いてみて、良かったです。
早い対応ありがとうございます。

authors: DIYJii stuncloud

repo: stuncloud/UWSCR


text:
List not working: File created but didn't work on VLC

Hi. I successfully  created the list. So far so good. But the list is not working in vlc.
I'm getting:
"Your input can't be opened: VLC is unable to open the MRL..."

It's generating URLs for viewstvn instead of viewms. The auth token is correct but it's trying to use it for the wrong site.

What do you mean? you mentioned two different things, the auth token and the server. Also I enter as a parameter viewms.

When you enter your information into the script it should write a URL for each channel that contains an auth token, server, the site name and a link for that channel. The script is doing that BUT it appears to be entering the site as "viewstvn" (StreamTVNow) even though you've entered "viewms" (MyStreams). So the auth token is correct but it's being used on the wrong site. There's an error in the script.

Hi guys,
Thanks for all the details.  I didn't full implement the handling of different hosts in the last update - I apologize for the inconvenience!  It's a quick fix and I'll have it done this morning.
Thanks @dbowles1975 for stepping up to help out!  Cheers 🍻

repo: stvhwrd/SmoothStreamsTV-playlist


text:
Feature Request: Clean specific rooms / zones

Due to the layout of my home, I typically clean one or a subset of rooms at a time, and recently Roomba has added "Clean Zones" that you can target as well.
It'd be cool if rooms and zones could appear as individual switches to clean, allowing us to either clean the whole home or one specific zone.

Not sure how tricky it is to list the rooms and dynamically add switches, but at least for rooms this seems possible with the node API: https://github.com/koalazak/dorita980#cleanRoom
Looks like "Clean Zones" aren't supported yet, but it's also in beta so may take some time.

Agreed.   The coolest feature i would see for now from what's suggested out there.  As a 2nd suggestion maybe make the rooms parameters in the HB config settings.

Please add Clean specific rooms / zones feature. It take 3 house to clean the whole house, without specific room feature then this plugin is bit unrealistic.

+1
In order to remove the opportunity to use the app this is a valid feature for the newer models (s7, s9).
From my perspective, I only use the app for instructing the Roomba to clean specific rooms at certain times or situations during the day.

On Oct 13, 2020, at 3:09 PM, wallacepost notifications@github.com wrote:
Please add Clean specific rooms / zones feature. It take 3 house to clean the whole house, without specific room feature then this plugin is bit unrealistic.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/stvmallen/homebridge-roomba-stv/issues/65#issuecomment-707979561, or unsubscribe https://github.com/notifications/unsubscribe-auth/APK2HVW42UH6BQT6TJ4JXUDSKSXXLANCNFSM4OVA6PYQ.

authors: Pblondin123 epheterson wallacepost whreams

repo: stvmallen/homebridge-roomba-stv


text:
Syntax error with Psych and i18n on master

I18n::InvalidLocaleData: can not load translations from /Users/vision/.rvm/gems/ruby-2.5.1/bundler/gems/faker-00be118fc07f/lib/locales/en/vehicle.yml: #<Psych::SyntaxError: (<unknown>): found unknown escape character while parsing a quoted scalar at line 72 column 5413>
Ruby version is 2.5.1.

It appears to be the use of strings like `"6.1L V8 'HEMI' engine" - there shouldn't be the escape backslash on the quotes like that in YAML (or with double quoted strings in general).

#1305 and #1301 seem to both be potential solutions to the issue. 😅

repo: stympy/faker


text:
RFC for wikilink with URLs

I’ve thought about this some more and I really do think there’s a place for “inline links”.
I think this can also enable labeled wikilinks which are useful for prose.
[[wikilinkname|(url|wikilinkname)]]
The only inline links are wikilinks. They are either

a bare wikilink
a wikilink that is displayed as wikilinkname
A URI link that is displayed as wikilinkname

Not high priority but I thought I’d at least capture it.

repo: subconsciousnetwork/subtext


text:
🛑 Cubari (Dynasty Scans) is down

In c24d6ae, Cubari (Dynasty Scans) (https://cubari.moe/read/dynasty/the_engagement_of_the_disgraced_witch_and_the_cross_dressing_princess/?cache_buster=$GITHUB_RUN_NUMBER) was down:

HTTP code: 500
Response time: 361 ms

Resolved: Cubari (Dynasty Scans) is back up in 97ca2da after 1 minute.

repo: subject-f/cubari-status-page


text:
🛑 Cubari (imgBB) is down

In 921acd2, Cubari (imgBB) (https://cubari.moe/read/imgbb/SQMcSX/?cache_buster=$GITHUB_RUN_NUMBER) was down:

HTTP code: 500
Response time: 4144 ms

Resolved: Cubari (imgBB) is back up in 81adad6 after 7 minutes.


text:
🛑 Cubari (Dynasty Scans) is down

In d14313c, Cubari (Dynasty Scans) (https://cubari.moe/read/dynasty/the_engagement_of_the_disgraced_witch_and_the_cross_dressing_princess/?cache_buster=$GITHUB_RUN_NUMBER) was down:

HTTP code: 500
Response time: 489 ms

Resolved: Cubari (Dynasty Scans) is back up in f5ad5e5 after 11 minutes.


text:
LSP needs restart to be up-to-date with *.ts imports

LSP needs restart to be up-to-date with *.ts imports.
If I import something from *.ts file into Vue, and then edit — LSP will show me outdated information until I restart it via command palette.

Oh, I found mention of this in README — https://github.com/vuejs/language-tools/issues/3229

Yes, upstream issue.

authors: brachkow rchl

repo: sublimelsp/LSP-volar


text:
Automated backport of #1008: Add custom vpc support in AWS cloud prepare

Backport of #1008 on release-0.17.
#1008: Add custom vpc support in AWS cloud prepare
For details on the backport process, see the backport requests page.

This was already backported by https://github.com/submariner-io/cloud-prepare/pull/1014.

authors: aswinsuryan tpantelis

repo: submariner-io/cloud-prepare


text:
browserify -r with npm installed module does not run transforms

If I try to transform a file that was installed via npm, the transform does not run. Simple example: if I want to run browserify-shim on angular, so I can do:
var angular = require('angular');

{
  "browserify": {
    "transform": [
      "browserify-shim"
    ]
  },
  "browser": {
    "angular":"./node_modules/angular/angular.js"
  },
  "browserify-shim": {
    "angular": {
      "exports": "angular"
    }
  },
  "dependencies": {
    "browserify-shim": "~3.x.x",
    "angular": "~1.3.1"
  }
}

Then I run:
npm install
browserify -r angular -o vendor.js

The transform will not run. Of course, it also happens if I do not include a browser override for angular and just let it use the npm installation directly.
I dug pretty deeply, it looks like that when it runs getTransforms() in module-deps LL429-443, the pkg that is passed is not my application's package.json (above), which has the transforms configured, but rather the package.json from angular, which of course has no transformations, since these are done for my project.

@deitch Can this be closed? I think the local-only default for transforms with the option to run globally is well documented. This will all work once Angular is well behaved.
https://github.com/angular/angular.js/pull/10732

@bendrucker it looks like the global option is a feasible workaround. Go ahead.

Not a collab, you'd need to close it :)

Oops. :-)

@deitch @bjfletcher Is there a way to specify the global flag with the package.json?

No, that's not compatible with the way Browserify works. Only transforms can be defined from the package and they specifically cannot be defined as global. Nor can plugins be set from the package.

Well, I don't have access to the code to .transform -- I'm left to either write my own buildfile (and thus not use a standard one distributed across teams), or do this:
<script>window.global = window;</script>
<script src="/main.js"></script>

That hack works, but admittedly is nasty.
Thanks -- I just thought I'd post my work-around for others as well.

authors: bendrucker codeviking deitch

repo: substack/node-browserify


text:
Compose Substrate dev resources in Chinese.

There are very rare dev resources in Chinese, also lack an entry point for local dev to get started.
I feel like we need to do something to improve the above situation. This is my current plan:

[x] Setup local dev portal in one of the top media platforms 👉 zhihu.
[x] Translate awesome-substrate 👉 PR.
[x] Compose a post for using Substrate to build first blockchain, leverage this doc 👉 post
[ ] Compose a post to build a customized blockchain, kitty or real estate, TBD.
[ ] Collect feedbacks from devs that are using Substrate.

@JoshOrndorff, before we enable the translations in circleci, I'm wondering which email account should we use to setup Crowdin account? I suggest to use a parity shared account like substrate-developer-hub@parity.com. Then the registration information of Crowdin like password can be put in a secrect sharing tool.

Summary about how to do the localization:
doc
TODO:

[x] Enable translation and localization in Docusaurus
[ ] Create Crowndin project with the proper account, it should be the admin of this repo, better not to use a personal account.
[ ] Integrate with CI, blocked by Crowndin account creation.
[ ] Discuss around version control.

@kaichaosun It seems the Chinese docs pages don't load properly.

Start the server with yarn start
Navigate to http://localhost:3000/docs/en/quickstart/getting-started
Select 中文 which takes you to http://localhost:3000/docs/zh-CN/quickstart/getting-started
See the error Cannot GET /docs/zh-CN/quickstart/getting-started

I'm guessing you already know that, but wanted to report it just in case.
Regarding what account to use, I had the same curiosity when I was setting up circleCI. The commits come from a non-account. What would it take to get crowdin set up? An actual email address? A github acocunt/?

The 404 error for Chinese doc' links is awarded. I'm considering do we want to disable the 中文 for now, and enable it once the Chinese docs are ready.
Crowdin setup can be made with an email or through a Github account.

@kaichaosun Can we reopen the remaining items as new issues and close this one? Seems like our migration to Docusaurus is pretty much done.

Sure, will do that.

authors: JoshOrndorff kaichaosun shawntabrizi

repo: substrate-developer-hub/docs


text:
Update container state change on Hub faster using host events

We need to update containers' states on Hub close to real time using host events.

Done

repo: subutai-io/base


text:
Changing callback based on the grammar of the active text editor?

Is it possible to change the callback for a button based on the grammar of the active text editor?

This issue seems related: https://github.com/suda/tool-bar/issues/192

Interesting idea. How would you propose to declare different callback s for different grammars?

One way is to just write a function that handles the changes and dispatches on separate callbacks for different grammar. This is independent of Tool-bar.

function mycallback() {
// change callback based on the grammar
}

The first way allows for more flexibility, which is currently possible anyways.

The second way is to provide another option in ButtonsOptions for different grammars, and Tool-bar dispatches on the correct callback based on the active grammar:

  toolBar.addButton({
    icon: 'octoface',
    callback: {
        grammars: {
             julia: "app:do-julia"
             python: "app:do-python"
          }
      }
  });

The second way is nicer in my opinion.

I like the idea, I don't think it would cause problems with key modifiers, personally, as I wouldn't use any other keys than shift, ctrl, etc. But of course, some people may use e.g. c.
perhaps we could make the grammar thing explicit from within the callbacks object, e.g.:
toolBar.addButton({
  icon: 'octoface',
  callback: {
    grammar: {
      julia: "app:do-julia",
      python: "app:do-python",

      // The "c" language
      c: "app:do-c-lang",
    },

    // the "c" key
    c: "app:do-c-key",
  }
});

Or distinguish grammers/languages from keys in the key name, e.g.:
toolBar.addButton({
  icon: 'octoface',
  callback: {
    // Using a "lang" or "language" prefix
    "lang-julia": "app:do-julia",
    "language-julia": "app:do-julia",

    // Using a "grammer" prefix
    "grammer-julia": "app:do-julia",

    // The you can use the "c" language
    "lang-c": "app:do-c-lang",
    // And the "c" key
    c: "app:do-c-key",
  }
});

Where only one or multiple prefixes can be supported.

My concern is about the case when someone wants to use both modifiers and grammars. We should allow this too. My example allowed this. See c language for example that has modifiers for itself.
  toolBar.addButton({
    icon: 'octoface',
	grammars: true, // enables grammars and breaks key modifiers
    callback: {
        julia: "app:do-julia",
        python: "app:do-python",
        c: {
          // now key modifiers should be under the individual grammar
          "": "app:do-c1",
          "shift": "app:do-c2"
        }
      }
  });

Another way is to just avoid doing this, and add an option to addButton itself, and have separate buttons for different grammars. This may solve https://github.com/suda/tool-bar/issues/192, since we can hide the buttons when they are not in their grammar.
  toolBar.addButton({
    icon: 'octoface',
	grammars: "julia"
    callback: "app:do-julia"
  });

My concern is about the case when someone wants to use both modifiers and grammars. We should allow this too. My example allowed this. See c language for example that has modifiers for itself (shift, when in C grammar).
  toolBar.addButton({
    icon: 'octoface',
	grammars: true, // enables grammars and breaks key modifiers.
					// now key modifiers should be under the individual grammar
    callback: {
        julia: "app:do-julia",
        python: "app:do-python",
        c: {
          "": "app:do-c1",
          "shift": "app:do-c2"
        }
      }
  });

Of course! That would be possible with all proposals so far! If you want modifiers for the grammar callback you should specify it as an object.

Another way is to just avoid doing this, and add an option to addButton itself, and have separate buttons for different grammars. This doesn't change modifiers syntax too. It allows for different class or shape for different grammars, and it can also solve #192, since we can hide the buttons when they are not in their grammar.
  toolBar.addButton({
    icon: 'octoface',
	grammar: "julia",
    callback: "app:do-julia"
  });

  toolBar.addButton({
    icon: 'octoface',
	grammar: "python",
    callback: "app:do-python"
  });

This is quite a nice solution I think, definitely the most compatible with the current API. Unfortunately it would result in some duplication that is perhaps not desirable. :thinking:

  toolBar.addButton({
    icon: 'octoface',
	grammar: "julia",
    callback: "app:do-julia"
  });

  toolBar.addButton({
    icon: 'octoface',
	grammar: "python",
    callback: "app:do-python"
  });

This is quite a nice solution I think, definitely the most compatible with the current API. Unfortunately it would result in some duplication that is perhaps not desirable. 🤔

Yes, I like this one more! Duplication could be solved by using variables.
let icon1 = 'octoface'

toolBar.addButton({
     icon: icon1
  	grammar: "julia",
     callback: "app:do-julia"
});

authors: aminya ericcornelissen suda

repo: suda/tool-bar


text:
Cleanup ESLint warnings

Cleanup ESLint warnings in the entire project

ESLint issues are fixed

repo: sudheerj/generator-jhipster-primeng


text:
Problema na home

Descrição:
Usuário ao clicar no banner recebe um erro 500

Resolvemos o problema no Pull Request #2


text:
Impose restrictions on license settings in an item based on collection settings

If the collection manager restricts the license available in a collection, then the depositor should not be able to choose a different license.
See Design Doc for the various scenarios: https://docs.google.com/document/d/1fcr2DYo7OrX-qTdeUOTWKSS1rlq_47sehESmbvgUsrk/edit#heading=h.n5g71obk0sxl
Has two impacts:

item edit/create page constrains the values available to the user based on collection values
validate values on item save

@jcoyne I'm not seeing this change either.
When the manager sets this for a particular license, that license should display in the form and there should not be any selection options. See https://docs.google.com/document/d/1fcr2DYo7OrX-qTdeUOTWKSS1rlq_47sehESmbvgUsrk/edit#heading=h.sl93mpy66z6n
When the manager sets the option for the depositor to choose, the manager must select a default license that should be chosen by default for the depositor. I'm not seeing that happening either.

@amyehodge I'm seeing required licenses enforced in stage. Example: https://sul-h2-stage.stanford.edu/works/177/edit#
Default license is NOT, though.

Weirdly I just saw the required license enforced in a different collection. I'll keep checking that to see if I can replicate that problem or not.
File a new ticket for the default?

Here's one where it isn't being imposed: https://sul-h2-stage.stanford.edu/collections/163/works/new?work_type=text
I have this collection set for CC-1.0.

Yeah, file new ticket for the default. Thanks!

@amyehodge :speech_balloon:

Here's one where it isn't being imposed: sul-h2-stage.stanford.edu/collections/163/works/new?work_type=text
I have this collection set for CC-1.0.

That collection looks like a depositor-selects one, not a required one, judging by https://sul-h2-stage.stanford.edu/collections/163/

oops. sorry @mjgiarlo You're right.

authors: amyehodge mjgiarlo peetucket

repo: sul-dlss/happy-heron


text:
Allow approval of deposits via the review workflow that are now past the embargo date set by the depositor.

The scenario here is that a student will sometimes set an embargo for a very short time in the future, like one week. By the time the deposit makes it through the review workflow and the reviewer is ready to approve it, the embargo date is now in the past. This normally causes an error that would say the embargo date can't be in the past.
Ideally what would happen in this situation in the review workflow is that when the reviewer clicks the deposit button if the embargo date is now in the past, it will just be ignored and the item will be deposited and released as if the release were set for "immediately." No information about the embargo dates set by the depositor need to be stored in the system.
Please let me know if there any questions about this.

Note: approach can be flexible to make it more efficient if complicated validation is not advisable or too time consuming -- check in with Amy when picked up to provide options if necessary.

@amyehodge in my testing, I was able to approve a deposit that had the embargo date in the past without issue.  Do we need to do anything further?

@jcoyne This came up as a known issue in Hydrus originally. Perhaps we should wait on this until #543 is completed and then I can check back on this to see if it's still working as desired.

@amyehodge I think that's a great idea. I'll put this in the backlog and assign to you.

This is working as desired now. Closing ticket.

authors: amyehodge jcoyne peetucket


text:
snippets imbrication

I wanted to use a snippet as a reference in another one.
I systematically get this exception.
Attempted to call method "isShadowLocaleEnabled" on class "Sulu\Bundle\SnippetBundle\Document\SnippetDocument"
I would like to achieve  model association in sulu. Is it possible ? how ?

can you post the related template files here?

this is the default snippet which include another snippet:
`

<key>default</key>

<meta>
    <title lang="de">Standard</title>
    <title lang="en">Default</title>
</meta>

<properties>
    <property name="title" type="text_line" mandatory="true">
        <meta>
            <title lang="de">Titel</title>
            <title lang="en">Title</title>
        </meta>

        <tag name="sulu.node.name"/>
    </property>

    <property name="snippets" type="snippet">
        <meta>
            <title lang="en">Snippets</title>
        </meta>
        <params>
            <param name="snippetType" value="auteur"/>
        </params>
    </property>

</properties>

`
and the configuration of template in pages folder:
`

<key>overview</key>

<view>ClientWebsiteBundle:templates:default</view>
<controller>SuluWebsiteBundle:Default:index</controller>
<cacheLifetime>2400</cacheLifetime>

<meta>
    <title lang="de">Standard</title>
    <title lang="en">Overview</title>
</meta>

        <properties>
            <property name="title" type="text_line" mandatory="true">
                <meta>
                    <title lang="de">Titel</title>
                    <title lang="en">Title</title>
                </meta>
                <params>
                    <param name="headline" value="true"/>
                </params>

                <tag name="sulu.rlp.part"/>
            </property>

            <property name="url" type="resource_locator" mandatory="true">
                <meta>
                    <title lang="de">Adresse</title>
                    <title lang="en">Resourcelocator</title>
                </meta>

                <tag name="sulu.rlp"/>
                <tag name="sulu.search.field" role="description"/>
            </property>

            <section name="content">
                <meta>
                    <title lang="en">Content</title>
                </meta>

                <properties>
                    <property name="snippets" type="snippet">
                        <meta>
                            <title lang="en">Snippets</title>
                        </meta>
                        <params>
                            <param name="snippetType" value="default"/>
                        </params>
                    </property>
                </properties>

            </section>
        </properties>

`

@Doum-Super we solved the problem and we will release this soon.

authors: Doum-Super wachterjohannes

repo: sulu-io/sulu-standard


text:
🛑 SISTEMA ROYAL-HOLIDAY is down

In e5a27f0, SISTEMA ROYAL-HOLIDAY (https://www.royalholiday.com.ar/reservas/admin/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SISTEMA ROYAL-HOLIDAY is back up in 458f76c.


text:
README updated

Hello,
external_js, external_css, internal_js and internal_css options were NOT implemented yet although README has explanation. So, it made users very puzzled:

External JS and CSS files not included
Problem when using static file management with django + s3
SummernoteInplaceWidget jQuery Errors Django Admin interface

I renamed them because last commit was approved:

external_js -> base_js
external_css -> base_css
internal_js -> internal_js
internal_css -> internal_css

Also, django-summernote package defines static_url() function, but users usually don't have this function in the settings.py. Therefore, I substituted it to os.path.join:
os.path.join(STATIC_URL, 'django_summernote/summernote.css'),

!!!
Of course, you may reject this PR, and  change the name of base_js relatively in accordance with README.
Thank you.

Codecov Report

Merging #219 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #219   +/-   ##
=======================================
  Coverage   96.96%   96.96%
=======================================
  Files          10       10
  Lines         198      198
=======================================
  Hits          192      192
  Misses          6        6

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 a142d12...15938ac. Read the comment docs.

authors: codecov-io pincoin

repo: summernote/django-summernote


text:
Runner upgrade to 2.276.0 failed

Runner auto-upgrade to 2.276.0  failed
2021-01-20 01:59:58Z: Listening for Jobs
Runner update in progress, do not shutdown runner.
Downloading 2.276.0 runner
Waiting for current job finish running.
Generate and execute update script.
Runner will exit shortly for update, should back online within 10 seconds.
renamed '/runner/_diag/SelfUpdate-20210120-020013.log' -> '/runner/_diag/SelfUpdate-20210120-020013.log.failed'
Runner listener exited with error code 4
Runner listener exit with undefined return code, re-launch runner in 5 seconds.
Starting Runner listener with startup type: service
Started listener process
events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: spawn /runner/bin/Runner.Listener ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:270:12)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn /runner/bin/Runner.Listener',
  path: '/runner/bin/Runner.Listener',
  spawnargs: [ 'run', '--startuptype', 'service', '--once' ]
}

@jolestar Hey! I was thinking that this might be due to #252 that can be fixed via #253. I thought I'd release it soon but had no time to test it. Could you confirm/test it if possible?

@jolestar Hey! I was thinking that this might be due to #252 that can be fixed via #253. I thought I'd release it soon but had no time to test it. Could you confirm/test it if possible?

@jolestar Hey! I was thinking that this might be due to #252 that can be fixed via #253. I thought I'd release it soon but had no time to test it. Could you confirm/test it if possible?

Ok, I try to build a new image. the latest base image is still v2.275.1 ?

@jolestar Hey! I was thinking that this might be due to #252 that can be fixed via #253. I thought I'd release it soon but had no time to test it. Could you confirm/test it if possible?

Ok, I try to build a new image. the latest base image is still v2.275.1 ?

@mumoshu  I read  #253, If I want to test it, do I just need to build a new runner image?

@mumoshu  I read  #253, If I want to test it, do I just need to build a new runner image?

@jolestar You need both runner and controller images upgraded, as the new controller code depends on the new runner image

@jolestar You need both runner and controller images upgraded, as the new controller code depends on the new runner image

@jolestar were you able to resolve the self update issue?

@jolestar were you able to resolve the self update issue?

I am hitting the same error.  I wasn't able to resolve it by creating containers using the branch in #253.  This error is blocking development work on a new CD workflow so I'm hoping to find a solution quickly.  Is there something I can do to assist testing?

I am hitting the same error.  I wasn't able to resolve it by creating containers using the branch in #253.  This error is blocking development work on a new CD workflow so I'm hoping to find a solution quickly.  Is there something I can do to assist testing?

@mumoshu Do you have an ETA on when you can incorporate these fixes into #253 for a release?  Just want to know if I need to follow @achedeuzot recommendations and make a local build or wait.

@mumoshu Do you have an ETA on when you can incorporate these fixes into #253 for a release?  Just want to know if I need to follow @achedeuzot recommendations and make a local build or wait.

Also experiencing this now

Also experiencing this now

@achedeuzot do you have your docker image available publically somewhere?

@achedeuzot do you have your docker image available publically somewhere?

Hi folks, we just tested @achedeuzot's fixes on https://github.com/hfuss/actions-runner-controller/tree/testing-self-update-fix-2.276.0 and also had success. You find the images here in the interim:

brix4dayz/actions-runner:v2.275.1
brix4dayz/actions-runner-controller:v0.16.1-prerelease

Hi folks, we just tested @achedeuzot's fixes on https://github.com/hfuss/actions-runner-controller/tree/testing-self-update-fix-2.276.0 and also had success. You find the images here in the interim:

brix4dayz/actions-runner:v2.275.1
brix4dayz/actions-runner-controller:v0.16.1-prerelease

@hfuss great
The actions-runner-controller image needs to be replaced with the image found in  https://github.com/summerwind/actions-runner-controller/releases/latest/download/actions-runner-controller.yaml is that right?

@hfuss great
The actions-runner-controller image needs to be replaced with the image found in  https://github.com/summerwind/actions-runner-controller/releases/latest/download/actions-runner-controller.yaml is that right?

@kaykhancheckpoint correct!

@kaykhancheckpoint correct!

2.276.0 is not compatible with GitHub Enterprise Server - see https://github.com/actions/runner/pull/896#issuecomment-764016208
I would recommend upgrading to the latest version: https://github.com/actions/runner/pull/931

2.276.0 is not compatible with GitHub Enterprise Server - see https://github.com/actions/runner/pull/896#issuecomment-764016208
I would recommend upgrading to the latest version: https://github.com/actions/runner/pull/931

I've updated actions-runner-controller to v0.16.1 and it works well. I manually deleted the old runners and the controller automatically created new runners. Thank you for the great work.

I've updated actions-runner-controller to v0.16.1 and it works well. I manually deleted the old runners and the controller automatically created new runners. Thank you for the great work.

Just a quick note on this - we noticed that the deployment for the controller has an image pull policy of "IfNotPresent", which doesn't update the image if it already exists. This has caused issues for us after merging this fix, and we had to make it pull again for this fix to work (since the old controller still created an emptyDir of '/runner/externals', crashing the update).

Just a quick note on this - we noticed that the deployment for the controller has an image pull policy of "IfNotPresent", which doesn't update the image if it already exists. This has caused issues for us after merging this fix, and we had to make it pull again for this fix to work (since the old controller still created an emptyDir of '/runner/externals', crashing the update).

authors: e36-cicd hfuss int128 jolestar jonico kaykhancheckpoint mumoshu shadiramadan terry-yolabs

repo: summerwind/actions-runner-controller


text:
FR: Allow 'self' return type to allow return type changing with inheritance

When annotating that one class has inherited from another, there is currently no way to annotate a function that returns it's current type that the current type should change when the class is inherited. Something along these lines, or something that accomplishes the same goal would be fantastic.
---@class Foo
Foo = {}

---@return self    --<-- 'self' refers to Foo so Foo.new() returns Foo
function Foo.new() end

---@class Bar : Foo
Bar = {}

local b = Bar.new() --<-- Bar.new() is inherited so the 'self' return type is now Bar
-- b should now be type Bar

Thanks!

This is a bit of a hacky way around this for now:
---@class Foo
Foo = {}

---@return Foo
function Foo.new() end

---@class Bar : Foo
---@field new fun(): Bar
Bar = {}

local b = Bar.new()

By assigning the @field of new to a function that returns Bar, we are able to overwrite the return type.

By assigning the @field of new to a function that returns Bar, we are able to overwrite the return type.

Thanks, that's definitely a lot better doing that once at the definition rather than casting and overriding warnings when creating objects.

The generic inheritance has not been implemented for the time being.

authors: carsakiller paul-reilly sumneko

repo: sumneko/lua-language-server


text:
Table of contents

Branch
master?
Guide
N/A
Operating system and version
N/A
Description
Hi! :)
Not sure if this should go in Issues as a suggestion or just a thread in discussions 🤷
This is a suggestion that came to mind while checking out some of the guides. I noticed it would be helpful to be able to preview the list of steps and click on of them to scroll down to that one. The use case I imagine is coming back to a guide in the future, having memorized some of the steps, but maybe wanting to copy and paste some commands or reread an instruction. Having a table of contents at the beginning of the page would facilitate that kind of interaction. The main downside I see is adding a bit of cruft to the otherwise pretty minimal interface. I could imagine this being a downside from an aesthetic perspective.
Just thought I'd write it down somewhere before forgetting about it!

Hey @kareniel, thanks for the suggestion.
I am happy to report suggestion has been finally implemented!
Example: https://sunknudsen.com/privacy-guides/how-to-generate-and-air-gap-pgp-private-keys-using-gnupg-tails-and-yubikey
Thanks for being part of the privacy guides community.

authors: kareniel sunknudsen

repo: sunknudsen/privacy-guides


text:
Version. 3.8.0 (26246)防撤回失效+1

看到了前面也有人失效了，等待作者大大失效

一样 重新安装 也是不行

确实没用了

确实，无奈退回了3.7

退回3.4，防撤回还是不行啊

确实，无奈退回了3.7

兄弟  还有3.7的安装包没，求发一个

失效+1

失效就失效，还要每人都说一遍吗？等更新就完了

为啥重装老版本也不行呢

版本

为啥重装老版本也不行呢

可以，我重装了3.7.1可以了

+1

版本

为啥重装老版本也不行呢

可以，我重装了3.7.1可以了

不知道为啥我反复重装也不好用

如果更新了，请@我，谢谢

失效就失效，还要每人都说一遍吗？等更新就完了

说的好啊  来个人就说一遍

+1

1.3.5 版本已更新支持

authors: Pyramiding Ran-Xing char1eslu difoi heshangcode hyndaniel ivoidcat langwuzhe lifedever liumumu666 shubibin sunnyyoung tedonggo

repo: sunnyyoung/WeChatTweak-macOS