Find in folder doesn't work

Issue Type: Bug
"Find in folder" doesn't work. It just find in files, which are opening, not with all files in the folder
VS Code version: Code 1.21.1 (79b44aa704ce542d8ca4a3cc44cfca566e7720f1, 2018-03-14T14:47:13.351Z)
OS version: Windows_NT ia32 10.0.16299

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz (8 x 2712)

Memory (System)
15.60GB (7.29GB free)

Process Argv
C:\Program Files (x86)\Microsoft VS Code\Code.exe

Screen Reader
no

VM
33%

Extensions (30)

Extension
Author (truncated)
Version

project-manager
ale
0.25.0

alignment
ann
0.3.0

scanner-js-twain-wia-javascript-browser-scan
asp
2.0.2

vscode-database
baj
1.5.1

path-intellisense
chr
1.4.2

open-html-in-browser
cod
0.1.21

compulim-vscode-dictionary
Com
0.0.5

cake-cored
Crh
1.1.2

vue-peek
dar
1.0.2

githistory
don
0.4.0

jquerysnippets
don
0.0.1

gitlens
eam
8.1.1

php-intellisense
fel
2.3.0

auto-close-tag
for
0.5.6

auto-rename-tag
for
0.0.15

code-runner
for
0.9.3

vue-snippets
hol
0.1.5

beautify
Hoo
1.3.0

minify
Hoo
0.3.0

html-tag-wrapper
hwe
0.2.3

sftp
lix
1.1.4

Go
luk
0.6.77

sqltools
mtx
0.12.1

php-docblocker
nei
1.3.3

vetur
oct
0.11.7

vscode-code-outline
pat
0.0.13

subtle-brackets
raf
2.1.0

pdf
tom
0.2.0

vscode-wakatime
Wak
1.1.26

change-case
wma
1.0.0

(1 theme extensions excluded)

Reproduces only with extensions

Does it work when a different folder is open?
Are the missing files covered by search.exclude settings or .gitignore files?

Hi, @roblourens
There aren't missing files covered by search.exclude settings or .gitignore files.
It works when a different folder is open.
This bug sometimes happens, not always.  As I see, It happens when I using "split editors" and close other files

It works when a different folder is open.

If so, are you sure there aren't exclude settings involved? You can double check by toggling off the "Use Exclude Settings and Ignore Files" button (bottom right)

I can reproduce this issue consistently within a workspace. Only files that are opened are searched, instead of the expected behavior of all files on disk within the search scope. The exclude filter and "search.exclude" are not involved. Turning ripgrep on/off does not make a difference.


feat: add skywalking trace

What this PR does:
add skywalking tracer
Which issue(s) this PR fixes:

#310
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Thanks !
I just changed the config_stores in config.json  to config_store

Got an error when running the demo:

It seems that the main.go forgot to import grpcmetric package. I will help fix it

fixed.
Besides, I modified the document and added it to the sidebar


Expose next and previous event

I need to listen to the event when we execute marker.next(); and marker.prev(); and obtain the data from travel marker.
Do you still accept contribution? I would love to contribute to this feature.

I have submitted a PR


Fix #32: Write to characteristic stuck forever in tests

Fix #32: Write to characteristic stuck forever in tests

[celebrate]     Aryal, Himali reacted to your message:

From: Sylwester Zieliński @.>
Sent: Wednesday, November 8, 2023 8:19:39 AM
To: NordicSemiconductor/Kotlin-BLE-Library @.>
Cc: Aryal, Himali @.>; Review requested @.>
Subject: Re: [NordicSemiconductor/Kotlin-BLE-Library] Fix #32: Write to characteristic stuck forever in tests (PR #67)
Merged #67https://github.com/NordicSemiconductor/Kotlin-BLE-Library/pull/67 into main.
—
Reply to this email directly, view it on GitHubhttps://github.com/NordicSemiconductor/Kotlin-BLE-Library/pull/67#event-10897161161, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ATVH47SHZNJ3RNQONHAJ5MDYDM6BXAVCNFSM6AAAAAA7CNPCNGVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJQHA4TOMJWGEYTMMI.
You are receiving this because your review was requested.Message ID: @.***>


Support arbitrary secrets

Allow defining secrets in the application that can be referred to in serverside bindings. e.g. I define a secret myGithubApiKey and then in serverside bindings I can use it e.g. in a header as `${secrets.myGithubApiKey.value}`.
Secrets are encrypted in the database and never loaded on the frontend in unencrypted form.
Note: perhaps we should even keep the secret value outside of the application dom and have that injected during deploys. That way we could set up multiple environments

Should be done after UI/UX revamp.

We'll take a different approch.


RES-84 # Improve Nuclei CI interface

Modify goflags not to automatically sort the CLI arguments, so that they can be displayed in order of importance

Ordered comparison (left is original - right is after the modifications):

Insertion order honored:

lgtm. Merging!


Apia hub

copied over the index.html from the Perth hub and made edits for the Apia hub - hope this is ok

Absolutely! Open source rules :)
On Fri, 2 Oct 2020, 7:38 am tavitas<EMAIL_ADDRESS>wrote:

copied over the index.html from the Perth hub and made edits for the Apia
hub - hope this is ok
You can view, comment on, or merge this pull request online at:
https://github.com/foss4g-oceania/foss4g-sotm-oceania-2020/pull/54
Commit Summary

added more details to apia hub
added more details to apia hub
added more details to apia hub
added more details to apia hub

File Changes

M _includes/map.html
https://github.com/foss4g-oceania/foss4g-sotm-oceania-2020/pull/54/files#diff-d3c2e946ec901f8cbc3bf88b601f9a14
(27)
A hubs/apia/index.html
https://github.com/foss4g-oceania/foss4g-sotm-oceania-2020/pull/54/files#diff-28ca3a3341615f864e6325ae33fea643
(460)
D hubs/apia/index.md
https://github.com/foss4g-oceania/foss4g-sotm-oceania-2020/pull/54/files#diff-0ca9ad6976754b91d55f1d4d7867f147
(33)
A logos/apia/inform_logo.png
https://github.com/foss4g-oceania/foss4g-sotm-oceania-2020/pull/54/files#diff-265a1f47cdeaf3be48c482ec741bacb9
(0)
A logos/apia/sprep_logo.png
https://github.com/foss4g-oceania/foss4g-sotm-oceania-2020/pull/54/files#diff-e63d34262595d8899a7b2cb996a2fc09
(0)

Patch Links:

https://github.com/foss4g-oceania/foss4g-sotm-oceania-2020/pull/54.patch
https://github.com/foss4g-oceania/foss4g-sotm-oceania-2020/pull/54.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/foss4g-oceania/foss4g-sotm-oceania-2020/pull/54, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIMWOEXQMOSIYCSSKT7T2DSIUHITANCNFSM4SBBX6EA
.

Fixed!


Added Google Authentication

Issue that this pull request solves
Closes: #167
Proposed changes
Add Google Authentication/Login
Brief description of what is fixed or changed
Added Google Authentication/Login
Types of changes
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update (Documentation content changed)
[ ] Other (please describe):

Checklist
Put an x in the boxes that apply

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] My changes does not break the current system and it passes all the current test cases.

Screenshots
Please attach the screenshots of the changes made in case of change in user interface
Other information
Any other information that is important to this pull request

This new package works only for Angular 9+ versions while we are using 8 version.


Salmon Run NW shows poorly on iPad

The first column takes up all the width of the page, while the other columns are stacked on top of each other.

I found remove these two lines make it work on iPad. Maybe the version of Safari on iPad is too low to support complex calc expressions.
https://github.com/fetus-hina/stat.ink/blob/5560376141ae4e28bc6b908e0151d87acb26839d/resources/stat.ink/salmon-players.scss#L19
https://github.com/fetus-hina/stat.ink/blob/5560376141ae4e28bc6b908e0151d87acb26839d/resources/stat.ink/salmon-waves.scss#L21
I think in a fixed table-layout, the remaining th width should not be necessary (because there is width: 100% on the table).
iPadOS Version: 16.1.1(20B101)

I have no Apple devices, so I didn't and couldn't check with them.
However, I think it is a big problem when those devices display so badly.
I'm currently working on a mitigation plan until this is resolved.

I can confirm that it has been fixed, thanks


juno ignores template_root

I've set template_root to an absolute path (e.g. template_root="/Users/psy/repos/hg/xyz/templates/"), but jinja complains with "jinja2.exceptions.TemplateNotFound".
I should note, that I'm starting the juno script in the shell via symlink. Means my cwd is not the same directory the template folder is in. If I cd into the project folder, where the template folder resides, jinja finds the templates, regardless of what template_root is set to. Even if there is a nonsense path set.

Closing because this seems to be abandoned.


fix #4041, warn overriding Vue's internal methods

@yyx990803 As discussed on Slack, this commit only solves half of the problem, as it doesn't cover the properties, which can be more tricky.

Doesn't a simple key in vm work just fine?
On Saturday, November 5, 2016, (´・ω・｀<EMAIL_ADDRESS>wrote:

@HerringtonDarkholme commented on this pull request.
In src/core/instance/state.js https://github.com/vuejs/vue/pull/4111:

       `method "${key}" has an undefined value in the component definition. ` +

       `Did you reference the function correctly?`,
       vm
     )

   hasOwn(BuiltinVue.prototype, key) && warn(

Hi, I also considered that approach when coding this. But if we use vm or
vm.constructor.prototype, it will break constructor style instance
because $emit or so isn't their own properties.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/vuejs/vue/pull/4111, or mute the thread
https://github.com/notifications/unsubscribe-auth/AHrt0uN6VSZW78hdY5wLzpaeLaHGzX7tks5q6-4jgaJpZM4KpNci
.

I'm sorry that this change introduced more problems than it resolved.
As @phanan pointed out, only method is warned against. Also https://github.com/vuejs/vue/issues/4142 is another problem caused by this.
I have reconsidered this. We want to only warn against overriding built-in method. And using key in vm to detect that effectively means:

vm only has properties inherited from Vue.prototype. This is guaranteed by Vue's core code, where extending is done by option merging.
Vue.prototype does not have user defined method. This is not controlled by core code, as #4142 showed.

@phanan Could you tell me the tricky part of properties? I'm not on slack.

@HerringtonDarkholme: @yyx990803 should have a better answer because he knows best about the framework's internal obviously, but from what I can tell, not all properties have been registered by the time methods are collected (examples are $el and $slots). This would make a check during initMethods() incomplete and was what keeping me from sending a PR over.

Yes, I just tried to fix this again and found warning is particularly tricky thing. More importantly, a _ and $ prefix have been strong indicators to users. The marginal benefit for this pr doesn't worth...

I'll just revert this for now - I think this is a very rare case anyway. Or, we can simply change it to warn against any method that starts with $ or _, since this is conventionally reserved for internal and plugin methods/properties.

Agreed. This "improvement" has only been costing us time with no particular benefits to start with :)


Exclude el-api and interceptor-api from cdi-api

We should generally be using the JBoss Spec Jars. These excluded
deps does not seem to be needed, so there is no replacement
for those at this point.
@mbarkley WDYT about this? The other option would be to make it <scope>provided</scope>, as I guess we could assume the CDI will be provided by the application server?

@psiroky Setting the cdi-api jar to provided scope would be a pain since it needs to be on the classpath of a webapp during GWT compilation.
I think this change is fine, but I want to take a closer look later before I merge this.


AddressSanitizer: heap-buffer-overflow in crc_folding.c:333

==1907==AddressSanitizer Init done
/Users/runner/runners/2.159.0/work/zlib-ng/zlib-ng/arch/x86/crc_folding.c:252:20: runtime error: unsigned integer overflow: 0 -<PHONE_NUMBER> cannot be represented in type 'unsigned long'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/runner/runners/2.159.0/work/zlib-ng/zlib-ng/arch/x86/crc_folding.c:252:20 in
=================================================================
==1907==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x00010a1ccda0 at pc 0x000106752bbe bp 0x7ffee95d5b90 sp 0x7ffee95d5b88
READ of size 16 at 0x00010a1ccda0 thread T0
    #0 0x106752bbd in crc_fold_copy crc_folding.c:333
    #1 0x10663ecd6 in copy_with_crc crc32.c:212
    #2 0x10668d0fe in read_buf deflate.c:1202
    #3 0x10674a232 in fill_window_sse fill_window_sse.c:78
    #4 0x1066a2c10 in deflate_medium deflate_medium.c:217
    #5 0x106663326 in zng_deflate deflate.c:1035
    #6 0x10677c1bc in gz_comp gzwrite.c:115
    #7 0x1067734e1 in gz_write gzwrite.c:214
    #8 0x10677198f in zng_gzwrite gzwrite.c:245
    #9 0x10662cd25 in test_gzio_deflate_inflate example.c:286
    #10 0x106637f82 in main example.c:1495
    #11 0x7fff5c1783d4 in start (libdyld.dylib:x86_64+0x163d4)

0x00010a1ccda3 is located 0 bytes to the right of 419235-byte region [0x00010a166800,0x00010a1ccda3)
2019-10-11T22:36:48.2287670Z allocated by thread T0 here:
2019-10-11T22:36:48.2287830Z     #0 0x1068cf143 in wrap_malloc (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x59143)
2019-10-11T22:36:48.2287990Z     #1 0x10662c93f in test_gzio_deflate_inflate example.c:245
2019-10-11T22:36:48.2288130Z     #2 0x106637f82 in main example.c:1495
2019-10-11T22:36:48.2288270Z     #3 0x7fff5c1783d4 in start (libdyld.dylib:x86_64+0x163d4)
2019-10-11T22:36:48.2288350Z
2019-10-11T22:36:48.2288910Z SUMMARY: AddressSanitizer: heap-buffer-overflow crc_folding.c:333 in crc_fold_copy

This can be reproduced in my improvements/added-codecov branch. It fails on crc_fold_copy.c line 333 at which point len = 3. At the top of the function len is an odd number. Here is the GitHub Actions build that it fails on https://github.com/nmoinvaz/zlib-ng/runs/257248230.

This may be related:
gzio() test/data/lcet10.txt mode : zlib-ng\arch\x86\crc_folding.c:252:20: runtime error: unsigned integer overflow: 0 - 10248136 cannot be represented in type 'unsigned int'
OK


Port httpsig to use pyca's Cryptography rather than PyCrypto

This changes httpsig to use Cryptography (cryptography.io) instead of PyCrypto. It means it fully supports PyPy/PyPy3, as well as Python 3.4 officially.

Hmm. Since this might disrupt things, I'll release it as httpsig_cffi instead.


OpenBLAS uses too many make processes while building

While installing Julia 0.4.5 on Stampede at TACC, I received this message from the system administrators:
You are still running too many tasks in the make, please
STOP performing so many compile tasks at one time, you
are causing excessive load on the logins.  Thanks, TACC Admins
eschnett 18646 18633  0 12:07 pts/366  00:00:00 make -j4
eschnett 33142  9819  1 12:16 pts/366  00:00:00 make -j 16 GOTOBLAS_MAKEFILE= -C kernel TARGET_CORE=NEHALEM kernel

It seems the problem occurred while Julia was building OpenBLAS. It also seems that OpenBLAS builds with 16 processes (the number of cores on the login node), although I told Julia to use at most 4 processes (see the first make line quoted above).
Using many processes is fine when building on a laptop or private workstation, but on shared resources, one needs to be less possessive.
It seems that these lines in OpenBLAS's getarch.c are responsible for this:
#if NO_PARALLEL_MAKE==1
    printf("MAKE += -j 1\n");
#else
#ifndef OS_WINDOWS
    printf("MAKE += -j %d\n", get_num_cores());
#endif

Is there a chance that OpenBLAS could not add a -j option if MFLAGS already contains one?

Which version of OpenBLAS are you building ? Checking the commit history of getarch.c one finds that
a parameter MAKE_NB_JOBS was added to Makefile.rule (and getarch.c of course) on 28 Dec 2015 (which would mean after 0.2.15, but latest is 0.2.17 already)

This is apparently OpenBLAS 0.2.15. (I thought before that it was the tip of the development branch.) I'll check 0.2.17.

0.2.17 still doesn't quite do the right thing. It is possible to manually choose the number of processes, but what I'm looking for is honouring the user's -j option.
This patch does the trick for me:
diff --git a/Makefile.system b/Makefile.system
index b89f60e..2dbdad0 100644
--- a/Makefile.system
+++ b/Makefile.system
@@ -139,6 +139,10 @@ NO_PARALLEL_MAKE=0
 endif
 GETARCH_FLAGS  += -DNO_PARALLEL_MAKE=$(NO_PARALLEL_MAKE)

+ifdef MAKE_NO_J
+GETARCH_FLAGS += -DMAKE_NO_J=$(MAKE_NO_J)
+endif
+
 ifdef MAKE_NB_JOBS
 GETARCH_FLAGS += -DMAKE_NB_JOBS=$(MAKE_NB_JOBS)
 endif
diff --git a/getarch.c b/getarch.c
index f9c49e6..dffad70 100644
--- a/getarch.c
+++ b/getarch.c
@@ -1012,6 +1012,7 @@ int main(int argc, char *argv[]){
 #endif
 #endif

+#ifndef MAKE_NO_J
 #ifdef MAKE_NB_JOBS
     printf("MAKE += -j %d\n", MAKE_NB_JOBS);
 #elif NO_PARALLEL_MAKE==1
@@ -1021,6 +1022,7 @@ int main(int argc, char *argv[]){
     printf("MAKE += -j %d\n", get_num_cores());
 #endif
 #endif
+#endif

     break;

This introduces a new make option MAKE_NO_J, that ensures that no -j N option is added to the make command. This makes make honour what the user specified.

Would be more practical to ask julia to add something to OPENBLAS_BUILD_OPTS to obey own make job count...

I want to call make without any -j options, because this way, make will communicate with all other make commands currently running to build Julia, and will globally ensure that at most 4 processes are running at one time. If I build OpenBLAS explicitly with make -j4, then there will be 4 make processes for OpenBLAS, plus up to three for other parts of Julia.
I'd like to be able to do that, but if OpenBLAS unconditionally adds a -j option I can't.
I'm not choosing any particular build options for OpenBLAS. I expect this to build a generic version that supports a large number of Intel CPU architectures.

@eschnett ,
@jeromerobert  submitted the patch about make MAKE_NB_JOBS=0 to delete -j in OpenBLAS.


Add to the README more required dependencies

To compile C in this project, zig uses files from Visual Studio Build Tools and Windows SDK
Reason it requires these is because the compile target is msvc and also the project uses the Windows API calls so the Windows SDK is needed anyway.
Zig does come with built in targets for Windows as well, but the MSVC target depends on Visual Studio.

Merged. Thanks!


Lock Ownership Model

Use Case
I'm trying to do is use the LockManager, to create a lock, and pass it to a tokio channel.
Something like
let entry: T;
let lockManager = LockManager::new();
let lock = lockManager.lock();
channel.send( (entry, lock) );

Issue
However rust is complaining that the lockManager will go out of scope. So I tried to send both the lockManager and the lock through the channel.
Changing the logic to
let entry: T;
let lockManager = Arc::new(LockManager::new());
let lock: Lock<'_> = lockManager.lock(..., ...);
channel.send( (entry, lock) );

does not work.
Proposed Change
I think the developer experience could be improved if you did something like this:
pub struct Lock<'a> {
    /// The resource to lock. Will be used as the key in Redis.
    pub resource: Vec<u8>,
    /// The value for this lock.
    pub val: Vec<u8>,
    /// Time the lock is still valid.
    /// Should only be slightly smaller than the requested TTL.
    pub validity_time: usize,
    /// Used to limit the lifetime of a lock to its lock manager.
    pub lock_manager: Arc<LockManagerInner>,
}

pub struct LockManagerInner {
...
}

pub struct LockManager {
   pub lock_manager: Arc<LockManagerInner>
}

This would allow a channel responsible for creating locks, a channel for doing other stuff, and a channel for closing locks to be represented clearly without having to worry about lifetimes.
This is the pattern that the mongo driver for rust uses & it moves the complexity from the user to the crate.
Would you welcome a PR for this change?

hi, i'm trying to better understand. can you provide a fully reproducible code sample of the issue you're encountering? this code compiles fine
use rslock::LockManager;
use tokio::sync::mpsc;

#[tokio::main]
async fn main() {
    // Example entry type
    let entry: String = "example_entry".to_string();

    // Initialize your LockManager
    let lock_manager = LockManager::new(vec!["redis://<IP_ADDRESS>:6379"]);

    // Acquire the lock
    let lock = lock_manager.lock(b"resource", 1000).await.unwrap();

    // Send the lock and entry through the channel
    let (tx, mut rx) = mpsc::channel(32);
    tx.send((entry, lock)).await.unwrap();

    // Retrieve from channel and use
    if let Some((entry, lock)) = rx.recv().await {
        println!(
            "Got entry: {} with lock for resource: {:?}",
            entry, lock.resource
        );
    }
}

I'm ingesting data from a Kafka topic, represented as a channel in Rust and need to acquire a lock on the given value, before modifying the value in redis/db, while still allowing other values to be processed concurrently.
In my production code, the function signature is a bit convoluted:
async fn stream<T: DeserializeOwned + Send + Sync + 'static + Debug + Clone>(mut receiver: Receiver<T>, ...) {}

When I looked at your example, I thought the issue might have been the static lifetime requirement for T, but my simpler example is still throwing lifetime errors:
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
struct ExampleStruct {
//Random data
}

async fn stream(mut receiver: Receiver<ExampleStruct>, lock_manager: LockManager) {
       //channel will be consumed by another spawned tokio thread, omitted for clarity
       let (tx, mut rx) = mpsc::channel(32);
        loop {
            match receiver.recv().await {
                Some(e) => {
                    let lock_managed = lock_manager.clone();
                    let sending = tx.clone();

                    tokio::spawn(async move {
                        let l = lock_managed.lock(b"key", 10).await;
                        sending.send( (e, l) );
                    });

                }
                None => {}
            }
        }
    }

This is similar to what I'm going for and this is the error I get:
error[E0597]: `lock_managed` does not live long enough
let lock_managed = lock_manager.clone();
    |                         ------------ binding `lock_managed` declared here
    |                     let sending = tx.clone();
    |                         ------- lifetime `'1` appears in the type of `sending`
    |                     tokio::spawn(async move {
    |                         let l = lock_managed.lock(b"key", 10).await;
    |                                 ^^^^^^^^^^^^ borrowed value does not live long enough
    |                         sending.send( (e, l));
    |                         ---------------------- argument requires that `lock_managed` is borrowed for `'1`
    |                     });
    |                     - `lock_managed` dropped here while still borrowed

sorry for the delayed reply. @65001 this does seem like a nice dx improvement. i would welcome a PR for this, feel free to reach out if you have any questions

@hexcowboy I tried a couple of ways, but I kept running into interior mutability issues that I couldn't figure out how to solve without reaching for RefCell or a very large rewrite.
However I think this issue, can also be solved by making the Lock have an optional reference to LockManager.
In your tokio-comp code, you don't use the drop, so there's no need for Lock to have a reference back to LockManager. I copy and pasted the code and made those changes, which I also think solve the issue.
If you think there's a chance that the issue could come up in the async-std version, I can make a function that returns that type of lock, all the time.
I tested the code with both feature flags, and it seems to work fine. I made a PR: https://github.com/hexcowboy/rslock/pull/20

seems like there was an attempt to implement here https://github.com/hexcowboy/rslock/pull/20
closing this now as i'm not convinced this will solve the issue described

I created a pr #22 that resolve this issure.
But I found that Lock can be cloned. If one thread clone it and send it to an other thread, one thread might think it still locked while it has been unlocked in the other thread. Should this be concerned? Maybe just remove the Clone derive?

@mtfcd Having the lock manager produce a Arc would or Arc<tokio::sync::RwLock> would solve the issue of a thread believing its locked while another believes it's unlocked?

Actually, unlock one lock twice in the same thread is also possible. because unlocking it only takes a &lock. So I wonder if it's intentional that the author want it can be unlocked multiple times.

@mtfcd It does not seem to me that Lock being Clone is intentional. In both a single and multi thread application it may not be harmful unless the application logic depends on all threads knowing that the lock is freed.
It would be good to remove Clone from Lock. It would also be good to track the lock state. I would suggest an AtomicBool over RwLock for this.
If you could add these changes to your PR I think this issue could be resolved.

@hexcowboy  Added new commits as you suggested. But I'm not sure if this is the right way: is_freed is only set after unlock is called. I considerd also set it using expire time. But the time will alway be inaccurate due to network latency with redis server. Any other suggestions?

https://github.com/hexcowboy/rslock/releases/tag/v0.5.0


Write temp files to /tmp

As suggested by @lucabarze in https://github.com/driverdan/node-XMLHttpRequest/issues/145 this fix should fix the problem we have when using sync requests on AWS Lambda.

checkout https://www.npmjs.com/package/xmlhttprequest-ts - i added your pull request


Last Legs

This ties up some of the last bits of functionality:

Wraps camera property getters
Reshapes frames into an image

Remaing work:

Wrap control Setters
Make frame size detected + automatic


Expand README

This commit expands on the README by explaining what is required for a
functional email alert signup page, the App's dependencies,
nomenclature, startup and how to run the test suite. I've also added a
screenshot to show what an email-alert-signup page looks like.

:+1: Good work on using the README standard as well.


Increase docker swarm certificates validity date

The default is 3 months. What should be the new value ? 1/5/10 years ?

I couldn't reproduce the faulty scenario where upon a machine reboot, the swarm certificates would not be renewed.
Nevertheless, I think it's find to increase the default validity for these certificates. I'd propose one of the following:

6 months to 1 year validity, and let Docker rotate them when they expire
or
10 years validity, but implement a periodic task (in Nuvla or within the NuvlaBox system-manager), to force rotate them every 6 months

@schaubl feel free to create a new ticket with whatever option you feel is more secure/appropriate


Get.context  Unhandled Exception: No Overlay widget found.

Describe the bug
I am using getx.
toastification.showCustom(
  context: context,
  autoCloseDuration: const Duration(seconds: 5),
  alignment: alignment ?? Alignment.topCenter,
  animationDuration: Duration(milliseconds: 400),
  builder: (BuildContext context, ToastificationItem holder) {
    return child;
  },
);

showCustom need to provide a context paramete.
I used the Get.context in getx!, But it reported wrong.
E/flutter (20377): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: No Overlay widget found.
E/flutter (20377): Some widgets require an Overlay widget ancestor for correct operation.
E/flutter (20377): The most common way to add an Overlay to an application is to include a MaterialApp, CupertinoApp or Navigator widget in the runApp() call.
E/flutter (20377): The context from which that widget was searching for an overlay was:
E/flutter (20377):   Navigator-[LabeledGlobalKey#7a7dd Key Created by default]
E/flutter (20377): #0      Overlay.of. (package:flutter/src/widgets/overlay.dart:487:9)
E/flutter (20377): #1      Overlay.of (package:flutter/src/widgets/overlay.dart:490:6)
E/flutter (20377): #2      ToastificationManager._createNotificationHolder (package:toastification/src/core/toastification_manager.dart:192:45)
E/flutter (20377): #3      ToastificationManager.showCustom (package:toastification/src/core/toastification_manager.dart:59:7)
E/flutter (20377): #4      Toastification.showCustom (package:toastification/src/core/toastification.dart:138:20)
E/flutter (20377): #5      CustomToast._commonCustom (package:share_cards_flutter/shared/util/ToastUtil.dart:94:20)
E/flutter (20377): #6      CustomToast.showStatusSuccess (package:share_cards_flutter/shared/util/ToastUtil.dart:132:5)
E/flutter (20377): #7      PictureCardController.saveImgToGallery (package:share_cards_flutter/app/modules/picture_card/controllers/picture_card_controller.dart:164:19)
E/flutter (20377):
My Main method is as follows：
class AppMain extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetMaterialApp(
debugShowCheckedModeBanner: false,
title: "ShareCards",
initialRoute: AppPages.INITIAL,
getPages: AppPages.routes,
theme: ThemeData.light(),
darkTheme: ThemeData.dark(),
themeMode: ThemeMode.system,
);
}
}

Hi @disonwei
I'm not a GetX user, so I'm not sure about this issue.
But I think you can send a navigator key to GetMaterialApp and use that to get the overlay context.
https://github.com/jonataslaw/getx/blob/499b4a2be24a3cc6c19845573b56e37f66f33ca4/lib/get_navigation/src/root/get_material_app.dart#L10
and you can use the navigator key to get the context like this:
    final context = navigatorKey.currentState.context;

@disonwei just use
BuildContext context = Get.overlayContext!;


[bug]: Extremely low image quality on some models

Is there an existing issue for this problem?

[X] I have searched the existing issues

Operating system
Windows
GPU vendor
Nvidia (CUDA)
GPU model
GTX 1070
GPU VRAM
8GB
Version number
4.1.0
Browser
Chrome 124.0.6367.61
Python dependencies
{
"accelerate": "0.29.2",
"compel": "2.0.2",
"cuda": "12.1",
"diffusers": "0.27.2",
"numpy": "1.26.4",
"opencv": "<IP_ADDRESS>",
"onnx": "1.15.0",
"pillow": "10.3.0",
"python": "3.11.7",
"torch": "2.2.2+cu121",
"torchvision": "0.17.2+cu121",
"transformers": "4.39.3",
"xformers": "0.0.25.post1"
}
What happened
When using some models, image quality is incredibly poor. The models I have encountered this with worked on a previous version of InvokeAI fine (unsure of version, definitely 3.x). However, I reinstalled and updated to the latest version today and these models stopped functioning properly.
Example images provided both had a prompt of solely 'fox, portrait' at 512x512 using DPM++ 2M Karras at 40 steps, CFG 7.5, default VAE.
The first is using easyfluff_5000DefaultvaeFFR3CS2 (easily searched for as 'easyfluff'), the second is using yiffymix_v43. Both were pointed at their appropriate config file and checked using both epsilon and v_prediction, both were also tested as both a checkpoint and a diffusers model.

What you expected to happen
I had expected these models to work as they previously did. For example, this is one using the yiffymix_v43 two days ago.

How to reproduce the problem
Using version 4.1.0, download either yiffymix_v43 or easyfluff_5000DefaultvaeFFR3CS2 and attempt to generate any image at all.
Additional context
I should note that using any of the starter models listed in this version of invoke, such as Deliberate_v5, works absolutely fine. I have also redownloaded all the models and associated files that are having this issue to ensure they haven't mysteriously become corrupted or somesuch at the same time as the update.
Discord username
jantdarvus

Yikes!

For example, this is one using the yiffymix_v43 two days ago.

To clarify: Were you still on 3.x two days ago?
I believe this is the model: https://civitai.com/models/129996/easyfluff
Based on the description there, this model uses v-prediction. I noticed a couple issues in our handling:

We aren't correctly determining checkpoint scheduler prediction on import, so the model is set as epsilon.
When you go and change it to v-pred, it doesn't change the config file path, which is required to convert the model to diffusers and use it.
Even if you manually fix the config file path, if the model was converted once before, it will not be converted again. The diffusers conversion cache must be emptied to trigger the conversion again.

Once I manually fix the config file path (stable-diffusion/v1-inference-v.yaml is the correct value) and delete the model conversion cache, I get better images. Using CLIP Skip 2 and CFG Rescale 0.7 per the model page:

So no longer totally broken, but still not right. They all have this grainy look. I tried enabling upcast_attention, which I think is related to v-pred and re-converting - this didn't seem to change anything.
At this point, I'm not sure how to proceed further.
@lstein Any ideas for fixing the root issue?
I think there are clear solutions for each of the 3 issues I noted:

Figure out how to determine the prediction type from the state dict for SD1. Right now, it doesn't try, jsut defaults to epsilon. I don't know how to do this.
Do not hardcode the ckpt config file paths unless the user explicitly sets it. When we convert, if there is no config file path, we determine the right config file using the same logic the probe uses.
Invalidate the ckpt conversion cache if a change to a model record means it would convert differently. We could simply invalidate the conversion cache on any model config change. I think that is reasonable, though it is less efficient.

No, I didn't notice there was a config file provided. Unfortunately, using it doesn't change the outputs - still grainy. I made sure to re-convert the model.
In v3, we used the diffusers ckpt conversion logic with some fixes. Those fixes were upstreamed to diffusers, and in v4 we moved back to the standard diffusers conversion. I suspect we are missing an arg in the conversion calls, or maybe diffusers has a bug.

@JantDarvus, sorry for this unrelated question:
Can you run InvokeAI 4 properly with a GTX 1070 ?
I have the same GPU and I use the Comfy UI with no issues.
I was looking at InvokeAI, but they don't recommend this card.
https://invoke-ai.github.io/InvokeAI/installation/INSTALL_REQUIREMENTS/
Can you run SDXL models with it ?


[Feature][Module Name] Add Blocking Task

English | 中文
About Adding Blocking Task
Scenarios & Goal
Normally, we execute the whole workflow from start to the end. But sometimes, we want to pause the workflow to check the intermediate result. If correct, execution process continue. If not, pause the workflow and inform someone to solve it. So, I propose blocking task. The aim of blocking task is to pause the execution process properly based on user settings.
Main Flow

When execute to a node, run the task directly.
After the task finished, check if the task has been marked for blocking  by user.

If marked, I need to get the final status of the task.
If the task status meets the blocking trigger setting by user,  change the status of the task to pause. Then, Suspend the whole workflow.
If not, continue the workflow.
If not, continue the workflow.

The flow chart has been shown blow:

Implementation
The implementation can be taken into two parts: one for user web interface, another for Java.
This is a DRAFT implementation, WELCOME to discuss it in the COMMENT!
User Interface
Node Setting
When a node supports blocking function, user will see the following screen.

In the node setting view, there is a radio and a drop down list.
The  radio is used to mark the node. If user ticks it, it means user wants to set this node as a blocking task.
The drop down list is activated if and only if the radio has been ticked. In the drop down list, user can choose when to pause the workflow (Task success or Task failed).
JSON Expression
In the JSON definition of a task, I need to add two items at least.

Whether to mark the node as a blocking task
When to pause the workflow (task  success or failed)

The Java Part
Modification of Task Instance Entity
Based on discussed above, you know that I add some new items in the original task JSON expression. These should also be reflected in the task instance entity. Namely, I should add two members in the entity. One is used to mark whether the node has a blocking feature. Another one is used to indicate when to pause the workflow (task success or task failed).
Implementation of Blocking function
Blocking function can be condisered as an additional feature of a node. Only task is finished and has a result, the blocking process will be run.
According to the latest DS release, When a task node is finished with success or failure status, the operations of workflow (like submit subsequence nodes, retry, etc.) will be activated. So, the blocking task can be devided into two sections: blocking on task success and blocking on task failed.
Now, I will introduce them respectively.
Blocking on task success
After the task execution, if the final status is success, run the following steps:

I need a condition statement to consider if the task final status meets blocking trigger. It will check the blocking flag and confirm if user want to pause the workflow when task success. The two information will be taken from task instance entity.
If true, pause the whole workflow and send alert (by email).
if false,  do nothing.

Blocking on task failed
After the task execution, if the final status is failed, run the following steps:

If task can retry, retry first.
After that, if the task final status still failed, do the following steps first:

I need a condition statement to consider if the task final status meets blocking trigger. It will check the blocking flag and confirm if user want to pause the workflow when task failed. The two information will be taken from task instance entity.
If true, pause the whole workflow and send alert (by email).
if false,  do nothing.

⚠: When user start a workflow, he or she will set a "Failure Strategy". When a task failed, this strategy will allow workflow to continue exectution process or stop. As I mentioned above, if a task is marked with blocking, blocking feature has become a part of this task. As for the priority, blocking function is higher than failure strategy. So, when a task failed, I should run the blocking process first.

It is easy to notice that blocking process on task success and blocking process on task failed are similar. So I can write a function and call the function on properly time at properly place.
Note
Now, I will give some concrete scenarios to describe the problem more clearly.

Blocking on task success: The upstream prepared some data, which needs to be approved by your boss. So, you have to pause the workflow.
Blocking on task failed: The upstream produced some files that you will not expected. So you need to pause the workflow to  check what cause this problem.

Discussing The Solutions
As for solutions, two options come to mind.

Modify current task node, adding blocking function to them
Add a new type of node, called blocking node

Now, I begin to discuss this two options.

The blocking methods are varied. User will block by one task status or by multi tasks status. The all options mentioned above can meet these requirements.

Modify Current Task Node
In this solution, based on the current node functionality, additional support blocking feature.
For blocking by one task status, user can mark the node supporting blocking feature directly.
For blocking by multi tasks status, user can use condition node.
Advantages

After node setting (click the radio), the node has blocking function.

Disadvantages

DS has two type of nodes. The one will sent to woker to execute, like SQL, Shell, MR etc. Another will control the workflow, like sub_process, condition etc. If I make all kinds of nodes supporting blocking, the nodes which will be sent to worker have the right to control workflow in a way. From this perspective, coupling appeared.
In DAG, it is hard to recognize which node marked to be blocking node without double click to see the node detail information.

Another case of this solution is modifying condition node only. The reason is that the blocking process and condition process are familiar. Maybe they can merge into one node. The current version of condition node cannot be save with one branch declared. In order to support  blocking, this rule will be break. Because the subsequence of blocking process can not only be multi branches but also one branch.
Add a New Type of Node
In this solution, add a new type of node. This node is familiar with condition node. According to the final results of one or more direct predecessor,  condition node considers how to control workflow. But the condition node changes the flow direction, the blocking node pause the execution process of workflow.
Advantages

As I menthond above, there are two kinds of nodes in DS. In this sicuation, no coupling occurred.
User can easy recognize which node has been marked for blocking.

Disadvantages

In order to complete a blocking task. It is necessary to place one or more task nodes in front of blocking node. Maybe this is not convenient compared with solution I.

Concrete Scenario Analysis
Suppose I have a task: First, use spider claws some infomation from the Internet. Then, check data Integrity. If data correct, put them into database, otherwise, pause the workflow and send alert.
In solution I, the DAG maybe like this.

In solution II, the DAG maybe like this.

关于添加阻断类任务
场景和目标
在工作流的执行中，有时我们并不希望从头一直执行到底，我们希望在工作流中间能够设立一些“检查站”，检查上游任务的执行情况，如果检查满足预期，则继续往下执行；如果检查不通过，就需要暂停当前工作流，告警相关人员进行干预，干预成功后再往下执行。
主流程

当执行到一个节点时，先按照原有逻辑执行任务
当任务执行完毕后，检查该节点是否被用户标记为阻断节点

如果被标记为阻断节点，则需要拿到任务的最终执行状态

如果满足用户设置的暂停逻辑，就将该任务的状态修改为暂停，进而可以将整个工作流暂停
如果不满足用户设定的暂停逻辑，就按照系统原有逻辑执行

如果没有被标记为阻断节点，则按照系统原有逻辑执行

整个过程的流程图如下所示：

大致实现逻辑
实现逻辑分为两个部分，一是用户操作逻辑，二是后台逻辑
用户操作逻辑
设置界面
当节点被赋予阻断功能后，用户在设置节点时，会看到以下界面

在界面中，有一个单选框，用于标记该节点是否被赋予阻断功能；在单选框下面，有一个下拉框，用户可以选择触发条件（任务成功触发 / 任务失败触发）。当且仅当，单选框被勾选时，下拉框生效。
任务节点的JSON表示
在任务节点的JSON定义中，至少需要增加两个信息：

是否将其标记为阻断节点
是希望任务成功时阻断，还是失败时阻断

后台逻辑
任务对象实体类的修改
从用户操作逻辑中可知，在原有的任务JSON定义中，新增了新的内容，这些新内容，在任务对象的实体类中也要有所体现，也就是至少需要增加两个字段，一个字段来标记节点是否被作为阻断节点；另一个字段用来表示是在任务成功时暂停工作流，还是失败时暂停工作流。
阻断方法的实现逻辑
阻断功能可以认为是节点的附加功能，它是定义在节点本身执行结果之上的，只有节点执行完成且有结果，阻断功能才有机会执行。
结合DS的现有逻辑，对工作流的操作（提交后续节点、重试、执行失败策略等），是在判断任务执行成功 / 失败后执行，因此，阻断功能也可分为两个部分：任务执行成功时阻断、任务执行失败时阻断。同时，阻断方法的放置位置应遵守现有结构。下面对这两种情况分别进行说明。
成功时阻断
任务执行完成后，如果任务状态为成功，执行以下操作：

需要设定一个判断语句，判断是否满足阻断触发条件。判断语句需要判断当前处理节点是否被标记为阻断节点、是否是任务成功时阻断，这两个信息都需要从任务对象实体类中获取
如果判定结果为真，执行暂停工作流的方法，工作流成功暂停后，使用告警策略（邮件）通知相关用户进行干预
如果判定结果为假，则什么也不做，按照原有逻辑执行

失败时阻断
任务执行完成后，如果任务状态失败，执行以下操作：

如果任务允许重试，则重试任务
如果任务重试次数耗尽后依然失败，首先执行以下操作：

需要设定一个判断语句，判断是否满足阻断触发条件。判断语句需要判断当前节点是否被标记为阻断节点，是否是失败时阻断，这两个信息都需要从任务对象实体类中获取
如果判定结果为真，执行暂停工作流的方法，工作流成功暂停后，使用告警策略（邮件）通知相关用户进行干预
如果判定结果为假，则什么也不做，按照原有逻辑执行

这里需要注意，用户在开启工作流时，会设定一个“失败策略”，这个策略允许当任务失败后，继续执行工作流还是停止执行工作流。前面提到，阻断功能是节点的附加功能，如果某个节点被标记成为阻断节点，那么阻断功能就成为了节点功能的一部分。因此，在优先级上，阻断功能大于失败策略。所以，当重试失败后，最先执行的，应该是阻断功能。

从以上分析不难看出，成功时阻断和失败时阻断的逻辑是差不多的，因此可以将这个过程提炼出一个方法，在合适的时机调用即可。
备注
这里附上成功时阻断与失败时阻断的应用场景举例：

成功时阻断：上游工作流准备了一些数据，这些数据需要上级领导审批，审批通过后，再继续执行，这时，就需要暂停工作流。
失败时阻断：上游工作流出现问题，生成了不符合用户预期的文件，这时需要暂停工作流，人工介入干预。

实现方案讨论
对于阻断节点的实现方案，目前想到的有两种：

将原有节点（无论是否是有实际任务执行的节点）赋予阻断功能
在现有的节点中新增一种节点，专门用于阻断任务

下面分别对这两种方案进行分析。

用户阻断的方式是多样的，可能根据单任务的执行结果阻断，也可以根据多任务的执行结果混合阻断。上述这两种方案都可以实现。

基于现有节点修改
这种实现方案是说，对于现有的所有节点，都在其节点设置中赋予阻断功能。对于根据单任务进行阻断的情况，直接将对应任务标记为阻断节点即可，至于根据多任务进行阻断，可考虑使用条件节点实现。
优势

只需要在现有节点设置完成后，就可以完成阻断功能

缺点

ds中的节点可以分为两类，一类是有实际任务执行的节点，比如Shell、MR等，它们会被发到worker去执行；另一类为没有实际任务的节点，例如Condition、sub_process等，它们主要负责工作流本身的控制，并不会被发到worker去执行。如果将所有节点都赋予阻断功能的话，那么对于一个有实际任务的节点来说，某种程度上，拥有了控制工作流的功能，出现了耦合。
在DAG表现中，如果不双击查看节点信息，难以从图标区分哪个是阻断节点。

一种比较有趣的做法是只修改条件节点，这么做的原因是条件节点的中有很多功能与即将添加的阻断功能类似，或许可以合并。在原有的条件节点设计中，一定要设定成功失败两个分支才可以保存，但是如果将其增加阻断功能后，这个设定会被打破。这是因为，在阻断节点后，可以是单分支的，也可以是多分支的。
新增节点种类
这种实现方式是说，在现有节点的基础上，另外新增一种节点，这种节点类似条件节点的实现方式，即根据其一个或多个直接前驱节点的执行结果，判断是否触发某种行为，只不过它的功能不是流转工作流，而是阻断工作流。
优势

前面提到，ds中有两类节点，使用这种实现方式，就将有实际任务的节点和没有实际任务的节点进行解耦
可以从图标区分哪个是阻断节点

缺点

这种节点是无法单独使用的，需要在其前驱有一个或多个有实际任务的节点，它们互相配合才能完成阻断逻辑，并没有使用单一节点阻断来的干脆

简单场景举例
现在有一个任务：要先利用爬虫去互联网上爬取数据，然后检查数据完整性，检查通过，继续执行并存入数据库，检查不通过，通知相关人员进行干预。
使用第一种实现方式的DAG

使用第二种实现方式的DAG

The solution 1 looks better to me, because the blocking operation should be general to all type of nodes, extra specific blocking nodes would cause the DAG modifications.
The blocking condition should support pre/post script returning

On the disadvantages mentioned about the current task node:

DS has two type of nodes. The one will sent to woker to execute, like SQL, Shell, MR etc. Another will control the workflow, like sub_process, condition etc. If I make all kinds of nodes supporting blocking, the nodes which will be sent to worker have the right to control workflow in a way. From this perspective, coupling appeared.

I think the blocking is not a fully workflow controlling as it can only pause and continue the flow, not branching the flow, and the node itself should has rights and domain knowledges to determine if everything as expected.

In DAG, it is hard to recognize which node marked to be blocking node without double click to see the node detail information.

Maybe just a different icon marking will do that? Sounds it should be just a UI issue.

English | 中文
Overview
First of all, I express my deep gratitude to @simsicon, @dailidong, @Jave-Chen and @shaojwu. Thank you for your interest in this feature and your advice!
So for, the feedback received is more in favor of Solution I (modified based on existing nodes), but I think Solution II (adding new node type) would be more suitable for DS. I will discuss why I think the second solution is more suitable from the following two aspects.

Functionality (From basic functions and long-term plans)
Cost (From users and developers)

Functionality
Basic Functions
In order to choose a solution properly, in my opinion, the baseline is reaching the basic functions. The goal of blocking task is that in the execution process in a workflow, if encountered blocking task and the task met blocking requirements, the whole workflow should have been paused, otherwise, continued.
Obviously, two of solutions will reach that goal. In addition, in some sicuation, solution II will be better than solution I. Let me show you.

Suppose your boss have a demond. There is a blocking task in workflow. And there are three independent sub_processes in front of the blocking task. Now, your boss tells you that if any two of the three sub_processes run successfully, the workflow continue, or else, pause.

If I choose solution I, I will use condition node.  In the current version of condition node, I must have two branches, one for  success, one for failure, and two branch must be different. For completing the blocking task, I must have a useless branch (echo helloword in shell for example ) to meet my boss requirement. Maybe you will consider to modify current condition node, but I think it is not suitable. Because you break the condition node function which is used to turn the workflow into the user expected direction.
If I choose solution II, everything becomes easy. As for this new type of node (Let me call it blocking node), we do not have limitations. This node has logic judgement function and it can support one successor branch or multi-successors branchs. In this way, it does not destroy the functionality of existing nodes and accomplishes our blocking goal.
Long-term plans
In solution I, blocking task is used as a special node attribute. If one day, Apache releases a new bigdata component and DS wants to support it, we still need to add the blocking option when coding related web pages. But in solution II, put things right once and for all.
Cost
User
To be honest, the user cost is similar in both solutions. User will know what blocking task is and how to setup. @simsicon says that solution II will cause the modification of DAG. Actually, neithor solution I or solution II needs to modify the DAG, but the degree is different.
Developer
Coding in solution II maybe harder. But I believe that is worthy. Beacuse solution II is more flexiable and competent than solution I, just like I menthoned in the above sicuation.  For another instance, Apple releases iPad Air 4 and iPad Pro 2021. iPad Air 4 (256GB) sales 749 dollars and iPad Pro (128GB, 11 inch) sales 749 dollars. They differ by $50. But with that extra money you can enjoy the ultimate iPad experience while meeting your daily needs, why not pay that extra price? Blocking task is the same.
In conclution, I think solution II is better.
Welcome to express your opinion!
概览
首先感谢社区小伙伴@simsicon  、@dailidong、@Jave-Chen、@shaojwu对本特性的关注，感谢你们为本提案提供意见！
虽然根据目前收到的反馈，赞成Solution I（基于现有节点修改的）会多一些，但是综合考虑，我觉得Solution II（新增节点类型）会更适合DS，我会从以下两个方面论述为什么我觉得第二个方案更合适。

功能性方面（基础功能、长远打算）
成本方面（用户成本、开发者成本）

功能性方面
基础功能
衡量一个方案，最最基本的，我认为是功能要达到我们的预期。阻断功能的目标是：在工作流执行过程中，如果遇到阻断任务，且满足用户设定的阻断条件，那么工作流就暂停执行，通知用户干预；如果不满足阻断条件，就继续执行。
很显然，两种方案都能够达到这个基本目标。但是，对于第二种方案来说，第一种方案能做的，它可以做，且可以做得更好！试考虑以下场景：

一天老板提了一个需求，要求我在工作流的中设置一个阻断任务，它的上游有3个分支，对应3个独立的子流程，这个阻断任务需要检查上游3个任务的运行情况，其中任意两个任务检查通过就可以继续执行（后续是单分支的），否则需要对工作流进行暂停。

如果使用方案一，我必然要使用条件节点，但是目前DS中的条件节点，成功分支和失败分支都需要设置，且它们必须不一样，这样DAG才可以保存。我为了实现这个阻断任务，我必须建立一个无用的分支（例如使用Shell输出一个hello world）来满足需求。你可能会考虑修改条件节点，让其只有一个分支的情况下才能保存，但是我认为这么做破坏了条件节点进行分支流转的功能。
如果使用方案二，一切就变得简单了，对于这个新增节点（我们暂且叫它阻断节点吧），我们就没有这个限制了，这个节点具有逻辑判断功能，我既可以让阻断节点支持后继多分支，也可以支持单分支（待研究）。这么做，即不会破坏现有节点的功能，又完成了我们的阻断目标。
长远打算
从长远来看，第一种方案，相当于把阻断任务当作了节点的属性进行捆绑。假如有一天Apache又发布了一款大数据组件，DS想要支持，在新节点前端编写的时候，依然需要增设阻断的选项。但是使用方案二，就不会存在捆绑问题，一劳永逸，且节点之间各司其职。
成本方面
用户成本
用户成本的话，老实说，两个方案用户成本都差不多。用户都要认识什么是阻断任务，如何去设置阻断任务。@simsicon 有在issue中提到使用方案二导致的DAG修改问题，其实不论哪一种方案，DAG都是需要一定程度的修改，只不过是修改程度上的区别。
开发成本
老实说，预估第二种方案的代码量会比第一种多一些，但是我觉得这是值得的。因为第二种方案相比第一种更加灵活，能够更好地完成阻断任务。就好像苹果推出了iPad air 4和iPad Pro 2021，iPad air 4 256GB售价749美元， iPad Pro 2021 11英寸128GB售价799美元，二者相差50$，但是多加这些钱可以在满足日常需求的情况下，享受到iPad的极致体验，为什么不多付出这些代价呢？阻断任务也是一样的。
综上，我更推荐第二种方案。
欢迎表达您的意见！


add mongodb client

depends on https://github.com/nodeshift/kube-service-bindings/pull/20
can test w/ oc new-app quay.io/tchughesiv/node-hello-world-mongodb
Signed-off-by: Tommy Hughes<EMAIL_ADDRESS>

@tchughesiv published npm version 0.0.6 so you should be able to use now.

Since I landed/closed the PR I'll just repeat my questions here:

@mhdawson Using MongoDB Atlas with DBaaS operator would be an easy way to set up Mongo DB cluster.
Recently I was trying out the DBaaS operator and created a few screencasts:

The first video explains creating a database instance in the MongoDB Atlas (As of now, the credit card is not required for Atlas free tier)
The second video explains creating DBaaS images and publishing them to Quay.io
The third video demo deploying a Quarkus application connecting to the MongoDB using DBaaS and SBO


Changed saved prior predictive data

This PR changes the serialisation behaviour of the pipeline to reduce unnecessary objects being serialised (less important) and deals with problems in deserialising around reconstructing arbitrary Julia types (more important).
Closes #477 .
NB: While doing this PR, I was passing more pipeline data to infer... so it became easier to just pass the pipeline struct instance. This lets us select the inference post-processing based on the pipeline (e.g. testmode, priorpredictive etc). There might be a slicker way to do this which we can revisit in the future.

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

Project coverage is 90.05%. Comparing base (5cd5040) to head (500b4e8).

Additional details and impacted files
@@                                        Coverage Diff                                        @@
##           404-upgrade-the-testmode-pipeline-script-to-just-pipeline-script     #478   +/-   ##
=================================================================================================
  Coverage                                                             90.05%   90.05%
=================================================================================================
  Files                                                                    57       57
  Lines                                                                   744      744
=================================================================================================
  Hits                                                                    670      670
  Misses                                                                   74       74

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


Possible to support multi-touch?

This (example) scratch project works on an iPad - I made it for young music students who are only using iPads for remote learning.
https://scratch.mit.edu/projects/432878100/
If I share the original scratch project multi-touch works great but overall I prefer the way the packaged project runs AND prefer the ability to change the aspect ratio. Is it possible to add an event listener to support multitouch? I tried editing the HTML, but I'm in way over my head. Something like what's mentioned here: https://www.html5rocks.com/en/mobile/touch/
Many thanks for your time!

It's certainly possible to detect multitouch with JavaScript. However, Scratch itself doesn't know how to deal with multiple pointers at once since it assumes that there is only one mouse x and only one mouse y at a time.
Also, at least for me, multi-touch seems to work the same on both the Scratch website and when HTMLified: holding down two fingers on different keys at the same time only plays one of the notes.

It's certainly possible to detect multitouch with JavaScript. However, Scratch itself doesn't know how to deal with multiple pointers at once since it assumes that there is only one mouse x and only one mouse y at a time.
Also, at least for me, multi-touch seems to work the same on both the Scratch website and when HTMLified: holding down two fingers on different keys at the same time only plays one of the notes.

Wow thanks for the quick response, Sean!
I realized I had been sending students the version run on forkphorus: https://forkphorus.github.io/app.html?id=432878100. Interestingly, the standalone "HTML packager" on that site doesn’t work for multi-touch either.
Is it something I could add to the html code based on how my music students are using it?
Cheers,
Scott
On January 16, 2021 at 11:22 PM, Sean<EMAIL_ADDRESS>wrote:
It's certainly possible to detect multitouch with JavaScript. However, Scratch itself doesn't know how to deal with multiple pointers at once since it assumes that there is only one mouse x and only one mouse y at a time.
Also, at least for me, multi-touch seems to work the same on both the Scratch website and when HTMLified: holding down two fingers on different keys at the same time only plays one of the notes.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Wow thanks for the quick response, Sean!
I realized I had been sending students the version run on forkphorus: https://forkphorus.github.io/app.html?id=432878100. Interestingly, the standalone "HTML packager" on that site doesn’t work for multi-touch either.
Is it something I could add to the html code based on how my music students are using it?
Cheers,
Scott
On January 16, 2021 at 11:22 PM, Sean<EMAIL_ADDRESS>wrote:
It's certainly possible to detect multitouch with JavaScript. However, Scratch itself doesn't know how to deal with multiple pointers at once since it assumes that there is only one mouse x and only one mouse y at a time.
Also, at least for me, multi-touch seems to work the same on both the Scratch website and when HTMLified: holding down two fingers on different keys at the same time only plays one of the notes.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

The "when sprite clicked block" only supports one finger at a time, unfortunately. However, it would be possible to add buttons to the HTML that simulate key presses since Scratch does support detecting multiple keys being held down.

The "when sprite clicked block" only supports one finger at a time, unfortunately. However, it would be possible to add buttons to the HTML that simulate key presses since Scratch does support detecting multiple keys being held down.

OK many thanks again. I was hoping “touch events” could be to “mouse down” but sounds like no such luck. Thanks for making HTMLify happen and for taking the time to check on this for me!
On January 17, 2021 at 11:20 PM, Sean<EMAIL_ADDRESS>wrote:
The "when sprite clicked block" only supports one finger at a time, unfortunately. However, it would be possible to add buttons to the HTML that simulate key presses since Scratch does support detecting multiple keys being held down.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

OK many thanks again. I was hoping “touch events” could be to “mouse down” but sounds like no such luck. Thanks for making HTMLify happen and for taking the time to check on this for me!
On January 17, 2021 at 11:20 PM, Sean<EMAIL_ADDRESS>wrote:
The "when sprite clicked block" only supports one finger at a time, unfortunately. However, it would be possible to add buttons to the HTML that simulate key presses since Scratch does support detecting multiple keys being held down.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


Update Getting started docs to include link to  new Cluster/Namespace CR instructions

/area documentation
Which area this documentation change is related to?

/area registry
Issue details

What mistake did you find / what is missing in the documentation?
Add a description in the tooling provider section so teams know how to use the new CRs

closing as rotten


cmake error

-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- The CUDA compiler identification is NVIDIA 9.0.176
-- Check for working C compiler: /mnt1/lijinqiang/conda/env/gnina/bin/x86_64-conda_cos6-linux-gnu-cc
-- Check for working C compiler: /mnt1/lijinqiang/conda/env/gnina/bin/x86_64-conda_cos6-linux-gnu-cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /mnt1/lijinqiang/conda/env/gnina/bin/x86_64-conda_cos6-linux-gnu-c++
-- Check for working CXX compiler: /mnt1/lijinqiang/conda/env/gnina/bin/x86_64-conda_cos6-linux-gnu-c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc
-- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc -- works
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Found Git: /usr/bin/git
-- Current git revision is 57f737ab4bb65627101989f28270f1d936ece289
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found CUDA: /usr/local/cuda (found version "9.0")
-- Boost  found.
-- Found Boost components:
regex;unit_test_framework;program_options;system;filesystem;iostreams
-- Found Open Babel include files at /usr/local/include/openbabel3
-- Found Open Babel library at /lib64/libopenbabel.so
Setting openbabel found TRUE
-- Found PythonLibs: /usr/lib64/libpython3.6m.so (found version "3.6.8")
-- Found PythonInterp: /mnt1/lijinqiang/conda/env/gnina/bin/python3.6 (found version "3.6.7")
CMake Error at /usr/local/boost/lib/cmake/Boost-1.72.0/BoostConfig.cmake:120 (find_package):
Found package configuration file:
/usr/local/boost/lib/cmake/boost_python-1.72.0/boost_python-config.cmake

but it set boost_python_FOUND to FALSE so package "boost_python" is
considered to be NOT FOUND.  Reason given by package:
No suitable build variant has been found.
The following variants have been tried and rejected:

libboost_python27.so.1.72.0 (2.7, Boost_PYTHON_VERSION=3.6)

libboost_python27.a (2.7, Boost_PYTHON_VERSION=3.6)

Call Stack (most recent call first):
/usr/local/boost/lib/cmake/Boost-1.72.0/BoostConfig.cmake:185 (boost_find_component)
/usr/local/share/cmake-3.14/Modules/FindBoost.cmake:266 (find_package)
python/CMakeLists.txt:17 (find_package)
-- Configuring incomplete, errors occurred!

I use python3.6 and camke3.14 and boost1.72 , what is the problem? please help me

Is boost python installed (e.g. /usr/lib/x86_64-linux-gnu/libboost_python-py36.so)?
If it isn't in a standard location, you may have to specify where it is on the cmake commandline.

-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- The CUDA compiler identification is NVIDIA 9.0.176
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc
-- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc -- works
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Current git revision is 57f737ab4bb65627101989f28270f1d936ece289
-- Boost  found.
-- Found Boost components:
regex;unit_test_framework;program_options;system;filesystem;iostreams
CMake Error at /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake:120 (find_package):
Could not find a package configuration file provided by "boost_python3"
(requested version 1.72.0) with any of the following names:
boost_python3Config.cmake
boost_python3-config.cmake

Add the installation prefix of "boost_python3" to CMAKE_PREFIX_PATH or set
"boost_python3_DIR" to a directory containing one of the above files.  If
"boost_python3" provides a separate development package or SDK, be sure it
has been installed.
Call Stack (most recent call first):
/usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake:185 (boost_find_component)
/usr/local/share/cmake-3.12/Modules/FindBoost.cmake:261 (find_package)
python/CMakeLists.txt:14 (find_package)
-- Configuring incomplete, errors occurred!
now I have installed boost with python3.6，but cmake still error. Could you help me?

Have you tried setting boost_python3_DIR to the appropriate directory?


[AMCNetworks] Site now uses Brightcove instead of ThePlatform

Checklist

[X] I'm reporting a broken site support
[X] I've verified that I'm running youtube-dl version 2021.06.06
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones

Verbose log

youtube-dl https://www.bbcamerica.com/shows/doctor-who/episodes/season-12-episode-01-spyfall-part-1--1010859 -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['https://www.bbcamerica.com/shows/doctor-who/episodes/season-12-episode-01-spyfall-part-1--1010859', '-v']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.9.6 (CPython) - Windows-10-10.0.19042-SP0
[debug] exe versions: ffmpeg 4.4-essentials_build-www.gyan.dev, ffprobe 4.4-essentials_build-www.gyan.dev
[debug] Proxy map: {}
[AMCNetworks] shows/doctor-who/episodes/season-12-episode-01-spyfall-part-1--1010859: Downloading JSON metadata
ERROR: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by <HTTPError 404: 'Not Found'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "c:\python39\lib\site-packages\youtube_dl\extractor\common.py", line 634, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "c:\python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 2288, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "c:\python39\lib\urllib\request.py", line 523, in open
    response = meth(req, response)
  File "c:\python39\lib\urllib\request.py", line 632, in http_response
    response = self.parent.error(
  File "c:\python39\lib\urllib\request.py", line 561, in error
    return self._call_chain(*args)
  File "c:\python39\lib\urllib\request.py", line 494, in _call_chain
    result = func(*args)
  File "c:\python39\lib\urllib\request.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

Description

AMC Networks sites appear to now use Brightcove, instead of ThePlatform.
I tried the following:
# coding: utf-8
from __future__ import unicode_literals

import re

from .common import InfoExtractor
from ..utils import (
    int_or_none,
    parse_age_limit,
    try_get,
    strip_or_none,
    url_or_none,
    update_url_query,
)

class AMCNetworksIE(InfoExtractor):
    _VALID_URL = r'https?://(?:www\.)?(?:amc|bbcamerica|ifc|(?:we|sundance)tv)\.com/(?:movies|shows(?:/[^/]+)+)/(?P<id>[^/?#]+)'
    _TESTS = [{
        'url': 'http://www.ifc.com/shows/maron/season-04/episode-01/step-1',
        'md5': '',
        'info_dict': {
            'id': 's3MX01Nl4vPH',
            'ext': 'mp4',
            'title': 'Maron - Season 4 - Step 1',
            'description': 'In denial about his current situation, Marc is reluctantly convinced by his friends to enter rehab. Starring Marc Maron and Constance Zimmer.',
            'age_limit': 17,
            'upload_date': '20160505',
            'timestamp':<PHONE_NUMBER>,
            'uploader': 'AMCN',
        },
        'params': {
            # m3u8 download
            'skip_download': True,
        },
        'skip': 'Requires TV provider accounts',
    }, {
        'url': 'http://www.bbcamerica.com/shows/the-hunt/full-episodes/season-1/episode-01-the-hardest-challenge',
        'only_matching': True,
    }, {
        'url': 'http://www.amc.com/shows/preacher/full-episodes/season-01/episode-00/pilot',
        'only_matching': True,
    }, {
        'url': 'http://www.wetv.com/shows/million-dollar-matchmaker/season-01/episode-06-the-dumped-dj-and-shallow-hal',
        'only_matching': True,
    }, {
        'url': 'http://www.ifc.com/movies/chaos',
        'only_matching': True,
    }, {
        'url': 'http://www.bbcamerica.com/shows/doctor-who/full-episodes/the-power-of-the-daleks/episode-01-episode-1-color-version',
        'only_matching': True,
    }, {
        'url': 'http://www.wetv.com/shows/mama-june-from-not-to-hot/full-episode/season-01/thin-tervention',
        'only_matching': True,
    }, {
        'url': 'http://www.wetv.com/shows/la-hair/videos/season-05/episode-09-episode-9-2/episode-9-sneak-peek-3',
        'only_matching': True,
    }, {
        'url': 'https://www.sundancetv.com/shows/riviera/full-episodes/season-1/episode-01-episode-1',
        'only_matching': True,
    }]
    BRIGHTCOVE_URL_TEMPLATE = 'http://players.brightcove.net/%s/%s_default/index.html?videoId=%s'

    def _real_extract(self, url):
        display_id = self._match_id(url)
        webpage = self._download_webpage(url, display_id)
        json = self._search_regex(
            r'window\.initialData = JSON.parse\(String\.raw`([^`]+)',
            webpage, 'page data')
        page_data = self._parse_json(json, display_id)
        account_id = page_data['config']['brightcove'].get('accountId')
        player_id = page_data['config']['brightcove'].get('playerId')
        video_id = page_data['initialData']['properties'].get('videoId')
        player_url = url_or_none(self.BRIGHTCOVE_URL_TEMPLATE % (account_id, player_id, video_id))
        return self.url_result(player_url, 'BrightcoveNew', video_id)

class AMCNetworksPlaylistIE(AMCNetworksIE):
    _VALID_URL = r'(?P<domain>https?://(?:www\.)?(?:amc|bbcamerica|ifc|(?:we|sundance)tv)\.com)/(?:movies|shows)/(?P<id>[^/?#]+)'
    _TESTS = [{
        'url': 'http://www.ifc.com/shows/maron/season-04/episode-01/step-1',
        'md5': '',
        'info_dict': {
            'id': 's3MX01Nl4vPH',
            'ext': 'mp4',
            'title': 'Maron - Season 4 - Step 1',
            'description': 'In denial about his current situation, Marc is reluctantly convinced by his friends to enter rehab. Starring Marc Maron and Constance Zimmer.',
            'age_limit': 17,
            'upload_date': '20160505',
            'timestamp':<PHONE_NUMBER>,
            'uploader': 'AMCN',
        },
        'params': {
            # m3u8 download
            'skip_download': True,
        },
        'skip': 'Requires TV provider accounts',
    }]

    def _real_extract(self, url):
        domain, display_id = re.match(self._VALID_URL, url).groups()
        webpage = self._download_webpage(url, display_id)
        page_data = self._parse_json(self._search_regex(
            r'window\.__APP_INITIAL_STATE__ = ([^<]+)',
            webpage, 'page data'), display_id)
        page_type = page_data['pageData']['properties'].get('pageType')
        entries = []
        if page_type == 'show-episodes':
            children = next(s['children'] for s in page_data['pageData']['children'] if s.get('type') == 'list')
            for child in children:
                entries.append(self.url_result(
                    domain + child['properties']['cardData']['meta']['permalink'],
                    'AMCNetworks', child['properties']['cardData']['meta']['nid']))
        return self.playlist_result(entries, display_id, page_data['pageData']['properties']['pageTitle'],
                strip_or_none(page_data['pageData']['properties'].get('Description')))

It doesn't find any videos.

I am getting a login prompt, are you not?

In a browser, yes, there should be a login prompt.  I authenticate with YouTube TV, then I use cookies to authenticate in youtube-dl.

OK, but your original comment doesnt show any of that. Copying from your comment:
youtube-dl https://www.bbcamerica.com/shows/doctor-who/episodes/season-12-episode-01-spyfall-part-1--1010859 -v
[debug] Command-line args: ['https://www.bbcamerica.com/shows/doctor-who/episodes/season-12-episode-01-spyfall-part-1--1010859', '-v']

How are you making an authenticated request, if you havent provided any credentials?

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [https://www.bbcamerica.com/shows/doctor-who/episodes/season-12-episode-01-spyfall-part-1--1010859, --dump-page, --print-json, -f, bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4], -o, C:\\Users\\gkoel\\Videos\\TV Shows\\%(series)s\\Season %(season_number)02d\\%(series)s - S%(season_number)02dE%(episode_number)02d - %(title)s.%(ext)s, -w, --no-post-overwrites, -i, -c, --cookies, C:\\Users\\gkoel\\Dropbox\\Scripts\\cookies.txt, -v, --download-archive, C:\\Users\\gkoel\\Dropbox\\Scripts\\archive.txt, --write-su, --write-thumbnail, --convert-subs, srt]
[debug] Encodings: locale cp1252, fs utf-8, out cp1252, pref cp1252
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.9.6 (CPython) - Windows-10-10.0.19042-SP0
[debug] exe versions: ffmpeg 4.4-essentials_build-www.gyan.dev, ffprobe 4.4-essentials_build-www.gyan.dev
[debug] Proxy map: {}
ERROR: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by <HTTPError 404: Not Found>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "c:\python39\lib\site-packages\youtube_dl\extractor\common.py", line 634, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "c:\python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 2288, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "c:\python39\lib\urllib
equest.py", line 523, in open
    response = meth(req, response)
  File "c:\python39\lib\urllib
equest.py", line 632, in http_response
    response = self.parent.error(
  File "c:\python39\lib\urllib
equest.py", line 561, in error
    return self._call_chain(*args)
  File "c:\python39\lib\urllib
equest.py", line 494, in _call_chain
    result = func(*args)
  File "c:\python39\lib\urllib
equest.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

Can anyone help find the paths from an AMC Networks link to get the Brightcove video id?  (I have no idea how I came across it previously.)  If I can get that, I may be able to move further along with this extractor.

Something is wrong with that server:
PS C:\> curl -m 9 https://www.bbcamerica.com/shows/doctor-who/episodes/season-12-episode-01-spyfall-part-1--1010859
curl: (28) Operation timed out after 9011 milliseconds with 0 bytes received

The show: https://www.bbcamerica.com/shows/doctor-who--1010579
The current episode list has a single episode: https://www.bbcamerica.com/shows/doctor-who/episodes/season-13-eve-of-the-daleks--1051589

I think all these links are dead, does anyone have a current link?

I think this is the new link:
https://www2.bbcamerica.com/shows/doctor-who/episodes/season-13-episode-07-eve-of-the-daleks--64258

Those examples are bad, as they all require login. Heres a better example:
https://www.bbcamerica.com/shows/killing-eve/episodes/season-4-just-dunk-me--1052529

Here is one that works without login:
https://www.bbcamerica.com/shows/killing-eve/episodes/season-4-just-dunk-me--1052529
I checked the current Web and Android clients. It seems DRM is used in all cases. Also the three URLs I found:
https://github.com/ytdl-org/youtube-dl/blob/49c5293014bc11ec8c009856cd63cffa6296c1e1/youtube_dl/extractor/amcnetworks.py#L18-L45
all return 404.

Hmmm...so some urls use Brightcove and some use ThePlatform?

I don't know about Brightcove vs ThePlatform, but from my testing, the whole site is now under DRM. If I am wrong about this, I would be happy to know it.

I tried this:
# coding: utf-8
from __future__ import unicode_literals

import datetime
import re

from .common import InfoExtractor
from ..utils import (
    int_or_none,
    parse_age_limit,
    try_get,
    strip_or_none,
    url_or_none,
    update_url_query,
    unified_strdate
)

class AMCNetworksIE(InfoExtractor):
    _VALID_URL = r'https?://(?:www\.)?(?:amc|bbcamerica|ifc|(?:we|sundance)tv)\.com/(?:movies|shows(?:/[^/]+)+)/(?P<id>[^/?#]+)'
    _TESTS = [{
        'url': 'http://www.ifc.com/shows/maron/season-04/episode-01/step-1',
        'md5': '',
        'info_dict': {
            'id': 's3MX01Nl4vPH',
            'ext': 'mp4',
            'title': 'Maron - Season 4 - Step 1',
            'description': 'In denial about his current situation, Marc is reluctantly convinced by his friends to enter rehab. Starring Marc Maron and Constance Zimmer.',
            'age_limit': 17,
            'upload_date': '20160505',
            'timestamp':<PHONE_NUMBER>,
            'uploader': 'AMCN',
        },
        'params': {
            # m3u8 download
            'skip_download': True,
        },
        'skip': 'Requires TV provider accounts',
    }, {
        'url': 'http://www.bbcamerica.com/shows/the-hunt/full-episodes/season-1/episode-01-the-hardest-challenge',
        'only_matching': True,
    }, {
        'url': 'http://www.amc.com/shows/preacher/full-episodes/season-01/episode-00/pilot',
        'only_matching': True,
    }, {
        'url': 'http://www.wetv.com/shows/million-dollar-matchmaker/season-01/episode-06-the-dumped-dj-and-shallow-hal',
        'only_matching': True,
    }, {
        'url': 'http://www.ifc.com/movies/chaos',
        'only_matching': True,
    }, {
        'url': 'http://www.bbcamerica.com/shows/doctor-who/full-episodes/the-power-of-the-daleks/episode-01-episode-1-color-version',
        'only_matching': True,
    }, {
        'url': 'http://www.wetv.com/shows/mama-june-from-not-to-hot/full-episode/season-01/thin-tervention',
        'only_matching': True,
    }, {
        'url': 'http://www.wetv.com/shows/la-hair/videos/season-05/episode-09-episode-9-2/episode-9-sneak-peek-3',
        'only_matching': True,
    }, {
        'url': 'https://www.sundancetv.com/shows/riviera/full-episodes/season-1/episode-01-episode-1',
        'only_matching': True,
    }]

    def _real_extract(self, url):
        display_id = self._match_id(url)
        webpage = self._download_webpage(url, display_id)
        title = self._og_search_title(webpage)
        json = self._search_regex(
            r'window\.initialData = JSON\.parse\(String\.raw`([^`]+)',
            webpage, 'page data')
        page_data = self._parse_json(json, display_id)
        brightcove_data = page_data['config']['brightcove']
        account_id = brightcove_data.get('accountId')
        player_id = brightcove_data.get('playerId')
        properties = page_data['initialData']['properties']
        video_id = properties.get('videoId')
        player_url = url_or_none('http://players.brightcove.net/%s/%s_default/index.html?videoId=%s' % (account_id, player_id, video_id))
        meta = page_data['initialData']['children'][1]['properties']['text']
        description = meta.get('description')
        series = meta.get('showTitle')
        season_number = int_or_none(properties.get('seasonNumber'))
        episode = meta.get('title')
        episode_number = properties.get('episodeNumber')
        release_date = unified_strdate(meta.get('originalAirDate').replace('Original Air Date: ', ''))
        thumbnail = url_or_none(page_data['initialData']['children'][1]['properties'].get('images'))

        return {
            'id': display_id,
            'title': title,
            'url': player_url,
            'description': description,
            'series': series,
            'season_number': season_number,
            'episode': episode,
            'episode_number': episode_number,
            'release_date': release_date,
            'thumbnail': thumbnail,
        }

class AMCNetworksPlaylistIE(AMCNetworksIE):
    _VALID_URL = r'(?P<domain>https?://(?:www\.)?(?:amc|bbcamerica|ifc|(?:we|sundance)tv)\.com)/(?:movies|shows)/(?P<id>[^/?#]+)'
    _TESTS = [{
        'url': 'http://www.ifc.com/shows/maron/season-04/episode-01/step-1',
        'md5': '',
        'info_dict': {
            'id': 's3MX01Nl4vPH',
            'ext': 'mp4',
            'title': 'Maron - Season 4 - Step 1',
            'description': 'In denial about his current situation, Marc is reluctantly convinced by his friends to enter rehab. Starring Marc Maron and Constance Zimmer.',
            'age_limit': 17,
            'upload_date': '20160505',
            'timestamp':<PHONE_NUMBER>,
            'uploader': 'AMCN',
        },
        'params': {
            # m3u8 download
            'skip_download': True,
        },
        'skip': 'Requires TV provider accounts',
    }]

    def _real_extract(self, url):
        domain, display_id = re.match(self._VALID_URL, url).groups()
        webpage = self._download_webpage(url, display_id)
        page_data = self._parse_json(self._search_regex(
            r'window\.__APP_INITIAL_STATE__ = ([^<]+)',
            webpage, 'page data'), display_id)
        page_type = page_data['pageData']['properties'].get('pageType')
        entries = []
        if page_type == 'show-episodes':
            children = next(s['children'] for s in page_data['pageData']['children'] if s.get('type') == 'list')
            for child in children:
                entries.append(self.url_result(
                    domain + child['properties']['cardData']['meta']['permalink'],
                    'AMCNetworks', child['properties']['cardData']['meta']['nid']))
        return self.playlist_result(entries, display_id, page_data['pageData']['properties']['pageTitle'],
                strip_or_none(page_data['pageData']['properties'].get('Description')))

But it doesn't find any results.  What am I missing in my approach?
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['https://www.bbcamerica.com/shows/killing-eve/episodes/season-4-just-dunk-me--1052529', '-F', '--cookies', 'C:\\Users\\Greg\\Dropbox\\Scripts\\cookies.txt', '-v']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2020.09.20
[debug] Python version 3.10.3 (CPython) - Windows-10-10.0.19044-SP0
[debug] exe versions: ffmpeg 5.0-essentials_build-www.gyan.dev, ffprobe 5.0-essentials_build-www.gyan.dev
[debug] Proxy map: {}
[AMCNetworks] season-4-just-dunk-me--1052529: Downloading webpage
[info] Available formats for season-4-just-dunk-me--1052529:
format code  extension  resolution note
0            html       unknown

At this time, I was just exploring the current API. Using MITM Proxy, I found this request:
POST /playback-id/api/v1/playback/1052529 HTTP/2.0

Host: gw.cds.amcn.com
authorization: Bearer eyJraWQiOiJwcm9kLTEiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJlbnRpdGxlbWVudHMiOiJ1bmF1dGgiLCJhdWQiOiJyZXNvdXJjZV9zZXJ2ZXIiLCJhdXRoX3R5cGUiOiJiZWFyZXIiLCJyb2xlcyI6WyJ1bmF1dGgiXSwiaXNzIjoiaXAtMTAtMi00Ny0yMjIuZWMyLmludGVybmFsIiwidG9rZW5fdHlwZSI6ImF1dGgiLCJleHAiOjE2NDg3NTUyMzgsImRldmljZS1pZCI6IjAzMWE3ZWQ0LTQ0NTUtNDZkNS05YjJhLTBmMTVkODRkNzVlYyIsImlhdCI6MTY0ODc1NDYzOCwianRpIjoiMmU0ZGI0NjAtNGM4NC00MzY2LWJmYzgtNzBkODE1ZGMxMzRmIn0.vqYZuEcYtJFbu-VbHP-rFcRfeWCTzbpMYx4sRE79gxvOQNJhbEr8UKugWE6ND-87V0yLVLsDSiWa9Jzz4-GpHhLx36ztJmrVo_3csy4C44E2cpOhcyEx_3K4ZMk_1os6lIfQit8E-y5DYHyUoGs_LELoq3yfI4pWG5XXd1A_bUCp6mBys8lj8C-PIO-SHJBlow5Dk0rCN8sXI2U1bFxGEnT9G1eformeq1-UJXf1DENj5Z4ssLdTYg5WFFMhprRjyKISWy7ADRkpbCoOsXQHxvx3G4jBHojoaqSsfJfejRYwSEZbiYicxzXBOX67VKgFCirIpcNR4NBXOd3ZhP1rSQ

content-type: application/json

x-amcn-device-ad-id: 031a7ed4-4455-46d5-9b2a-0f15d84d75ec

x-amcn-network: bbca

x-amcn-language: en

x-amcn-platform: web

x-amcn-service-id: bbca

x-amcn-tenant: amcn

x-ccpa-do-not-sell: passData

Content-Length: 241

{"adobeShortMediaToken":"","hba":false,"adtags":{"lat":0,"url":"https://www.bbcamerica.com/shows/killing-eve/episodes/season-4-just-dunk-me--1052529","playerWidth":1920,"playerHeight":1080,"ppid":1,"mode":"on-demand"},"useLowResVideo":false}

you get this result:
{
  "data": {
    "playbackJsonData": {
      "sources": [
        {
          "key_systems": {
            "com.apple.fps.1_0": {
              "certificate_url": "https://manifest.prod.boltdns.net/license/v1/fairplay_app_cert/6240731308001",
              "key_request_url": "https://manifest.prod.boltdns.net/license/v1/fairplay/6240731308001/01af0a57-214d-4fdd-86fd-f792135ce46f/094c1a42-2432-41f1-b376-bb683a7a47fb?fastly_token=NjI0NjZhMzVfZDdjODZjNzUwNWM5Y2I1NmUzMDMwNjcyZWFhZWM3YTZiNGM1MmNjNDA3YzFjN2YwZTQ2ZTY2NmY1YjQ0Mjk1MQ%3D%3D"
            }
          },
          "src": "http://ssaimanifest.prod.boltdns.net/playback/once/v1/hls/v5/fairplay/6240731308001/8ebcf878-2abe-4ca8-8edc-9e46cdb0e6b8/01af0a57-214d-4fdd-86fd-f792135ce46f/master.m3u8?bc_token=NjI0NjZhMzVfODBiYTgxYjgyNTc0ZDY1YjExMDcyZTBjNzQyZTdkMjljOTk1YzkxZDg0MTc3OTNkZjJmODg5Y2VjMjY1Y2NkNQ%3D%3D&behavior_id=17308414-5636-4b1c-8c21-a168289f0440",
        },
        {
          "key_systems": {
            "com.apple.fps.1_0": {
              "certificate_url": "https://manifest.prod.boltdns.net/license/v1/fairplay_app_cert/6240731308001",
              "key_request_url": "https://manifest.prod.boltdns.net/license/v1/fairplay/6240731308001/01af0a57-214d-4fdd-86fd-f792135ce46f/094c1a42-2432-41f1-b376-bb683a7a47fb?fastly_token=NjI0NjZhMzVfZDdjODZjNzUwNWM5Y2I1NmUzMDMwNjcyZWFhZWM3YTZiNGM1MmNjNDA3YzFjN2YwZTQ2ZTY2NmY1YjQ0Mjk1MQ%3D%3D"
            }
          },
          "src": "https://ssaimanifest.prod.boltdns.net/playback/once/v1/hls/v5/fairplay/6240731308001/8ebcf878-2abe-4ca8-8edc-9e46cdb0e6b8/01af0a57-214d-4fdd-86fd-f792135ce46f/master.m3u8?bc_token=NjI0NjZhMzVfODBiYTgxYjgyNTc0ZDY1YjExMDcyZTBjNzQyZTdkMjljOTk1YzkxZDg0MTc3OTNkZjJmODg5Y2VjMjY1Y2NkNQ%3D%3D&behavior_id=17308414-5636-4b1c-8c21-a168289f0440",
        },
        {
          "key_systems": {
            "com.microsoft.playready": {
              "license_url": "https://manifest.prod.boltdns.net/license/v1/cenc/playready/6240731308001/01af0a57-214d-4fdd-86fd-f792135ce46f/883780c4-a981-494c-b994-9e93792ff8a7?fastly_token=NjI0NjZhMzVfMTIwMzA5MTI3ZmJhYTVkOWI2Y2YxOWI3MjdhZGM5NDNiMDllNTcwM2Y1OTA2ZjQwOGFlNGQ3YmI4MWZmY2I5ZA%3D%3D"
            },
            "com.widevine.alpha": {
              "license_url": "https://manifest.prod.boltdns.net/license/v1/cenc/widevine/6240731308001/01af0a57-214d-4fdd-86fd-f792135ce46f/883780c4-a981-494c-b994-9e93792ff8a7?fastly_token=NjI0NjZhMzVfZjAwODYyZTA2NWZiZmQ3NDE1YTU2ZWQ0ZDI4NTYwN2I2YjFlMGJlZTExYjAwNjExMWVmOWJmZDVmMWI5ZDE3Yg%3D%3D"
            }
          },
          "src": "http://ssaimanifest.prod.boltdns.net/playback/once/v1/dash/live-timeline/bccenc/6240731308001/8ebcf878-2abe-4ca8-8edc-9e46cdb0e6b8/01af0a57-214d-4fdd-86fd-f792135ce46f/manifest.mpd?bc_token=NjI0NjZhMzVfNDc2NGI1OGI3MjNhODRiYTNlODJjMWY0Yjg5OGRhNTQ3MWQzMDRjYjgxNWRlNjYxOTlkZWExODM5NGM0ZmZlYQ%3D%3D&behavior_id=17308414-5636-4b1c-8c21-a168289f0440",
        },
        {
          "key_systems": {
            "com.microsoft.playready": {
              "license_url": "https://manifest.prod.boltdns.net/license/v1/cenc/playready/6240731308001/01af0a57-214d-4fdd-86fd-f792135ce46f/883780c4-a981-494c-b994-9e93792ff8a7?fastly_token=NjI0NjZhMzVfMTIwMzA5MTI3ZmJhYTVkOWI2Y2YxOWI3MjdhZGM5NDNiMDllNTcwM2Y1OTA2ZjQwOGFlNGQ3YmI4MWZmY2I5ZA%3D%3D"
            },
            "com.widevine.alpha": {
              "license_url": "https://manifest.prod.boltdns.net/license/v1/cenc/widevine/6240731308001/01af0a57-214d-4fdd-86fd-f792135ce46f/883780c4-a981-494c-b994-9e93792ff8a7?fastly_token=NjI0NjZhMzVfZjAwODYyZTA2NWZiZmQ3NDE1YTU2ZWQ0ZDI4NTYwN2I2YjFlMGJlZTExYjAwNjExMWVmOWJmZDVmMWI5ZDE3Yg%3D%3D"
            }
          },
          "src": "https://ssaimanifest.prod.boltdns.net/playback/once/v1/dash/live-timeline/bccenc/6240731308001/8ebcf878-2abe-4ca8-8edc-9e46cdb0e6b8/01af0a57-214d-4fdd-86fd-f792135ce46f/manifest.mpd?bc_token=NjI0NjZhMzVfNDc2NGI1OGI3MjNhODRiYTNlODJjMWY0Yjg5OGRhNTQ3MWQzMDRjYjgxNWRlNjYxOTlkZWExODM5NGM0ZmZlYQ%3D%3D&behavior_id=17308414-5636-4b1c-8c21-a168289f0440",
        }
      ]
    }
  }
}

We seem to be out of luck for AMC Networks videos, as they all seem to be DRM protected now.

I was able to successfully download and decrypt this media:
https://github.com/89z/mech/tree/741d1067/research/bbcamerica

No sense leaving this issue open, as the videos are all DRM protected.

@gkoelln are you still interested in this? I think I am now able to make an implementation. I did one already for Roku and Paramount

@89z only if it doesn't involve breaking DRM

@gkoelln what login are you using for these? I am able to download the free ones:
https://www.bbcamerica.com/shows/killing-eve/episodes/season-4-just-dunk-me--1052529
but I cant get the login ones:
https://www.bbcamerica.com/shows/killing-eve/episodes/season-4-don-t-get-attached--1052884
even in my browser. I logged in using Spectrum.

I'm using a YouTube TV login with cookies.  With all of the videos being DRM-protected, I'm unable to download the videos strictly with youtube-dl or yt-dlp.

@gkoelln would you mind loading this video:
https://www.bbcamerica.com/shows/killing-eve/episodes/season-4-don-t-get-attached--1052884
and capturing the request for this URL:
https://gw.cds.amcn.com/playback-id/api/v1/playback/1052884


Updates for fabric release v2.0.1

Updates for release v2.0.1 including release notes, version
reference updates, and removal of BASEIMAGE_RELEASE and related base
image environment variables which are no longer used in v2.x.
Signed-off-by: David Enyeart<EMAIL_ADDRESS>

Will use https://github.com/hyperledger/fabric/pull/750 instead.


Company counter not updated

Hi guys. I have problem to add my core iisues to my company.
My account https://www.drupal.org/u/hog
Company: http://www.drupalcores.com/companies.html - SkillD
In my local i started your script & i see me in company but not in http://www.drupalcores.com

For example this issue: https://www.drupal.org/node/2005546
http://storage5.static.itmages.com/i/15/0910/h_1441878382_1455984_9c503ad993.png

@lauriii Maybe we need to add some information on when the contributor->company script runs?

@lewisnyman sounds like a good idea. It might be also time to run the company update script because I rand it last time in early August

Any new runs of the company meta data?

My commits still not visible in company. Company is Skilld.


(Yomiroll) add language in preferred option

Source name
Yomiroll
Source language
Tamil
Describe your suggested feature
add Tamil(தமிழ்) language in preferred option on setting of yomiroll extension JJK and many upcoming anime have dub audio for it
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I have updated the app to version 0.13.5.
[X] I will fill out all of the requested information in this form.

Also could you add an option for a second preferred language, when the first isn't available? Pretty please 😊

This has been added

Also could you add an option for a second preferred language, when the first isn't available? Pretty please 😊

If preferred language is not available, the original jp or eng will be served. since there is information about which languages are available in the scanlator field, I don't think this is necessary. The concern should be raised in a new issue since it's not related with the original issue.


luci-app-samba: "Share home-directories" check box

There are two valid values: 0 and 1. The page looks much better with a check box for "Share home-directories".

Please edit the title. It is overly long and continues to the next line. It should be totally visible above here.
Add a longer explanation in the message body, if needed, but keep the title short.

It is 0/unchecked by default, so no need to set a default. I have cleaned it up and shortened the title.

Title is still too long.
If seen in patch format, the title continues without break to the next line. Then Github (and git) thinks that it is one very very long title. You need to leave one empty line before the longer explanation/message.
https://github.com/fantom-x/luci/commit/0d4cee8550ad036d4cca1bc7f4fa5a777ec260b1.patch
[PATCH] luci-app-samba: "Share home-directories" has only two values
 0 and 1. There is no need for it to be a text box

Signed-off...

You should have it something like:
luci-app-samba: use flag for "Share home-directories" option

"Share home-directories" has only two values 0 and 1. There is no need for it to be a text box

Signed-off...

I thought you were referring to the PR title. Fixed now.

Is it acceptable to request the change backported to 17.01 in a PR? That would simplify my life when recovering from another bricked-router situation.
Are there guidelines about backports?

Yeah, these are simple changes and can be backported. But lets waits a few days if somebody has a different opinion about the correctness of the changes made.
Remind me in a week or so.

Sure thing. I would also really like running my changes pre-built (the way other people get them) and keep testing them. I will now be following up a week later.


Correct documentation to note that COMBINE archives are limited to 1GB, including archives submitted via URLs

I believe this limit is discussed in a few places

[x] Update FAQs
[x] Update notes in web forms
[x] Search for 1 GB in the code and update as appropriate

:tada: This issue has been resolved in version 8.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


how to build an APK from ionic/react to install on my android device or publish on google play?

I finished developed my app (ionic/react) what's next ? how to install that app on my device or on the google play ?
refering to docs : https://ionicframework.com/docs/deployment/play-store
on the first section #Generating a release build of an app
I should get started with this command :
$ ionic cordova build android --prod --release
Im getting his error :
[ERROR] Ionic doesn't support using Cordova with @ionic/react projects.
 We encourage you to try Capacitor (https://ion.link/capacitor)

on capacitor nothing is clear for me !

Did you try using this?
cordova build android --prod --release?
Try it without ionic. If that does not work try this:
npx cap copy android
npx cap open android

you can use capacitor, using command
ionic cap add android
ionic cap copy android
ionic cap run android
after that android studio will open, you can build apk from android studio


cmd/compile: inline multiplication corrupts an argument on arm

What version of Go are you using (go version)?

go version go1.11.2 linux/amd64

Does this issue reproduce with the latest release?
YES
What operating system and processor architecture are you using (go env)?
go env Output
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/fred/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/fred/workspace/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/lib/go"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build795351668=/tmp/go-build -gno-record-gcc-switches"

### What did you do?

package main
import (
"fmt"
)
func main() {
id := 1
a := float32(2.0)
b := float32(5.0)
testOut(id, a*b)
}
func testOut(id int, a float32) {
fmt.Println(id, a)
}
$ env GOOS=linux GOARCH=arm go build -o test.arm7 main.go
running on raspberry pi 3 Model:B V:2
Linux PiOne 4.14.79-1-ARCH #1 SMP Tue Nov 6 03:01:46 UTC 2018 armv7l GNU/Linux
$ ./test.arm7

What did you expect to see?
1 10
What did you see instead?
1073741824 10
When I do the multiplication outside the function call testOut() I get output (1 10).
Only happens when I do cross compilation.
When I cross compile and set GOARM=7, it works just fine.
env GOOS=linux GOARCH=arm GOARM=7 go build -o test.arm7 main.go

@derfbn does this occur with Go 1.10 or previous Go versions?

Tentatively marking as a release blocker for 1.12, until we're sure that this isn't important enough.

go version go1.10.5 linux/amd64
go env Output
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/fred/.cache/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/fred/workspace/go"
GORACE=""
GOROOT="/home/fred/trash/gotest/go1.10.5/go"
GOTMPDIR=""
GOTOOLDIR="/home/fred/trash/gotest/go1.10.5/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build790837178=/tmp/go-build -gno-record-gcc-switches"

@mvdan does not occur on Go 1.10.5

CC @randall77

Seems like a backport candidate. Let's wait to see what the diagnosis is.

The issue can be reproduced on mips too.

@gopherbot please open a backport tracking issue for 1.11. This is a compiler correctness bug.

Could this also be backported to 1.10 because it affects mips softfloat support which is added in 1.10.

Sure. FYI, anyone can open a backport request.
@gopherbot please also open a backport tracking issue for 1.10. This is a compiler correctness bug.

Hmm, gopherbot doesn't seem to be as speedy as I would expect. I wonder whether incrementally adding backport releases isn't well supported right now. @dmitshur?

@josharian You're hitting the known issue #25574. Gopherbot already responded to a backport command earlier in this issue, so until #25574 is resolved, it never listens to follow up backport requests.


Bluetooth: controller: Remove include guards in internal files

Remove include guards in internal files; it is an agreed
convention to not have include guards in internal header
files in Bluetooth subsystem.
Signed-off-by: Vinayak Kariappa Chettimada<EMAIL_ADDRESS>

Codecov Report

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

@@           Coverage Diff           @@
##           master    #8381   +/-   ##
=======================================
  Coverage   64.61%   64.61%
=======================================
  Files         423      423
  Lines       40293    40293
  Branches     6801     6801
=======================================
  Hits        26034    26034
  Misses      11126    11126
  Partials     3133     3133

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 a55c72d...aea847d. Read the comment docs.


League task claimed, not actually finished?

BSO obviously
Did a leagues claim, as I had forgotten to after I finished my Master clue tasks, and already started on Elite clues.
Did a check on my Actual Clues Done stat beforehand, and even thought I hadn't actually completed 500 Elites, I still got the task completed for it.

Good spot, fixed in next update.


Serializing scripts into scenes

original discussion in #12

This is mentioned in the readme, Script components do get serialized into the scene, one must simply call Script::reload_script in order to create a new context (which would not persist into the scene)