Can anything be moved from iram to rom?

Hi there,
i integrated a custom memory allocator (umm_malloc) into esp-open-rtos.
But since it has to be in iram, i can't find enough space for it!
Is there anything i could remove from iram?
Of course i already removed mallocr.o and freer.o, since i replace them completly.
Objects i tried to move to rom so far:
*libgcc.a:*div*i3.o -> fails when changing wifi credentials
*libc.a:*rand.o -> fails when used
i don't think it makes sense to touch any of the mem* functions, does it?
I really only need a few hundred bytes more, can you help me?

Hi again,
I'm here to answer my own question, in case anybody will ever need it.
The reason why the libgcc *i3 functions can't be moved to flash is not because they are called before flash is mapped. It's rather that they are called inside ISRs and the flash can be unmapped during this.
The guys from the esp8266-Arduino-core experienced something similar:
e.g. https://github.com/esp8266/Arduino/issues/1403
You get exception 0 (illegal instruction) when that happens.
My solution is now to take the PROVIDE() statements from rom.ld that contain the basic gcc arithmetic functions:
PROVIDE ( __adddf3 = 0x4000c538 );
PROVIDE ( __addsf3 = 0x4000c180 );
PROVIDE ( __divdf3 = 0x4000cb94 );
PROVIDE ( __divdi3 = 0x4000ce60 );
PROVIDE ( __divsi3 = 0x4000dc88 );
PROVIDE ( __extendsfdf2 = 0x4000cdfc );
PROVIDE ( __fixdfsi = 0x4000ccb8 );
PROVIDE ( __fixunsdfsi = 0x4000cd00 );
PROVIDE ( __fixunssfsi = 0x4000c4c4 );
PROVIDE ( __floatsidf = 0x4000e2f0 );
PROVIDE ( __floatsisf = 0x4000e2ac );
PROVIDE ( __floatunsidf = 0x4000e2e8 );
PROVIDE ( __floatunsisf = 0x4000e2a4 );
PROVIDE ( __muldf3 = 0x4000c8f0 );
PROVIDE ( __muldi3 = 0x40000650 );
PROVIDE ( __mulsf3 = 0x4000c3dc );
PROVIDE ( __subdf3 = 0x4000c688 );
PROVIDE ( __subsf3 = 0x4000c268 );
PROVIDE ( __truncdfsf2 = 0x4000cd5c );
PROVIDE ( __udivdi3 = 0x4000d310 );
PROVIDE ( __udivsi3 = 0x4000e21c );
PROVIDE ( __umoddi3 = 0x4000d770 );
PROVIDE ( __umodsi3 = 0x4000e268 );
PROVIDE ( __umulsidi3 = 0x4000dcf0 );

then i removed the PROVIDE() to make them fixed assignments and put them at the start of program.ld.
This way the built in rom functions replace the ones from libgcc. I think they are simple enough to assume that the are moreor less like the current gcc ones.
Here we go,i have around 2kb more iram for my stuff!
Another approach would have been to completly replace rand and srand by putting hwrand in iram and wrapping rand calls to hwrand. We anyway initialize srand with hwrand.
The onlydrawback would be, that you can't get a fixed pseudorandom sequence from rand anymore. But who needs this anyway?

Great, and extra 2k is a good win, thanks for reporting this.
fwiw I expect in the current code that an ISR can run in flash. e.g. It appears that the wdev interrupt handler calls malloc which is in flash. Note the comment in the link that this is ok so long as all uses of the spi disable all interrupts, and I think the esp-open-rtos code does that in critical sections and wraps spi uses in critical sections - if not then that might need to be explored?

Hmm, interesting. I actually didn't remove all *i3 functions from iram, just the div functions, as they need the most memory and are not necessary (yet) before flash is mapped.
To trigger this i had to rebuild completly and erase the flash first, otherwise __div is not called (seems to be only needed for some first time wifi connection stuff).
I want to note that my setup is partly modified esp-open-rtos, but none of my changes should be causing that i think.
The device starts normally until i want to connect to AP:
mode : sta(60:01:94:16:e9:89)
add if0
Fatal exception (0):
epc1=0x4024f228

0x4024f228: __udivsi3 at /cygdrive/d/Daniel/git/esp-open-sdk/crosstool-NG/.build/src/gcc-4.8.5/libgcc/config/xtensa/lib1funcs.S:515

epc2=0x00000000
epc3=0x00000000
excvaddr=0x40261368

0x40261368: blowfish_enc at blowfish.c:?

depc=0x00000000
excsave1=0x401006a5

0x401006a5: sdk_SPIEraseSector at /cygdrive/d/Daniel/git/esp-open-rtos/open_esplibs/libmain/spi_flash.c:102

Registers:
a0 401006a5 a1 3fffa000 a2  00400000 a3  00001000

0x401006a5: sdk_SPIEraseSector at /cygdrive/d/Daniel/git/esp-open-rtos/open_esplibs/libmain/spi_flash.c:102

a4  60000200 a5  fffdffff a6  04000003 a7  fffffffe
a8  04000002 a9  04000003 a10 00000001 a11 04000002
a12 3ffe88a8 a13 000003fd SAR 00000016

Stack: SP=0x3fffa000
0x3fffa000: 003fd000 3fffad6c 000003fd 401007dc

0x401007dc: sdk_spi_flash_erase_sector at /cygdrive/d/Daniel/git/esp-open-rtos/open_esplibs/libmain/spi_flash.c:157

0x3fffa010: 40100878 00000001 00000370 402625e6

0x40100878: sdk_SPIRead at /cygdrive/d/Daniel/git/esp-open-rtos/open_esplibs/libmain/spi_flash.c:94
 (inlined by) sdk_spi_flash_read at /cygdrive/d/Daniel/git/esp-open-rtos/open_esplibs/libmain/spi_flash.c:187

0x402625e6: sdk_system_get_checksum at ??:?

0x3fffa020: 40262679 00001000 3ffea63c 4025d630

0x40262679: sdk_wifi_param_save_protect at ??:?

0x4025d630: mbedtls_x509_time_is_future at ??:?

0x3fffa030: 402501e7 000003fd 3ffea63c 4026265c

0x402501e7: strncmp at ??:?

0x4026265c: sdk_wifi_param_save_protect at ??:?

0x3fffa040: ffffff00 ffffffff ffffffff ffffffff
0x3fffa050: ffffffff ffffffff ffffffff 000003fc
0x3fffa060: 000003ff 4026252c 00000001 00000000

0x4026252c: sdk_wifi_set_opmode_local at ??:?

0x3fffa070: 00000001 40262552 3fffa4a0 3ffea5c4

0x40262552: sdk_wifi_set_opmode at ??:?

Free Heap: 52464
_heap_start 0x3fff2e10 brk 0x3fff2e10 supervisor sp 0x3ffffb00 sp-brk 52464 bytes
arena (total_size) 0 fordblks (free_size) 0 uordblocks (used_size) 0

Please ignore all heap related output, i use my own allocator so mallinfo() is reporting crap :-)

And here another one when commenting out " libc.a:rand.o(.literal .text .literal. .text.) " from iram section. This one triggers after a lot of tcp traffic and is quite indeterminant, which points to some race condition involving interrupts?
Fatal exception (0):
epc1=0x40214534

0x40214534: rand at /home/gus/dev/esp/rtos/newlib/build/xtensa-lx106-elf/newlib/libc/stdlib/../../../../../newlib/libc/stdlib/rand.c:84

epc2=0x00000000
epc3=0x401010b6

0x401010b6: read_block at /cygdrive/d/Daniel/git/esp-open-rtos/core/spiflash.c:182
 (inlined by) read_data at /cygdrive/d/Daniel/git/esp-open-rtos/core/spiflash.c:204
 (inlined by) spiflash_read at /cygdrive/d/Daniel/git/esp-open-rtos/core/spiflash.c:225

excvaddr=0x4024e944

0x4024e944: tcp_poll at ??:?

depc=0x00000000
excsave1=0x40102e71

0x40102e71: sdk_lmacTxFrame at ??:?

Registers:
a0 40102e71 a1 3ffea1a0 a2  00000000 a3  0000000d

0x40102e71: sdk_lmacTxFrame at ??:?

a4  0142f31c a5  3ff20a00 a6  00060000 a7  00000000
a8  3ff209d0 a9  0006d274 a10 00060000 a11 00000005
a12 3ffec8c8 a13 3ffec850 SAR 00000020

Stack: SP=0x3ffea1a0
0x3ffea1a0: 00000005 40102a47 3ffec8c8 3ffeba64

0x40102a47: sdk_lmacMSDUAged at ??:?

0x3ffea1b0: 00000001 40102531 3ffec8c8 04000000

0x40102531: sdk_lmacRecycleMPDU at ??:?

0x3ffea1c0: 4010478b 3ffeba64 00186a00 00000000

0x4010478b: sdk_trc_NeedRTS at ??:?

0x3ffea1d0: 4010294b 3ffec8c8 3ffeb6e0 0000007f

0x4010294b: sdk_lmacMSDUAged at ??:?

0x3ffea1e0: 3ff20a00 00040000 00000000 00000000
0x3ffea1f0: 40102c2d 00080000 00000002 00000100

0x40102c2d: sdk_lmacProcessAckTimeout at ??:?

0x3ffea200: 40104ecc 40104db1 3ff20a00 00000000

0x40104ecc: sdk_wDev_ProcessFiq at ??:?

0x40104db1: sdk_wDev_ProcessFiq at ??:?

0x3ffea210: 00000000 53002200 04e62528 401002bc

0x401002bc: NMIExceptionHandler at exception_vectors.o:?

Free Heap: 52464
_heap_start 0x3fff2e10 brk 0x3fff2e10 supervisor sp 0x3ffffb00 sp-brk 52464 bytes
arena (total_size) 0 fordblks (free_size) 0 uordblocks (used_size) 0

Interesting, so the flash code wraps uses of the spi in vPortEnterCritical and vPortExitCritical but that must only disable the maskable interrupts. The wdev interrupt seems to be a NMI, so must still run, and thus all those paths might need to be in iram. Since we don't seem to have malloc in iram at present and the wdev handler calls malloc that seems a problem that needs fixing.
You might be able to test that by also disabling these NMIs when using the spi. For example try these:
void IRAM vPortEnterCritical(void) {
    if (!sdk_NMIIrqIsOn) {
        portDISABLE_INTERRUPTS();
        do {
            DPORT.DPORT0 &= 0xFFFFFFE0;
        } while (DPORT.DPORT0 & 1);
    }
}

void IRAM vPortExitCritical(void) {
    if (!sdk_NMIIrqIsOn) {
        DPORT.DPORT0 = (DPORT.DPORT0 & 0xFFFFFFE0) | 1;
	portENABLE_INTERRUPTS();
    }
}

Unfortunately wDev_ProcessFiq needs work, it just asserts if a frame was missed, but see how it goes and that can be fixed too. The wdt might also trigger on long spi operations, and that can be fixed too.
Another option might be to audit those paths, work out a minimal amount of code that needs to be in iram for the wdev handler and ensure it is. It seems odd to allocate the rx esf buffers from a pool but to be calling malloc for the small pp_post objects, and perhaps such allocations could be from a pool too.

I can test that, but it seems odd to me delaying the lowlevel wifi handling with every flash access.
I think it is a better option to keep needed code in iram. And I am not even sure that malloc is placed in flash? i thought i saw it mapped to iram the other day, maybe some linker/compiler optimization?
I really don't know much about the wdev stuff yet, so i only partially understand what you are saying :-)
Especially the last bit about pp_post objects is cryptic for me. ;-)

@anyn99 Yes, I guess it would be best to keep all that path in iram.
Looking again I think you are right that malloc is in iram, sorry.
Taking another look at the pp_post paths, perhaps it does allocate from a pool too, sorry. The func002 might be allocating two word objects from a pool for pp_post and filling these with the first and second arguments for pp_post, and pp_task calls func012 at the end of each loop which might free from this pool.
The first argument to pp_post seems to be a code and for 0,1,2,3 it used xQueueSendToBack and these appear to for TX paths so probably not from the interrupt handler.
Code 5 looks like the normal RX interrupt path, but rather than just sending to the queue, it allocates an object using func003 than calls PendSV(2) which might be effectively portYield. This in turn appears to end up at MacIsrSigPostDefHdl which calls func002 and moves the entry to that queue. This path does seems really odd. Why go to all that trouble?
I don't yet understand how all this fits together, but I think a good command of this code is needed.

If only for the record, hit a use of malloc in the NMI - lmac calls rand() and the newlib version uses the reent structure which is dynamically allocated. Even using a reent struct in the NMI is wrong. I think we can fix that by renaming rand() in the sdk and supplying a safe version.


ci: increase build timeout

@calebkiage Looking at the build, its most likely that the agent is being killed due to running out of memory (hence no logs really retrieved) and not of a timeout. I'd also suggest trying to switch to a different agent as @petrhollayms suggested.

@andrueastman, I'll try that. Out of curiosity, where did you find the information that the reason was running out of memory?

@andrueastman, I'll try that. Out of curiosity, where did you find the information that the reason was running out of memory?

Error logs have messages like this which suggests a resource starvation. https://learn.microsoft.com/en-us/azure/devops/pipelines/troubleshooting/troubleshooting?view=azure-devops#pipeline-stopped-hearing-from-agent

We stopped hearing from agent Azure Pipelines 4. Verify the agent machine is running and has a healthy network connection. Anything that terminates an agent process, starves it for CPU, or blocks its network access can cause this error. For more information, see: https://go.microsoft.com/fwlink/?linkid=846610


Add resource SPTrustedSecurityTokenIssuer

Pull Request (PR) description
Add resource SPTrustedSecurityTokenIssuer
This Pull Request (PR) fixes the following issues
None
Task list

[x] Added an entry under the Unreleased section of the change log in the CHANGELOG.md.
Entry should say what was changed, and how that affects users (if applicable).
[x] Resource documentation added/updated in README.md in the resource folder.
[x] Resource parameter descriptions added/updated in schema.mof
and comment-based help.
[ ] Comment-based help added/updated.
[ ] Localization strings added/updated in all localization files as appropriate.
[x] Examples appropriately added/updated.
[x] Unit tests added/updated. See DSC Resource Testing Guidelines.
[ ] Integration tests added/updated (where possible). See DSC Resource Testing Guidelines.
[x] New/changed code adheres to DSC Resource Style Guidelines and Best Practices.

This change is

Codecov Report

Merging #1088 into dev will decrease coverage by <1%.
The diff coverage is 67%.

@@          Coverage Diff          @@
##             dev   #1088   +/-   ##
=====================================
- Coverage     92%     92%   -1%
=====================================
  Files        119     120    +1
  Lines      13141   13233   +92
=====================================
+ Hits       12191   12253   +62
- Misses       950     980   +30

The current status is that I finished the code of the resource itself, and I'm working on the Pester tests.

@ykuijs this PR is now ready for your review!

Please make sure you pull from dev and resolve the conflicts in the changelog. Without that AppVeyor is unable to run its tests.

Modules/SharePointDsc/DSCResources/MSFT_SPTrustedSecurityTokenIssuer/MSFT_SPTrustedSecurityTokenIssuer.psm1, line 147 at r3 (raw file):
Previously, ykuijs (Yorick Kuijs) wrote…
If this is a possible scenario, we should cater for that. Do you know if this is a possible scenario?

It's probably possible but potentially not simple to handle, I will investigate and let you know


[IOS] Firebase phone number auth - enter a valid phone number

I am using Firebase auth phone number in my application in Japan. With some phone numbers work very good  and I can authenticate  accounts easily, but some numbers I've got an issue : Please Enter Valid Phone Number. I know that this error is from server Firebase. Could you help me to check , what's gonna here?.
In fact , these phone numbers are valid Japan mobile numbers.
For more informations, about my environment and tools,SDK :
Xcode 13.0
iOS 14.0 and over
Firebase v8.8.0

Changing tag from feature request to question.

Changing tag from feature request to question.

I changed type for this issue . Please check and help me

Hi @AnhNguyen241194, first off, is it possible for you to try the following and see if you'll also get an invalid phone number error:

Use our Firebase Auth quickstart app and check if the issue is reproducible
Use this FirebaseUI Auth demo and see if they'll receive an SMS code

Let me know of your findings.


board: stm32_min_dev: Add SPI support

This commit adds SPI support to stm32_dev_mini a.k.a Blue Pill
stm32f103 board.
Signed-off-by: Jukka Rissanen<EMAIL_ADDRESS>

Hi, I have a enc28j60 SPI based ethernet module and I am trying to connect it to stm32f103 board. Currently I am not able to send data and I am suspecting that this SPI code is not correct. Does this PR look anything sane or usable?

@jukkar Are you using pins PA4 or PB12 for CS? If yes, did you try to set NSS to:
STM32F1_PINMUX_FUNC_PA4_SPI1_MASTER_NSS_OE
STM32F1_PINMUX_FUNC_PB12_SPI2_MASTER_NSS_OE

Codecov Report

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

@@           Coverage Diff           @@
##           master    #7191   +/-   ##
=======================================
  Coverage   55.02%   55.02%
=======================================
  Files         477      477
  Lines       51749    51749
  Branches     9951     9951
=======================================
  Hits        28477    28477
  Misses      19306    19306
  Partials     3966     3966

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 341b427...8e8d999. Read the comment docs.

Are you using pins PA4 or PB12 for CS? If yes, did you try to set NSS to:

I have tried both for CS, and also now tried STM32F1_PINMUX_FUNC_PA4_SPI1_MASTER_NSS_OE. No luck with SPI in my setup.

Of course I might have wrong settings for the enc28j60 chip, currently I have these configured in .conf file.
CONFIG_ETH_ENC28J60=y
CONFIG_ETH_ENC28J60_0=y
CONFIG_ETH_ENC28J60_0_SPI_BUS_FREQ=36000000
CONFIG_ETH_ENC28J60_0_SPI_PORT_NAME="SPI_1"
CONFIG_ETH_ENC28J60_0_GPIO_PORT_NAME="GPIOA"
CONFIG_ETH_ENC28J60_0_GPIO_PIN=15

I have tried different pins for GPIO but so far it had not made any difference.

I have tried both for CS, and also now tried STM32F1_PINMUX_FUNC_PA4_SPI1_MASTER_NSS_OE.

I have used SPI on olimexino_stm32 board (stm32f103rb) to access a SDHC card. The board doesn't use PA4 or PB12 as CS. It uses PD2 as CS and the SDHC over SPI driver controls the CS. Did you try to set CS using:
CONFIG_ETH_ENC28J60_0_GPIO_SPI_CS
CONFIG_ETH_ENC28J60_0_SPI_CS_PORT_NAME
CONFIG_ETH_ENC28J60_0_SPI_CS_PIN

I have used SPI on olimexino_stm32 board (stm32f103rb) to access a SDHC card. The board doesn't use PA4 or PB12 as CS. It uses PD2 as CS and the SDHC over SPI driver controls the CS. Did you try to set CS using:

Not yet, I will try that next. Thanks for the hint.

Rebased and fixed the commit message. So far I have not been able to verify if these settings are correct and working.

@jukkar what do we want to do with this PR?

@jukkar, ping

Lets close this for time being, I cannot verify if this really works atm.


Question: Trouble with repacked installation of DBeaver

DBeaver - Version 5.1.1 CE
Operating System: Windows 7 / Windows 8.1 / Windows 10
We have repacked the DBeaver to be able to ship it with our configuration. But when running the dbeaver.exe on some Windows 7 Machines DBeaver does not start up.
The way we repack DBeaver are:
o We run your original installation on a Windows 10 machine.
o We configure the DBeaver to use a configuration directory in the installation directory.
o We configure the DBeaver to use a driver directory in the intallation directory.
o Our installation copies all the files (program, configuration and drivers).
o We finall add a shortcut on that point to the "dbeaver.exe" file.
On most machine, this workes super great, but on some Windows 7 Machines nothing happens when I try to start the program.
Question - Are there:
o Some more considurations that the original DBeaver insallation does on what files to use?
o Some files that are installed outside the choosen DBeaver installation directory?
o Some registrations of shared installed files needed?
o Are there some windows registry values that are essetial that must exist?
I have run the original installer on a SandboxIE environment and all files seems to be installed in the program directory only (and of course configuration and drivers in the user AppData directy). And only windows registry value I have noticed are two values that refer to the path of the dbeaver.exe file.
If I on a "trouble" machine run our original DBeaver installer, that installation workes ok.
Tips of what I might suffer from or way I can furter test what is amiss would be very appreciated.

Some more considurations that the original DBeaver insallation does on what files to use?

No, there are no any specific dependencies. Except Java. But it is already bundled in installer.
BTW what arch do you use (32 or 64 bit)? Are all of your machines have the same arch?

Some files that are installed outside the choosen DBeaver installation directory?

No.

Some registrations of shared installed files needed?

No.

Are there some windows registry values that are essetial that must exist?

No.
DBeaver installer copies files only in target installation directory. DBeaver itself then creates configuration/drivers folders in the user home (or wherever it was configured to).

We have only bundled the 32-bit version of DBeaver.
The machine where we do installation are both 32-bit machines and 64-bit machines, with Windows-7, 8, 8.1 and 10.
PS. We have considered to run the DBeaver installation silent within our own installation, but there is still a bug in the DBeaver installation that we can't specify the installation directory (the command-line parameter is ignored).


panic: the '*' type already exists in container

I want to add duplicate type name within an container.providers,and then I can't found replace method of v.2.x yet. that it had in v1.x  .
My intent was replace old type with new registered type. and then get new type with Container.Extract .

@maxzhang1985 Is this for testing purposes?
At the moment, I doubt the need for an inject.Replace() method because the replacement can be carried out without it.
In v2 you can do it like this:
var options []inject.Option

 // for example, you can get test flag from the environment
if test {
  options = append(options, inject.Provide(NewTestDependency))
} else {
  options = append(options, inject.Provide(NewDependency))
}

container := inject.New(options)

I want to design a framework, preset some interfaces and implementations, and then let users add their own implementations of these interfaces. Then there is still such a need for delay selection replacement.

Whether it can replace the old type with the new type. In your code at (c *Container) Provide function , "if c.exists(k) ... panicf() " .

I want to design a framework, preset some interfaces and implementations, and then let users add their own implementations of these interfaces. Then there is still such a need for delay selection replacement.

You can try to handle it at the framework level.

Whether it can replace the old type with the new type. In your code at (c *Container) Provide function , "if c.exists(k) ... panicf() " .

I may return this feature but it will take some time.
In addition that needs to replace the provider itself, needs to replace provider in a group and in interface alias if inject.As() used.


⚠ 366.ru has degraded performance

In 53b9c16, 366.ru (https://366.ru) experienced degraded performance:

HTTP code: 200
Response time: 6312 ms

Resolved: 366.ru performance has improved in 72ca32a.


Add Flutter SDK

Tool information

Tool name: Flutter SDK
Add or update? Add
Desired version: Whatever is latest
Approximate size: 500 MB
If this is an add request:

Brief description of tool: Flutter is a Google SDK for building cross-platform Android, iOS (MacOS host only), Web and desktop apps.
URL for tool's homepage: https://flutter.dev

Virtual environments affected

[x] macOS 10.14
[x] Ubuntu 16.04 LTS
[x] Ubuntu 18.04 LTS
[x] Windows Server 2016 R2
[x] Windows Server 2019

Can this tool be installed during the build?
Yes, using subosito/flutter-action, takes ~60s to complete

+1

@cachapa Thanks for the suggestion, there's a pretty good setup-flutter Action available and we have concerns over version maintenance on the virtual environment so we won't be adding it at this time.


Unit tests don't fail if an exception is thrown inside ChangeNotifier callback

Steps to Reproduce

Create a unit test (not widget test) to test a change notifier implementation.
Add a listener with expectAsync0 that will throw an exception when called

Actual results:

The exception is logged to the console, but the test completes successful.

Expected results:

The test should fail

I assume, that the issue is, that inside ChangeNotifier callback errors are caught and not propagated to the test runner.
If I set the error reporter explicitly like so:
 FlutterError.onError = (details) => reportTestException(
            details,
            'should set error when summaries are empty',
          );

At the beginning of the test, the test fails as I would expect it to.

Code sample
// ChangeNotifier
class MyController extends ChangeNotifier {
  bool isLoading = false;
Future<void> fetch() async {
    isLoading = true;
    notifyListeners();
   await Future.delayed(Duration(seconds:1, () {});
    isLoading = false;
    notifyListeners();
  }
}

// test
void main() {
  test('my test', () async {
   final controller = MyController();
   controller.addListener(expectAsync0((){
     expect(1,2); // supposed to fail for demonstration
    }));
   await controller.fetch();
  })
}

Logs
This will log something like this:
═╡ EXCEPTION CAUGHT BY FOUNDATION LIBRARY ╞════════════════════════════════════════════════════════
The following TestFailure was thrown while dispatching notifications for MyController:
Expected: <2>
  Actual: <1>

...

✓ MyController my test

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.3.9, on macOS 13.0.1 22A400 darwin-x64, locale de-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0-rc1)
[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.3)
[✓] IntelliJ IDEA Community Edition (version 2021.1.1)
[✓] VS Code (version 1.73.1)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

• No issues found!

Update 1:
if I use testWidgets(...) instead of test(...) the test behaves as expected and fails. So it seems to me that the configuration of the error reporter is missing inside the test method.
Maybe this is somehow intended, but at least from my perspective it is not clear, why the test of a plain ChangeNotifier should be a widget test.

Triage report
I can reproduce this issue on Master (3.7.0-4.0.pre.38). The error is logged to the console, but all tests pass.

Code Sample
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

class MyController extends ChangeNotifier {
  bool isLoading = false;
  Future<void> fetch() async {
    isLoading = true;
    notifyListeners();
    await Future.delayed(const Duration(seconds: 1), () {});
    isLoading = false;
    notifyListeners();
  }
}

// test
void main() {
  test('my test', () async {
    final controller = MyController();
    controller.addListener(expectAsync0(() {
      expect(1, 2); // supposed to fail for demonstration
    }));
    await controller.fetch();
  });
}

Logs
══╡ EXCEPTION CAUGHT BY FOUNDATION LIBRARY ╞════════════════════════════════════════════════════════
The following TestFailure was thrown while dispatching notifications for MyController:
Expected: <2>
  Actual: <1>

When the exception was thrown, this was the stack:
#0      fail (package:test_api/src/expect/expect.dart:134:31)
#1      _expect (package:test_api/src/expect/expect.dart:129:3)
#2      expect (package:test_api/src/expect/expect.dart:46:3)
#3      expect (package:flutter_test/src/widget_tester.dart:460:16)
#4      main.<anonymous closure>.<anonymous closure> (file:///Users/nabeelparkar/dev/nevercode/issue_116653/test/widget_test.dart:21:7)
#5      Function._apply (dart:core-patch/function_patch.dart:11:73)
#6      Function.apply (dart:core-patch/function_patch.dart:34:12)
#7      _ExpectedFunction._run (package:test_api/src/expect/expect_async.dart:195:23)
#8      _ExpectedFunction.max6 (package:test_api/src/expect/expect_async.dart:178:7)
#9      _ExpectedFunction.max0 (package:test_api/src/expect/expect_async.dart:144:15)
#10     ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:381:24)
#11     MyController.fetch (file:///Users/nabeelparkar/dev/nevercode/issue_116653/test/widget_test.dart:9:5)
#12     main.<anonymous closure> (file:///Users/nabeelparkar/dev/nevercode/issue_116653/test/widget_test.dart:23:22)
#13     Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:215:19)
<asynchronous suspension>
<asynchronous suspension>
(elided one frame from package:stack_trace)

The MyController sending notification was:
  Instance of 'MyController'
════════════════════════════════════════════════════════════════════════════════════════════════════
Another exception was thrown: Callback called more times than expected (1).
00:05 +1: my test
00:05 +1: All tests passed!


Community Meeting June 20, 2023

Overview
At 11am Eastern, 8am Pacific, 3pm UTC; find your time
Video call link: https://meet.google.com/bvb-qmdk-qwr
Or dial: (DE) +49 40<PHONE_NUMBER> PIN: 475 948 161#
More phone numbers: https://meet.google.com/tel/qhs-tuik-kwj?pin=7061261814168&hs=1
Meeting recordings available on YouTube at https://www.youtube.com/playlist?list=PLqN7RcoCwL96nXIIW6O51l8Lu_J-f5D27
Add topics you'd like to discuss below!
Agenda:

Summery of the current status
Prow migration
Cutting 0.20 release
What to do with open issues and PRs.
TMC

As discussed on Slack, lets talk about cutting a 0.20 release and what is missing before that?

Another topic: What to do with open issues and PRs.

TMC (https://github.com/faroshq/tmc/pull/4) We almost have it up-and-running again. Question to community: What would be acceptance criteria to promote to kcp-dev repo

Cleaning up repository, archiving unmaintained ones:
edge-mc
KubeStellar - a flexible solution for challenges associated with multi-cluster configuration management for edge, multi-cloud, and hybrid cloud
Decision: to be moved out https://github.com/kcp-dev/edge-mc/issues/539
code-generator
Generators for workspace-aware clientsets, informers, and listers
Decision: maintained
infra
CI infrastructure
Decision: maintained
apimachinery
API machinery library for logical-cluster-aware code
Decision: maintained
kcp
kcp is a Kubernetes-like control plane for workloads on many clusters
Decision: maintained
helm-charts
Helm chart repo for KCP
Decision: maintained
client-go
Golang libraries for multi-cluster-aware Kubernetes clients, listers and informers.
Decision: maintained
apiextensions-apiserver
Golang libraries for multi-cluster-aware Kubernetes API Extensions clients, listers and informers.
Decision: maintained
controller-runtime-example
Decision: maintained
controller-runtime
Adaption of the repo for the controller-runtime subproject of kubebuilder (sig-apimachinery)
Decision: maintained
logicalcluster
Small library for logical cluster helpers
Decision: maintained
kubernetes
This repository is Kubernetes plus minimal modifications to add logical clusters. Rebased regularly.
kcp-glbc
Global Ingress Controller for KCP
Decision: ?
enhancements
Enhancements tracking repo for kcp projects
Decision: maintained
kcp-tests
Tests against the publicly available interfaces (APIs, code, CLIs)
Decision: ?
Proposal: archive as these were additional blackbox tests by RH QE. The kcp project is relying on e2e inside of kcp repo only.
awesome-kcp
Collection of demos, blog posts, talks, etc. about kcp
Decision: ?
friends
Friends of kcp - let us know how you're using kcp at your organization!
Decision: ?
cel-go
Fast, portable, non-Turing complete expression evaluation with gradual typing (Go)
Decision: obsolete?
kcp.io
Website
Decision: maintained
catalog
API catalog functionality for kcp
Decision: ?
Proposal: archive as it is incomplete and not maintained
kcp-dev.github.io
Decision: maintained

Meeting time: vote in https://kubernetes.slack.com/archives/C021U8WSAFK/p1687246992334389?thread_ts=1687246051.543409&cid=C021U8WSAFK.
Proposal: move to Thursday, same time.

Decision made:

Moving the community meeting -> Agree to move to Thursday same time
Cutting 0.20 release -> Agreement on cutting a next release
What to do with open issues and PRs. -> Wait for the move of TMC as at least +100 issues are TMC related
TMC -> move TMC to a dedicated repo in the kcp-dev org
Cleaning Repos -> see https://github.com/kcp-dev/kcp/issues/2983#issuecomment-1598229928

Closing since this is done
/close


Add initial Travis CI config

Just run a full Go build at the top-level of the tree, since we don't have any
tests yet.

https://travis-ci.org/github/mbrukman/notebook/builds/707751459 shows that building Git from source takes a while:

Linux

Go: 1.12.x — 40 sec
Go: 1.13.x — 28 sec
Go: 1.14.x — 28 sec
Go: master — 3 min 30 sec

macOS

Go: 1.12.x — 57 sec
Go: 1.13.x — 55 sec
Go: 1.14.x — 54 sec
Go: master — 3 min 31 sec

So let's remove the build from source and keep the 1.12, 1.13, and 1.14 versions for faster turnaround times.


Playground editor reports incorrect line number for errors

The interpreter in the Playground reports the incorrect line number for errors (see the yellow box). This issue occurs in the development environment with all versions of the Source language.

Would you be surprised if i tell you this is because the error doesnt occur on "line 3 of your code"

This issue also occurs when the function error is invoked by the user program:

Handled by: https://github.com/source-academy/js-slang/pull/285

Hi team, thanks for the fix. However, when the error occurs in the invocation of a pre-declared function, the line number in the error message can be very confusing/misleading. Is there a way to better represent this?


proposal: Go 2: ban calling append with a single argument

So, this is the second time I've ran into this issue in the last couple months.  Ya, it's a silly mistake, but it definitely falls into the "probably incorrect" category that vet is designed to check for:
var list []myType
for v := range someChannel {
    list = append(list)
}

The append call is missing the actual thing to append.  While this is a perfectly syntactically-valid function call, it also is completely useless, and I can't think of a single valid situation where append with no variadic arguments is valid (note that this is distinct from appending a defined but empty slice, which has valid use cases).  In every situation I've ever seen this, it was a programmer mistake where they simply forgot to include what they actually wanted to append, and since a variadic argument can include 0 arguments, it doesn't generate a compile failure and is fairly annoying to debug, since the slice in question just seems to be empty for no readily apparent reason.
I think this definitely meets the correctness and precision requirements for vet features, and at least in my experience is at least as common a mistake as something like unreachable code, passing locks by value, or redundant boolean expressions.  A previous similar issue (#15117) noted that this is mechanically a no-op, but this is a no-op that is essentially always a programming error, not simply a no-op expression, which I think is what lets it fulfill the correctness requirement.

@josharian I was thinking of just making such code invalid. It's nugatory. It would be easy to add a go fix module to rewrite them.
I have never seen one in the wild. I just did a grep and can't find any in my GOPATH, but I didn't do the bigquery search.

In fact, you can probably try this using some bigquery lookup with a simple regexp.
The github data is a bit outdated but there seem to be some regexp matches (120 different lines, 1623 total matches), examples:
https://github.com/flynn/flynn/blob/1033a42b27c1acee8d8bac742a0d65291ce31b2c/test/test_cli.go#L692
https://github.com/moby/moby/blob/f8e29fdd683f8d1a79344df08342261c3991ad1b/image/rootfs.go#L41
https://github.com/yanzay/autohome/blob/9b98aa56c498e21fd580dbbcd5459cdc0c15f0c6/modules/arduino/arduino.go#L95

wow, even docker gets it wrong. From the code, it does look like it is giving the intended result. But why is it using append to achieve that is something I am not able to understand.

@agnivade
b := append(a)  is not a no-op, b will be a new slice that refers to the to the same underlying array as a does. That could be useful for copy-on-write semantics as happens in docker in the Append() function above the code refer to. Arguably, this is an abuse of the function, since you could do a[0:len(a)], but I guess append(a) is shorter. See here for my playing around:
https://play.golang.org/p/5uwTF33EOw7
Since this is already used in real, working code, a go vet warning might still be the best approach.

a[0:len(a)] is equivalent to a[:] which is equivalent to a. Similarly, append(a) is equivalent to a. There are no "copy on write" semantics here. Writing to, or appending to b will modify the memory pointed at by a in "surprising" ways, in particular in the way it interacts with capacity: https://play.golang.org/p/X4iOLsECduS
b := append(a) and b := a have equivalent behavior.

Another example: https://play.golang.org/p/aPoMJZ4Po__8

b := append(a) and b := a have equivalent behavior.

Yes, I even checked the assembly. Both of them are optimized to no instructions; which I think means the compiler is tracking them in the exact same way. Somebody with more knowledge on the compiler can chime in .
I think the author was thinking that maybe append(a) creates a new slice (with a separate backing array).
I propose this should be a vet check for Go1 and a compiler error for Go2.

b := append(a) and b := a have equivalent behavior.

Yes, I even checked the assembly. Both of them are optimized to no instructions; which I think means the compiler is tracking them in the exact same way. Somebody with more knowledge on the compiler can chime in .

Yep.

Code like a = append(b) works today, although it is the same as a = b, and people use it.  At the moment I can't see a good reason to break that code.
But since it seems that it does happen in practice, I think a vet check would be reasonable.

I fail to see why if you're going to block it by a vet check, you don't just block it up front with the compiler and avoid the overhead of looking for it on every test build. Either way it becomes illegal.

go test runs a subset of the vet checks. If we are going to add it to that subset, then yes it makes sense to block it up front. Otherwise, we can add it to the larger set of checks executed by go vet.

Even if it's not in the set that blocks the build, many programmers work in environments where vet must be silent. Adding a vet check in effect disables the property in the wild.
If you're going to block this with vet, it's better to disable it in the language.

I believe that there is plenty of code out there that people use without running go vet on it.  For example, all vendored code.  If we change the language, we break all that code immediately.  If we add a vet check, we only break the code that people write themselves, not the code they depend on.

Then I guess we can drop this, because this is not a problem worthy of a vet check. It's just a no-op, and we don't check for no-ops in vet, even ones that occur far more frequently than this one.

we don't check for no-ops in vet, even ones that occur far more frequently than this one.

We check for redundant boolean arguments, which falls into a similar category, since it's specifically checking for code that doesn't do anything under the expectation that the coder intended it to do something (or if not, can remove the extraneous code).  I fail to see how no-op appends, which are almost always a mistake in coding (that are furthermore difficult to detect or debug) fail to pass muster when redundant booleans do.

I have stepped on the same problem in our code twice - people forgot to add a second parameter, or it got "safely deleted" during the refactoring. So it does happen, and it was causing a mild error in both cases

I have often heard that the go team wants to start implementing small spec changes, adding and removing things that are there just because of the go1 guarantee.
If this is true then I think this would be a great example of a small change that would have minimal impact on running code, and would likely fix bugs.
Maybe add a vet check for 1.13 if you are worried about breaking code and then change the spec in 1.14.
I think this proposal would be something that you can use to test how people react to changes and how to go about them in the future.

As @randall77 helpfully found this ticket, and the ticket has not been active for 2 years to the day....
Would maybe the suggestion in: #48175 be a way to solve this? (prototype or a annotation for minimum vararg arguments) ?

Would maybe the suggestion in: #48175 be a way to solve this? (prototype or a annotation for minimum vararg arguments) ?

Not sure it's precisely this issue, but it seems related.  I think adding a mechanism to annotate limits on variadic arguments would be beneficial, and provided the existing syntax, in absence of whatever this new annotation is, continues to work without restriction, it's perfectly compatible with the 1.0 guarantee as well.
However, I'd like to extend your suggestion to also permitting a maximum for the variadic slice.  The notable use case for this, in my opinion, is a variadic slice that is intended to accept an optional argument.  For example, in a in-memory cache library, when adding an item to the catch, the user is permitted to add a time.Duration value to the call as well.  This is currently coded as a variadic, documented as ignoring anything after the first element, to allow the call to occur without a time.Duration value (and without a dummy/sentinel value like -1).  If we could specify it as a variadic slice, but say it can only accept 0 to 1 arguments, it would add a compiler-time check to it, just the same as mandating at least one entry into the variadic for solving this append issue.
For example (and I'm not suggesting this as the actual implementation syntax, just a working example of how it could be defined):
Add(key string, item interface{}, ...time.Duration[:1])

append(slice []Type, elem Type, elems ...Type[1:]) []Type

That's essentially re-using the subslice syntax, but again, just something I spitballed over the course of like 3 minutes.  The point isn't the specific syntax, but having a method of defining constraints on the length of the variadic slice within the function signature, that are then enforced by the compiler.

@kaedys using the syntax of subslices looks to me like a decent way to solve this. Agree on including a maximum, that can be very beneficial.
But then for append:
func append(slice []Type, elems ...Type[1:]) []Type
Would work already, no need to have the 'elem Type' portion (noting currently append is just: append(slice []Type, elems ...Type) []Type). as the 1: in the subslice would cover the minimum of one element for the vararg.
As you note, the good thing is that it would be backwards compatible, old code using just prototypes with Type would not have the [min:max] syntax and just be unlimited in min/max.
Of course, the question becomes a wee bit "why not pass a slice in the first place", but:
Printf("%s\n", []Type{"a", "b"})
Next to the same problem: can't define a min-max in the prototype, would be useful to then also have (not for Printf, varargs makes sense there, but using it as an example):
func Printf(fmt string, [1:2]interface{})
or
func XYZ(name string, [3]int)
so that one uses subslice notation to define min/max elements. That way, the compiler could either enforce at runtime that only "static" slices of the correct length are introduced. For variable (append-style) slices though, the compiler would have to emit an error in such a situation as it cannot ensure that the slice is actually exactly between min/max.
Of course, for short slices, the likely better option to use would be the existing:
func XYZ(name string, x, y, z int)
Which is shorter and clearer what is meant. Showing that the example has wee merit though ;)
Greets,
Jeroen

Would work already, no need to have the 'elem Type' portion

Heh, I actually straight copy-pasted it from your prior issue, to add the subslice syntax to it.  You're correct, we don't need the additional argument in that configuration.

Just reporting in that I shot my foot with this bug today.
I intended to do a = append(a, b), but mistyped and lost the b, resulting in 30 mins of wasted time.
We should flag this as an error in Go 2, if not 1.

This is a widespread problem in projects, even well-known open source projects.
Adding a detection I think is totally worthwhile and necessary

I'm going to close this issue in favor of #60448, an accepted proposal to add a vet warning for a call to append with a single argument.


Made the console classes final

Not sure if it makes sense to make all of these final.

They are already internal, so yes.


Should Cirq translation of REPEAT set use_repetition_ids=False?

In https://github.com/quantumlib/Stim/blob/429282441a9bb68269bb8bce7a78a9f581f07ac6/glue/cirq/stimcirq/_stim_to_cirq.py#L124
We now have an option to ditch the repetition ids that get prepended to each measurement key. To my understanding, that should better reflect the Stim circuit. https://github.com/quantumlib/Cirq/pull/4997

Also looks like ClassicallyControlledOperation isn't used yet?

Makes sense to use this. It's in a released version of cirq now?

Currently blocked on https://github.com/quantumlib/Cirq/issues/5418

The blocking issue was fixed by https://github.com/quantumlib/Cirq/pull/5419


Exclude the favicons from the optimized build

Currently the favicons are hashed and versioned which is causing 404's when you try to load them when using the production build. As hashing them results in no improvement, maybe they can simply be excluded?

Assigning to myself to have a look

Reassigning to @Coenego for review.

Coverage remained the same at 100.0% when pulling dd6e79654b114e987b43bdcd30024a7498237c09 on bp323:issue-420 into 7a801df83932f7f91de2af9bc726435fa4b63f94 on CUL-DigitalServices:master.


Set PID max during kind cluster creation

When deploying a kind cluster, the kernel.pid_max value is modified. This Cisco 8000e image requires a certain pid_max value that in turn gets overriden by kne deploy. This PR modifies kne deploy to run a script if it exists (else continue silently). This script if found will be used to modify the pid_max back to an acceptable value.
This is a short term fix for kind + 8000e users. Long term we should not have any containers relying on sysctl kernel values in case of conflicts between container requirements.
Potential long term fixes:

modify 8000e to respect pod pid limits instead of reading kernel.pid_max (unclear if this would fix the 8000e limitation)
remove the need for pid restrictions in 8000e

/gcbrun


How to set up swarm across machines

docker-machine create
-d virtualbox
--swarm --swarm-image="swarm" --swarm-master
--swarm-discovery="consul://$(docker-machine ip mh-keystore):8500"
--engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500"
--engine-opt="cluster-advertise=eth1:2376"
mhs-demo0
docker-machine create -d virtualbox
--swarm --swarm-image="swarm:1.0.0-rc2"
--swarm-discovery="consul://$(docker-machine ip mh-keystore):8500"
--engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500"
--engine-opt="cluster-advertise=eth1:2376"
mhs-demo1
How to make mhs-demo0 and mhs-demo1 to the two separate real mac os, I have studied for several days. $ (docker-machine ip mh-keystore) = <IP_ADDRESS> This has been replaced, but still can not find mhs-demo1 eval $ (docker-machine env --swarm mhs-demo0), the network is not bridged because virtualbox it? I now use docker-machine create a bridged network can not be established, because they are nat network.

Hi @land007 Here's how you could create such a cluster: https://github.com/docker/swarm-frontends/blob/master/init_swarm.sh


settings.gradle.kts not using the buildSrc logic

I basically want to re-escalate the issue 11090
Read through it again please and look how many people are disappointed with the new behaviour.
The buildSrc should be logic for building of the project. It doesn't make sense if it is evaluated only somewhere in the middle of the process.
Fix it please or provide both options as 2 stages of the build logic compilation buildSrc and projectSetupSrc.. I don't mind how you call it.
Also, you shouldn't do such a breaking changes in the API, we never had this issue with mvn and I have to face tensions for migration back to maven because of things like this.

In Gradle 7, you can include a build in pluginManagemnt {} this would be similar to the old "early" buildSrc avaluation behavior mechanism (there are no plans to change that back): https://docs.gradle.org/7.0-rc-1/release-notes.html#plugin-development-improvements


Add security

Currently the system is wide open for anyone with access to the app to modify anything. To deploy this in a multi-user environment, it would be better to be able to assign different roles to different users, and be able to restrict who can use the service.
This will setup a situation where audit logging is much more feasible.

Keycloak is available now, by enabling in conf.d/keycloak.conf (following the documentation in that file should be sufficient). There's also a README-security.md now.
I'll file a new issue for adding docs to the user's guide for this.


[Puppet] Make GPG check for repos a configuration and default to true

Tested via:
./docker-hadoop.sh -d -C config_debian-9.yaml -c 3
./docker-hadoop.sh -d -C config_centos-7.yaml -c 3

Also changes the value of gpg_check to true/false and see whether the change reflected to the deployed env.

I am not super familiar with the puppet code but it looks good! Any downside or things that you don't particularly like about the solution?

@evans-ye, I got following error
E: Package 'gpg' has no installation candidate
local apt = false ; NOT Enabling local apt. Packages will be pulled from remote...
Error: Evaluation Error: Error while evaluating a Function Call, Could not find data item bigtop::bigtop_repo_uri in any Hiera data file and no default supplied at /bigtop-home/bigtop-deploy/puppet/manifests/bigtop_repo.pp:55:35 on node e1e950fca651.bigtop.apache.org
Error: Evaluation Error: Error while evaluating a Function Call, Could not find data item bigtop::bigtop_repo_uri in any Hiera data file and no default supplied at /bigtop-home/bigtop-deploy/puppet/manifests/bigtop_repo.pp:55:35 on node e1e950fca651.bigtop.apache.org

on docker provisioning with the configuration like
docker:
        memory_limit: "12g"
        image:  "bigtop/puppet:trunk-ubuntu-16.04"
distro: debian
components: [hdfs, yarn, mapreduce]
enable_local_repo: false
smoke_test_components: [hdfs, yarn, mapreduce]

@evans-ye As @iwasakims pointed out, gnupg instead of gpg in setup-env-debian.sh seems to work on Ubuntu 16.04 in addition to Debian 9. Otherwise LGTM!

Sorry. My bad. Let me work on a fix. Thanks for discovering the bug and the suggestion @iwasakims @sekikn .

@evans-ye I think it's one of the blockers for the 1.5.0 release. May I submit a revised PR to proceed?

Oh. Sure no problem. Sorry to block the release. If you have time you can just proceed and refine it. Or if you need help I can find time in next week to refine it. Thanks!!!

Thanks Evans, will merge #649 and close this PR :)

NP. Thanks for picking that up.


added helm chart template for gcs

Fork of original https://github.com/cirruslabs/google-storage-proxy with added helm-chart.
Initial helm chart for google-storage-proxy to deploy on k8s clusters.
Example deployment:
helm upgrade -i google-storage-proxy ./google-storage-proxy \
    -f ./google-storage-proxy/test.values.yaml
Release "google-storage-proxy" has been upgraded. Happy Helming!
NAME: google-storage-proxy
LAST DEPLOYED: Thu Aug 18 23:11:24 2022
NAMESPACE: robert
STATUS: deployed
REVISION: 3
NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace robert -l "app.kubernetes.io/name=google-storage-proxy,app.kubernetes.io/instance=google-storage-proxy" -o jsonpath="{.items[0].metadata.name}")
  export CONTAINER_PORT=$(kubectl get pod --namespace robert $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
  echo "Visit http://<IP_ADDRESS>:8080 to use your application"
  kubectl --namespace robert port-forward $POD_NAME 8080:$CONTAINER_PORT


React step 5 - Endicott  http://carbon-tutorial-ericweinmann.mybluemix.net/

Closes #
{{short description}}
Changelog
New

{{new thing}}

Changed

{{change thing}}

Removed

{{removed thing}}

Well, I guess we didn't implement the learn more button because there's nothing left to learn?


Lorri does not set IN_NIX_SHELL when realizing derivations

Describe the bug

In a regular nix-shell, builds are evaluated with IN_NIX_SHELL set. This allows you to, for instance, use your default.nix directly, while adding some development dependencies when in a shell. Lorri doesn't do this, meaning expressions that work as expected in nix-shell may provide a different environment in Lorri.
To Reproduce
Steps to reproduce the behavior:
v@january ~> cd (mktemp -d)
v@january /t/tmp.7nY21hGq4L> cat shell.nix
with import <nixpkgs> {};
let
  foo = writeShellScriptBin "foo" ''
    echo bar
  '';
in mkShell {
  packages = lib.optional lib.inNixShell foo;
}
v@january /t/tmp.7nY21hGq4L> nix-shell
these derivations will be built:
  /nix/store/ghn3hhrabvy76jwr76pzxm3ynhw5qnqw-foo.drv
building '/nix/store/ghn3hhrabvy76jwr76pzxm3ynhw5qnqw-foo.drv'...
v@january /t/tmp.7nY21hGq4L> foo
bar
v@january /t/tmp.7nY21hGq4L> ^D
v@january /t/tmp.7nY21hGq4L> lorri init
Aug 14 04:23:01.863 INFO file already exists, skipping, message: Make sure shell.nix is of a form that works with nix-shell., path: ./shell.nix
Aug 14 04:23:01.863 INFO wrote file, path: ./.envrc
Aug 14 04:23:01.863 INFO done
direnv: error /tmp/tmp.7nY21hGq4L/.envrc is blocked. Run `direnv allow` to approve its content
v@january /t/tmp.7nY21hGq4L> direnv allow
direnv: loading /tmp/tmp.7nY21hGq4L/.envrc
Aug 14 04:23:14.186 INFO lorri has not completed an evaluation for this project yet, nix_file: /tmp/tmp.7nY21hGq4L/shell.nix
direnv: export +IN_NIX_SHELL
v@january /t/tmp.7nY21hGq4L>
direnv: loading /tmp/tmp.7nY21hGq4L/.envrc
direnv: export +AR +AS +CC +CONFIG_SHELL +CXX +HOST_PATH +IN_LORRI_SHELL +IN_NIX_SHELL +LD +NIX_BINTOOLS +NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu +NIX_BUILD_CORES +NIX_BUILD_TOP +NIX_CC +NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu +NIX_CFLAGS_COMPILE +NIX_ENFORCE_NO_NATIVE +NIX_HARDENING_ENABLE +NIX_INDENT_MAKE +NIX_LDFLAGS +NIX_LOG_FD +NIX_STORE +NM +OBJCOPY +OBJDUMP +RANLIB +READELF +SIZE +SOURCE_DATE_EPOCH +STRINGS +STRIP +allowSubstitutes +buildInputs +builder +configureFlags +depsBuildBuild +depsBuildBuildPropagated +depsBuildTarget +depsBuildTargetPropagated +depsHostHost +depsHostHostPropagated +depsTargetTarget +depsTargetTargetPropagated +doCheck +doInstallCheck +extraClosure +name +nativeBuildInputs +nobuildPhase +origArgs +origBuilder +origExtraClosure +origOutputs +origPATH +origSystem +out +outputs +patches +phases +preHook +preferLocalBuild +propagatedBuildInputs +propagatedNativeBuildInputs +shell +shellHook +stdenv +strictDeps +system ~PATH ~XDG_DATA_DIRS
v@january /t/tmp.7nY21hGq4L>
v@january /t/tmp.7nY21hGq4L> foo
foo: command not found
v@january /t/tmp.7nY21hGq4L [127]>

Expected behavior

Metadata

v@january /t/tmp.7nY21hGq4L> lorri info
error: The following required arguments were not provided:
    --shell-file <nix_file>

USAGE:
    lorri info --shell-file <nix_file>

For more information try --help
v@january /t/tmp.7nY21hGq4L [1]>

v@january /t/tmp.7nY21hGq4L> uname -a
Linux january 5.10.37 #1-NixOS SMP Fri May 14 07:50:46 UTC 2021 x86_64 GNU/Linux

Additional context

None, really. This feels like an edge case you're unlikely to run into unless you're weird.

Some example code (even generated code?) for haskell development environments also used this to switch between building drv and drv.env. Here the situation is even worse: The environment won't even work properly if drv.env isn't used.

This is a little off-topic, but does direnv's use nix handle this correctly? If not, we probably ought to report it there as well.

lorri shell does set it iirc.
There was a reason why we don’t set it which should be documented somewhere in the code or git blame.

lorri shell does set it iirc.

Just tried that, it doesn't seem to be any different?
IN_NIX_SHELL is set within the shell itself, so if one were to do a nix-build from within the shell (produced either via lorri direnv, or lorri shell, etc), it would build foo as expected. So it is setting the variable, just not in enough places.

Looks like we are setting it in two places:
https://github.com/nix-community/lorri/blob/dfbf9b3d22474380ee5e096931dbf25b1c162d10/src/ops/direnv/envrc.bash#L163
https://github.com/nix-community/lorri/blob/b84602c7132293e23eb8957ba493f188ce89ea1c/src/logged-evaluation.nix#L144


Output of helm install --debug not on standard streams

Hi,
I'm running on Debian 9. After running a helm install mychart --dry-run --debug, the output is not redirected on consistent streams:
Content of STDOUT:
[debug] Created tunnel using local port: '36103'

[debug] SERVER: "<IP_ADDRESS>:36103"

[debug] Original chart version: ""
[debug] CHART PATH: /code/myproject/helm-charts/mychart

Content of STDERR:
The actual files, operations and errors.
I think that everything which is not an error should be outputed on STDOUT, while all errors should be on STDERR.
Same goes for the exit status of the dry-run debug, which is always 1 (error), when it should be 0 when exiting with a successful dry-run (but I guess that's an another topic).
Cheers,
Output of helm version:
Client: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.2+coreos.0", GitCommit:"b427929b2982726eeb64e985bc1ebb41aaa5e095", GitTreeState:"clean", BuildDate:"2018-01-18T22:56:14Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
Don't know.

FYI - POSIX defines the standard error stream as "for writing diagnostic output". The GNU C standard library [1] defines it similarly as "used for error messages and diagnostics issued by the program"
[1] https://www.gnu.org/software/libc/manual/html_node/Standard-Streams.html

In that case shouldn't everything be printed on stderr and not one part on stdout and the other on stderr?
The second part of the message was more of a personal opinion/preference, that stderr should be used for actual important errors/problems.

similar issue opened two weeks ago: https://github.com/helm/helm/issues/6461
We should take a look at making those debug messages displayed on stderr, as the output of --debug should be there. This should already be the case in Helm 3, but there may be some areas in Helm 2 where debug messages are accidentally displayed on stdout.

There are issues in the Azure pipelines tasks project that relate to this.
https://github.com/microsoft/azure-pipelines-tasks/issues/11414
Because someone has to solve this problem. Could you please get in contact with the Azure pipelines tasks team to discuss and resolve this?

Closing for the same reasons stated in #6461. Helm’s following standard convention here. This is a bug with Azure pipelines triggering an error when something is rendered to stderr. Please follow up with them on how to handle this case properly.


Added ShadowFragment during purchase process

Closes #8
Added ShadowFragment, that handles onActivityResult after purchase process is finished.

We went with Shadow activity to keep lower API level compatibility.
Thank you for your PR.


on_message event not recognized

Firstly, thanks for creating this - I was on the brink of a Django + Node js solution and a considerable amount of unnecessary complexity before discovering your project.
It's likely this is user error but following the chat example fairly closely to get something up and running, and having trouble debugging.
Trying to send a simple message from Client A to Client B. Both clients call socket.subscribe() on doc ready, and I see the success event printed to the terminal. Client A then calls socket.send(), which also prints to the terminal, including the contents of the message. So far so good, except that the functions I have in my views module listening for on_message or on_subscribe events are never called. I'm not doing anything special, just:
@on_message
def message(request, socket, context):
    print 'message received'

I've been pouring over the example code, and can't see what I must be missing. I see there's logging settings, but didn't find a log file in django_socketio, gevent or geventwebsocket modules -- is there a file generated, and if so do you know where I could find it?

Might be worth trying the chat demo project to see if it's something particular to your environment.

No problem. Hm I haven't dug into the code but if I remember correctly the original approach you took should have worked, eg the decorator should support no arguments to indicate any channel. Let's leave the issue open for now and I'll take a look at it when I get a chance.


Fix strategy checking in #unlock_strategy_enabled?

The argument was used in the wrong spot and caused a bug where all values would return true if self.unlock_strategy was :both
See https://github.com/plataformatec/devise/issues/4072

@f3ndot Thank you for the awesome issue report and for the change proposal. The build is failing with your change, could you check if the tests are updated to the correct behaviour?

So two things:

I targeted the wrong branch (this also affects master) so I'll have to close the PR
Being in a sicky fog, I also wrote code that doesn't handle the cases.

Stand by for a new PR that targets master (although this bug applies to both Devise 3 and 4) and new tests that pass

:bee


Cannot upload bigger file size  or larger number of files

Stacktrace,
events.js:141
      throw er; // Unhandled 'error' event
      ^
 Error: Failure
    at SFTPStream._transform (F:\gulp-ssh\node_modules\ssh2\node_modules\ssh2-streams\lib\sftp.js:384:27)
    at SFTPStream.Transform._read (_stream_transform.js:167:10)
    at SFTPStream._read (F:\node_modules\gulp-ssh\node_modules\ssh2\node_modules\ssh2-streams\lib\sftp.js:170:15)
    at SFTPStream.Transform._write (_stream_transform.js:155:12)
    at doWrite (_stream_writable.js:300:12)
    at writeOrBuffer (_stream_writable.js:286:5)
    at SFTPStream.Writable.write (_stream_writable.js:214:11)
    at Channel.ondata (_stream_readable.js:542:20)
    at emitOne (events.js:77:13)
    at Channel.emit (events.js:169:7)

Related to this issue: https://github.com/teambition/gulp-ssh/issues/51
Summary:

When trying to upload 100> files, I am getting this error
When I try to upload one file of size 30 MB + , I am getting this error.

For the one file scenario, can you set debug: console.log in your ssh config object and post the resulting console output?

Not able to reproduce second scenario by myself.
But first is still valid.. log for the last few files
[18:25:21] Writing '/var/www/html/jenkins/url-gen-tool/latest/lib/@angular/compi
ler/src/util.d.ts'
DEBUG[SFTP]: Outgoing: Writing OPEN
DEBUG: Outgoing: Writing CHANNEL_DATA (0)
DEBUG: Parser: IN_PACKETBEFORE (expecting 16)
DEBUG: Parser: IN_PACKET
DEBUG: Parser: Decrypting
DEBUG: Parser: pktLen:44,padLen:17,remainLen:32
DEBUG: Parser: IN_PACKETDATA
DEBUG: Parser: Decrypting
DEBUG: Parser: HMAC size:32
DEBUG: Parser: IN_PACKETDATAVERIFY
DEBUG: Parser: Verifying MAC
DEBUG: Parser: IN_PACKETDATAVERIFY (Valid HMAC)
DEBUG: Parser: IN_PACKETDATAAFTER, packet: CHANNEL_DATA (0)
DEBUG[SFTP]: Parser: Response: HANDLE
DEBUG[SFTP]: Outgoing: Writing WRITE
DEBUG: Outgoing: Writing CHANNEL_DATA (0)
DEBUG: Parser: IN_PACKETBEFORE (expecting 16)
DEBUG: Parser: IN_PACKET
DEBUG: Parser: Decrypting
DEBUG: Parser: pktLen:44,padLen:6,remainLen:32
DEBUG: Parser: IN_PACKETDATA
DEBUG: Parser: Decrypting
DEBUG: Parser: HMAC size:32
DEBUG: Parser: IN_PACKETDATAVERIFY
DEBUG: Parser: Verifying MAC
DEBUG: Parser: IN_PACKETDATAVERIFY (Valid HMAC)
DEBUG: Parser: IN_PACKETDATAAFTER, packet: CHANNEL_DATA (0)
DEBUG[SFTP]: Parser: Response: STATUS
[18:25:21] Finished writing '/var/www/html/jenkins/url-gen-tool/latest/lib/@angu
lar/compiler/src/util.d.ts'
[18:25:21] Preparing to write "/var/www/html/jenkins/url-gen-tool/latest/lib/@an
gular/compiler/src/util.js"
DEBUG[SFTP]: Outgoing: Writing STAT
DEBUG: Outgoing: Writing CHANNEL_DATA (0)
DEBUG: Parser: IN_PACKETBEFORE (expecting 16)
DEBUG: Parser: IN_PACKET
DEBUG: Parser: Decrypting
DEBUG: Parser: pktLen:60,padLen:9,remainLen:48
DEBUG: Parser: IN_PACKETDATA
DEBUG: Parser: Decrypting
DEBUG: Parser: HMAC size:32
DEBUG: Parser: IN_PACKETDATAVERIFY
DEBUG: Parser: Verifying MAC
DEBUG: Parser: IN_PACKETDATAVERIFY (Valid HMAC)
DEBUG: Parser: IN_PACKETDATAAFTER, packet: CHANNEL_DATA (0)
DEBUG[SFTP]: Parser: Response: ATTRS
[18:25:21] Writing '/var/www/html/jenkins/url-gen-tool/latest/lib/@angular/compi
ler/src/util.js'
DEBUG[SFTP]: Outgoing: Writing OPEN
DEBUG: Outgoing: Writing CHANNEL_DATA (0)
DEBUG: Parser: IN_PACKETBEFORE (expecting 16)
DEBUG: Parser: IN_PACKET
DEBUG: Parser: Decrypting
DEBUG: Parser: pktLen:44,padLen:6,remainLen:32
DEBUG: Parser: IN_PACKETDATA
DEBUG: Parser: Decrypting
DEBUG: Parser: HMAC size:32
DEBUG: Parser: IN_PACKETDATAVERIFY
DEBUG: Parser: Verifying MAC
DEBUG: Parser: IN_PACKETDATAVERIFY (Valid HMAC)
DEBUG: Parser: IN_PACKETDATAAFTER, packet: CHANNEL_DATA (0)
DEBUG[SFTP]: Parser: Response: STATUS
DEBUG: Outgoing: Writing DISCONNECT (BY_APPLICATION)
Deploy Error: Error in plugin 'gulp-ssh'
Message:
    Failure
Details:
    code: 4
    lang:
DEBUG: Outgoing: Writing CHANNEL_EOF (0)
DEBUG: Outgoing: Writing CHANNEL_CLOSE (0)

It could be due to limits in place on the server. I'm not sure why, but it appears that gulp-ssh is not automatically closing files after they are written. That could leave resources open on the server (e.g. open file descriptor) and causing a potential limit issue?
On an unrelated note, fastPut() will transfer (local) files faster than normal streaming due to parallel writes (vs sequential writes when streaming). The gulp-ssh authors may want to look into that at some point.

ok thanks for input.


Buttons don't type text

While using the steam version, text box opens up without inputting any text at all and closes itself instantly. Applies to all buttons that send text.

have you tried the other launcher we made? please run it as admin and report back

I have, it does the same thing as the jar file. There was 1 time where I was spamming the hideout button and I got the error of not being able to teleport to hideout, but other than that, everything else tries to input it into chat but nothing goes through.

@pringprang provide pls app.log file from the %userprofile%/appdata/local/MercuryTrade folder

Sorry for the wait, I believe this is the right file. Thanks for your time.
applog.zip

More info, I tried it again today. When I press the whisper button, it opens up chat but it uses my abilities' hotkeys instead and leaves the chat box open. Example being is that I have my aura on space bar and the whisper button toggles it. Happens for all active skills like shield charge and flame dash.

we can't know opened chat or not,  code pushes enter-> ctrl+v -> enter, if your chat has already openned it's just close chat after first enter

I leave the chat closed at all times, I noticed the buttons don't work when I leave it open.


Suggestion: using love.handlers instead harcoded loveCallbacks.

love.handlers is a table where you can define functions to handle user-defined events and executed under default love.run. It is documented here:

https://love2d.org/wiki/love.run
https://love2d.org/wiki/love.event

The table is *kinda* similar to loveCallbacks, but it excludes callbacks that isn't supposed to run under love.run. Here the list of excluded callbacks:

errhand
errorhandler
load
run
update

Thanks, I will look into it

Sorry, I was a bit busy lately.

love.handlers is a table where you can define functions to handle user-defined events and executed under default love.run

Could you please elaborate. I tried going like:
love.handlers.draw = function ()
    print('Worked!')
end

But didn't get any output.

I made forked repo and it makes use the handler, please check it out. It doesn't have much change. I make use love.handlers table and loop over it, but instead index it's key.

Reference on love.handler, it's defined on this file: https://github.com/love2d/love/blob/11.4/src/modules/love/callbacks.lua#L30


AttributeError: 'str' object has no attribute 'items'

Hi, I clone the code and find  the following error when executing

python run.py demo.json onenet_rule_rule_template eval

I run it in python3.6.5, so anyone can help?
Traceback (most recent call last):
  File "run.py", line 102, in <module>
    main()
  File "run.py", line 91, in main
    read_spec_and_run(*args)
  File "run.py", line 68, in read_spec_and_run
    run_spec(spec, lab_mode)
  File "run.py", line 49, in run_spec
    Session(spec).run()
  File "/home/super/DSTC8/ConvLab/convlab/experiment/control.py", line 142, in run
    self.run_eval()
  File "/home/super/DSTC8/ConvLab/convlab/experiment/control.py", line 95, in run_eval
    avg_return, avg_len, avg_success, avg_p, avg_r, avg_f1, avg_book_rate = analysis.gen_avg_result(self.agent, self.eval_env, self.num_eval)
  File "/home/super/DSTC8/ConvLab/convlab/experiment/analysis.py", line 68, in gen_avg_result
    returns.append(gen_result(agent, env))
  File "/home/super/DSTC8/ConvLab/convlab/experiment/analysis.py", line 59, in gen_result
    _return = gen_return(agent, env)
  File "/home/super/DSTC8/ConvLab/convlab/experiment/analysis.py", line 35, in gen_return
    next_obs, reward, done, info = env.step(action)
  File "/home/super/DSTC8/ConvLab/convlab/env/multiwoz.py", line 242, in step
    env_info_dict = self.u_env.step(action)
  File "/home/super/DSTC8/ConvLab/convlab/env/multiwoz.py", line 110, in step
    action = da_normalize(action, role='sys')
  File "/home/super/DSTC8/ConvLab/convlab/modules/util/multiwoz/da_normalize.py", line 71, in da_normalize
    for act, svs in das.items():
AttributeError: 'str' object has no attribute 'items'

Fixed, thanks!


Provide a Way to Remove Callbacks in WebTerminal API

Terminal API functions onOutput, onUserInput and execute (#107) are invoking callbacks, but there may be a need to stop triggering them at some point.
Provide some API to remove callbacks.
Info @wcjphoenix

Why do you need to stop them from triggering?

@wcjphoenix, pne of the examples, I thought that when the user completes a task in your project, you may want to stop callback from happening. This is all about providing the complete pub-sub pattern. In JavaScript, for example, everywhere where you have .addEventListener, you also have .removeEventListener, so the WebTerminal should have.

Actually I made a little design mistake, I should have named the functions differently: .on("input", options, callback) and .on("output", options, callback) to certainly match all JavaScript conventions. Also this is much better to read and expand.
What if we change the names, Walter? This will be the major breaking change, so maybe it is not worth it or at least, should wait until the next major WebTerminal update (which may happen as a result of #103).

I think it would be good to wait until the next update, but thanks for the explanation about the reasoning behind a remove function.

Done by af4c5641cebe52f4f736c82f58d76f3bb650f38b. I also updated WebTerminal global versions and added docs. If you have any further questions or suggestions, please tell me! Thanks!


Support for WebGL 2 (GL30)

Hi! Since libGDX 1.12.0 GWT backend is now supporting WebGL 2.0 would be possibile to port those changes also to TeaVM backend?

teavm now contains webgl 2.0 stuff.


AutocompleteToolbar should be able to scroll itself instead of its buttons

The native autocomplete toolbar behavior is to display three autocomplete suggestions and distribute them evenly within the toolbar. If their text is too long, the labels become scrollable.
However, some users have expressed their need to display more content. They therefore need the toolbar to be able to give its views as much space as they need, and that the entire toolbar should become scrollable instead.
I have therefore added enableScrolling() and disableScrolling() to AutocompleteToolbar in KeyboardKit 2.6.1.

Hey @danielsaidi,
I implemented enableScrolling() and while the toolbar itself is scrollable, the labels are too and therefore are truncated as shown in the image above. I have also tried adjusting the distribution property in AutocompleteToolbarView's initializer but I can't seem to get the labels to fit to the content's width.
Would the recommendation in this case be to create my own custom toolbar buttons or is there something I am missing here?


Error when tagging selected image

Describe the bug
Interrogator giving error when trying to interrogate selected image (tried with "wd-swinv2-tagger-v3" interrogator
To Reproduce
Steps to reproduce the behavior:

Go to "Dataset Tag Editor" tab
Select and load Dataset directory
Click on one of the images in the dir
Select "Edit Caption of Selected Image" and then "Interrogate Selected Image" tab
Select an Interrogator and click on "Interrogate" button
See error

Expected behavior
Give tags of the selected image in "Interrogate Result"
Screenshots

Environment:

OS: Windows
Browser: Microsoft Adge
Version of SD WebUI: v1.9.3
Version of this app: v0.3.4

Thank you!


Transfer: support limiters for each pushing and pulling

Currently transfer service doesn't recieve limiters for each pulling and pushing. And ctr ignores limiters flags for pushing and pulling.
This commit eliminates this limitation by allowing passing concurrency confiugrations from the client to Transfer Service, for each pulling and pushing of images.

This commit eliminates this limitation by allowing passing concurrency confiugrations from the client to Transfer Service, for each pulling and pushing of images.

What is the reason to send these up from the client. The design of the transfer service is that it is configured and respected across all operations, so the limit can represent the true limit. If we wanted to add limits on top of that, I would expect that to still respect the globally configured limit.
I'm curious what the end goal of the functionality is though, if it is to further constrain user operations, I wonder if there still needs to be shared limits across a namespace or set of user operations. If the goal is just ctr compatibility, I think ignoring is right, it was only added before because there was no other way to configure it.

Thanks for the comment. This is for ctr compatibility. So, I think we can close this issue if it's currently out of scope. But ctr currently silently ignores several flags by default (without --local) and the user can't know which flags are supported until they see the code. I think ctr should return an error or print a warning when it finds unsupported flags.


T1

Resolves #

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 64.351%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
934

Relevant Lines:
1380

💛  - Coveralls

27042a0


Add load testing script for frontend

Fixes

Fixes #4391 by @obulat
Description

This PR adds the k6 script for load testing frontend.
Testing Instructions

Run the app and then run the k6 script locally by navigating into utilities/load_testing, and running FRONTEND_URL=http://<your-ip>:8443/ just k6-frontend.
You can also run this script against the nuxt-preview by not specifying the FRONTEND_URL: just k6-frontend
Checklist

[ ] My pull request has a descriptive title (not a vague title likeUpdate index.md).
[ ] My pull request targets the default branch of the repository (main) or a parent feature branch.
[ ] My commit messages follow best practices.
[ ] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no visible errors.
[ ] I ran the DAG documentation generator (just catalog/generate-docs for catalog
PRs) or the media properties generator (just catalog/generate-docs media-props
for the catalog or just api/generate-docs for the API) where applicable.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

@obulat I'll continue to review this more thoroughly but I think we should remove the "nuxt-preview" default concept and make this more generic.


Add rotated data

I've updated the meta for the rotated data columns in the meta which were missing text keys.

:+1:


Module not found issue

When I try to run the command "python app.py" it gives me this:

Never mind, fixed it lol.

About the issue that you are facing here.  I'm assuming you want to use 'AnySite' type, I recommend hosting the server on kaggle. Follow the instruction in this issue.
If you still want to host it locally, then for the numpy error, you can probably solve it by running:

pip uninstall numpy
pip install numpy

Oh thanks, tried using Kaggle and it works way better, lol.

Yo, for the manga colorizer, what settings do you prefer for the color tolerance and stride?

The preferred (defaults) are:
Tolerance: 30
Stride: 4
These settings only decide which images to colorize.

A very high tolerance means, no images will be colorized.
A very low or negative tolerance means, every possible image, even if already RGB colored, will be colorized.
You would ideally decrease it from the default, if some panel which was in grayscale didn't get colorized.

The stride setting basically skips the edge pixels (row+column), so the tolerance check occurs on the cropped middle part of the image. You would increase it if the panel edges are colored and the panel is being skipped by the colorizer.

From the code in contentScript.js:
var colTol = 30;  // If difference between red, blue, and green values is greater than this for any pixel,
// image is assumed to be in color and will not be recolored.
var colorStride = 4; // When checking for an already-colored image,
// skip this many rows and columns at edges and between pixels.
// Check every pixel for color if zero.
Color Tolerance and Color Stride are both used to decide which images are already colored and therefore should not be recolored. This is harder than it sounds, since many images that look black-and-white or grayscale actually have a little bit of color in them, sometimes because the paper they were scanned from is not perfectly white or because the edges have some color.
Looking for color means comparing the red, green, and blue values for a pixel. If all three are exactly equal, then the pixel has no color (is perfectly white, black, or a gray in between.) Color Tolerance allows the red, green, and blue to be a little different from each other and still be counted as gray. Red/blue/green values range from zero to 255.
A Color Tolerance of zero means that the slightest invisible difference will be flagged as already colored, so the image will not be recolored.
The default Color Tolerance of 30 allows for most "nearly gray" pixels to not be counted as colored so an average scan of a black-and-white image will be recolored.
You may want a higher Color Tolerance for some images that come from yellower paper or for noisy scans. During development and testing I kept bumping it up and was surprised it had to be as high as 30 for some gray-looking images.
Pushing Color Tolerance all the way up to 255 would mean that every image, even if it has bold colors, will be recolored.
Color Stride skips that many pixels near all four edges since it is common for some pixels at the edge of an image to have stray colors. It also skips that many pixels as it scans across and down throughout the image. This has good odds of missing a few stray colored pixels and speeds up the checking. The default value of 4 has worked well for me, but you can increase it if you need to skip wider colored edges or decrease it if you find images you don't want recolored where it misses narrow bits of color.


Updated go version to 1.22.5

Description
Updated go.mod to use go1.22.5 dependencies versions.
Related Issue
If applicable, please reference the issue(s) that this pull request addresses.
Changes Made
Updated go.mod version from 1.22.4 to 1.22.5.
Screenshots (if applicable)
Add screenshots or GIFs that demonstrate the changes visually, if relevant.
Checklist

[ ] I have tested the changes locally and they are functioning as expected.
[ ] I have updated the documentation (if necessary) to reflect the changes.
[ ] I have added/updated relevant unit tests (if applicable).
[ ] I have ensured that my code follows the project's coding standards.
[ ] I have checked for any potential security issues and addressed them.
[ ] I have added necessary comments to the code, especially in complex or unclear sections.
[ ] I have rebased my branch on top of the latest main/master branch.

Additional Notes
Add any additional notes, context, or information that might be helpful for reviewers.
Reviewers
Tag the appropriate reviewers who should review this pull request. To add reviewers, please add the following line: /cc @reviewer1 @reviewer2
Definition of Done

[ ] Code is reviewed.
[ ] Code is tested.
[ ] Documentation is updated.
[ ] All checks and tests pass.
[ ] Approved by at least one reviewer.
[ ] Merged into the main/master branch.

/retest

/test ci/prow/images

/test images


API calls not working Android 5.0 in Release build

Hello,
I am working on a Cordova Application and have been using axios for making REST API calls.It is working well in all versions, except for Android 5.0 devices and that too on signed APKs.The debug builds are also working fine.Please help me on this.

That doesn't look like an issue in axios but you haven't provided enough information for us to find out. Please, make sure it's an issue in axios and share a code snippet where something fails (and please be more specific about the error).


Bump supported client feature version

What changed?
Bump supported client feature version to 1.7.0

Why?
For 0.21.0 release

How did you test it?

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build 17cff947-9dbd-4751-abb6-e7f1c9be6e50

0 of 0   changed or added relevant lines in 0 files are covered.
55 unchanged lines in 8 files lost coverage.
Overall coverage increased (+0.03%) to 67.102%

Files with Coverage Reduction
New Missed Lines
%

common/task/parallelTaskProcessor.go
2
92.48%

service/history/handler.go
2
46.74%

service/matching/taskListManager.go
2
74.72%

common/task/weightedRoundRobinTaskScheduler.go
3
88.6%

common/types/history.go
4
24.69%

service/history/historyEngine.go
4
71.19%

common/persistence/sql/sqlExecutionManager.go
16
55.63%

common/persistence/cassandra/cassandraTaskPersistence.go
22
59.16%

Totals

Change from base Build b9bac8da-8ee8-4688-8871-cac90eb5cbe3:
0.03%

Covered Lines:
98334

Relevant Lines:
146545

💛  - Coveralls


If cidfile exists, do not proceed

Both podman run and create have an option to write the container ID to a file. The option
is called cidfile.  If the cidfile exists, we should not create or run a container but rather
output a sensical error message.
Resolves: #530
Signed-off-by: baude<EMAIL_ADDRESS>

LGTM

@rh-atomic-bot r+


Spelling error in AzureADAssessment-ReportOut.pptx

On slide 7 in the AzureADAssessment-ReportOut.pptx, it says "Appilcation Overview". Should be "Application Overview".

Hi @TomAafloen, the typo has been corrected. Thanks a lot!


docs: fix width of left panel

Or need to make paths shorter like get_info() instead of Build.get_info()

As a related issue, on vertical monitors the left panel overlaps the middle panel.


Use malloc/memset not calloc for WinCE portability

Fixes: #2539

So here's a thought: as I recall it, the reason to use calloc was if the function was called with an extremely long string and the calculation len_0 * sizeof(TCHAR) overflows and results in a too small result in amount.  If that happens, we're allocating a too small space and will end up with a buffer overflow that is likely to trash heap info and possibly have the application crash horribly.
So I think it would be wise to check that len_0 <= SIZE_MAX / sizeof(TCHAR) (make sure to include "internal/numbers.h"

Really?  The windows max pathlen is 260 chars (do a search).

This is a public function, we might as well assume it might be called maliciously.

I would leave the memset there ...

@t-j-h, why?

I give up.  Sorry, @gjcoram.

Err, I'm sad to see that you give up, that was not my intention.

The original fix was appropriate for the issue.  Hopefully someone else will try, my time ran out.

Okie...  would you mind having a look at #4594?


localize skeleton accent

just put strings out of system for localizing

Looks good, thanks for the fix!


Problem running hitl minimal example, has no attribute 'creation_attribute'

Habitat-Lab and Habitat-Sim versions
Habitat-Lab: master?
Habitat-Sim: master?
Habitat is under active development, and we advise users to restrict themselves to stable releases. Are you using the latest release versions of Habitat-Lab and Habitat-Sim? Your question may already be addressed in the latest versions. We may also not be able to help with problems in earlier versions because they sometimes lack the more verbose logging needed for debugging.
Master branch contains 'bleeding edge' code and should be used at your own risk.
Docs and Tutorials
Did you read the docs? https://aihabitat.org/docs/habitat-lab/
Did you check out the tutorials? https://aihabitat.org/tutorial/2020/
Perhaps your question is answered there. If not, carry on!
❓ Questions and Help
[06:12:49:740270]:[Warning]:[Assets] ResourceManager.cpp(945)::createRenderAssetInstance : Instantiating render asset data/humanoids/humanoid_data/female_2/female_2.glb with incompatible light setup, instance will not be correctly lit. For objects, please ensure 'requires lighting' is enabled in object config file.
Error executing job with overrides: []
Traceback (most recent call last):
File "/home/coel/thesis/habitat-lab/examples/hitl/minimal/minimal.py", line 54, in main
hitl_main(config, lambda app_service: AppStateMinimal(app_service))
File "/home/coel/thesis/habitat-lab/habitat-hitl/habitat_hitl/core/hitl_main.py", line 83, in hitl_main
driver = HitlDriver(
File "/home/coel/thesis/habitat-lab/habitat-hitl/habitat_hitl/internal/hitl_driver.py", line 59, in wrapper
return callable(*args, **kwds)
File "/home/coel/thesis/habitat-lab/habitat-hitl/habitat_hitl/_internal/hitl_driver.py", line 185, in init
self._reset_environment()
File "/home/coel/thesis/habitat-lab/habitat-hitl/habitat_hitl/_internal/hitl_driver.py", line 304, in _reset_environment
self._obs, self._metrics = self.gym_habitat_env.reset(return_info=True)
File "/home/coel/miniconda3/envs/habitat_hitl/lib/python3.9/site-packages/gym/core.py", line 283, in reset
return self.env.reset(**kwargs)
File "/home/coel/thesis/habitat-lab/habitat-lab/habitat/gym/gym_wrapper.py", line 319, in reset
obs = self.env.reset(*args, return_info=return_info, **kwargs)
File "/home/coel/thesis/habitat-lab/habitat-lab/habitat/core/environments.py", line 62, in reset
return super().reset(*args, return_info=return_info, **kwargs)
File "/home/coel/miniconda3/envs/habitat_hitl/lib/python3.9/contextlib.py", line 79, in inner
return func(*args, **kwds)
File "/home/coel/thesis/habitat-lab/habitat-lab/habitat/core/env.py", line 425, in reset
observations = self._env.reset()
File "/home/coel/thesis/habitat-lab/habitat-lab/habitat/core/env.py", line 261, in reset
self.reconfigure(self._config)
File "/home/coel/thesis/habitat-lab/habitat-lab/habitat/core/env.py", line 343, in reconfigure
self._sim.reconfigure(self._config.simulator, self.current_episode)
File "/home/coel/thesis/habitat-lab/habitat-lab/habitat/tasks/rearrange/utils.py", line 718, in wrapper
ret = f(self, *args, **kwargs)
File "/home/coel/thesis/habitat-lab/habitat-lab/habitat/tasks/rearrange/rearrange_sim.py", line 333, in reconfigure
self._add_objs(ep_info, should_add_objects, new_scene)
File "/home/coel/thesis/habitat-lab/habitat-lab/habitat/tasks/rearrange/utils.py", line 718, in wrapper
ret = f(self, *args, **kwargs)
File "/home/coel/thesis/habitat-lab/habitat-lab/habitat/tasks/rearrange/rearrange_sim.py", line 639, in _add_objs
self._receptacles = self._create_recep_info(
File "/home/coel/thesis/habitat-lab/habitat-lab/habitat/tasks/rearrange/rearrange_sim.py", line 659, in _create_recep_info
all_receps = find_receptacles(
File "/home/coel/thesis/habitat-lab/habitat-lab/habitat/datasets/rearrange/samplers/receptacle.py", line 757, in find_receptacles
creation_attr = obj.creation_attributes
AttributeError: 'habitat_sim._ext.habitat_sim_bindings.ManagedBulle' object has no attribute 'creation_attributes'
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
corrupted size vs. prev_size
Aborted (core dumped)
Is it caused by the OS? I am using Ubuntu 22.04

the reason of this error is that I didn't install the nightly sim version.


Pattern Not Found

The extract ideas pattern is downloaded and in my folder. I was able to successfully find it within the UI. I tried multiple items to no effect. Using BRAT and the 1.1 main branch

The plugin has officially been released in the community repo. Try to install from there and let me know if you have the issue. When you open the folder where fabric patterns are downloaded to do you see all the patterns?Sent from my iPhoneOn Sep 17, 2024, at 4:33 PM, zackwenthe @.***> wrote:
Screenshot.2024-09-17.at.3.30.30.PM.png (view on web)
The extract ideas pattern is downloaded and in my folder. I was able to successfully find it within the UI. I tried multiple items to no effect. Using BRAT and the 1.1 main branch
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

I've updated to the community version 1.1.2 and run the patterns again with the same output. I even deleted the entire folder, and redownloaded the patterns and I get the same error

Can you turn on debugging from the plugin settings, then open developer tools and copy any logs when you run the process?
When in the plugin and search for patterns does it come up? I just tried with the same pattern and it works.. I’ll need all the debug logs, turn on debugging and copy the console log from developer tools.
Also is it just that one pattern? Also take a screenshot of your settings.

I completely removed the plugin and reinstalled, res-etup all the patterns and it seems to work now. I was able to search for the pattern and see it but it was failing to use it for some reason.
OpenAI works and looking forward to seeing Claude and Gemini working in the future


PassthroughSubject created without combine annotation

This protocol has no combine annotation, but generated mock has special implementation using PassthroughSubject .

source

/// @mockable
protocol Foo {
    var bar: AnyPublisher<Int, Never> { get }
}

generated

class FooMock: Foo {
    init() { }

    var bar: AnyPublisher<Int, Never> { return self.barSubject.eraseToAnyPublisher() }
    private(set) var barSubject = PassthroughSubject<Int, Never>()
}

I want to set my own AnyPublisher to mock object.
It seems that there are no way to disable generating special mock for Combine.
mockolo version: 1.7.0

I created this PR https://github.com/uber/mockolo/pull/186

Merged #186

Thank you!!


Webpack devtool-option not considered for sourcemap generation

Library Affected:
workbox-webpack-plugin
Browser & Platform:
"all browsers" (not the browser is the issue, it's the auto-generated code)
Issue or Feature Request Description:
The plugin does not consider the Webpack devtool configuration for the sourcemap generation.
I'm using the value 'hidden-source-map', but the plugin append //# sourceMappingURL=service-worker.js.map to the JavaScript file.
I need the source maps to upload them to my error tracker (so disabling them is not an option), but I don't upload them to the webserver.
The result is that browsers like Chrome and Edge (correctly) complain about the missing sourcemap:
DevTools failed to load SourceMap: Could not load content for https://[...]/service-worker.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

The WorkboxPlugin.GenerateSW option sourcemap is only a boolean, so it doesn't allow a setup with hidden sourcemap. Furthermore, it would be better if the plugin adhered to the webpack standards.

In Workbox v5, workbox-webpack-plugin's GenerateSW mode uses Rollup under the hood to create its bundled output—it's basically a wrapper on top of workbox-build's generateSW mode, with the webpack asset pipeline used to determine the precache manifest instead of glob patterns.
(I understand that this might be surprising, but sharing code in that manner should hopefully lead to less divergence between the webpack plugin's GenerateSW behavior and the workbox-build/workbox-cli's behavior, which has historically been an issue.)
I do see that Rollup now supports boolean | 'inline' | 'hidden' as its input for configuring sourcemaps, so expanding the options available in the GenerateSW plugin to match that sounds reasonable for Workbox v6.
If you use the InjectManifest plugin, an actual webpack child compilation is kicked off that uses the parent compilation's configuration, and I think that should include the sourcemap options. So switching to InjectManifest might be a viable short-term solution if you need one right away.

v6 has been released now. Are there any news to this issue?

Sorry, this unfortunately did not make it into v6.

@tropicadri
Seems like this repo may be dying, but if google decides to focus on it again, this issue could really use some attention, it's very low hanging fruit!

Hi there,
Workbox is moving to a new engineering team within Google. As part of this move, we're declaring a partial bug bankruptcy to allow the new team to start fresh. We realize this isn't optimal, but realistically, this is the only way we see it working. For transparency, here're the criteria we applied:

For PRs, we closed everything that doesn't target the current v7 branch.
For Issues, we closed everything that was created before 2024.

Thanks, and we hope for your understanding!
The Workbox team


Music (0% done)

 Issue by khval
Sunday Sep 08, 2019 at 11:02 GMT
Originally opened as https://github.com/khval/AmosKittens/issues/31

 Comment by khval
Sunday Sep 08, 2019 at 11:06 GMT

not working:
Mvolume, Track Stop, Track loop on, Track loop of, Track play, Track Load, Med load, Med play, Med Stop, Med Count, Med Mini On, Vumeter(n), Mubase, Music off, Music stop, Tempo , Music Noise,

 Comment by SamuraiCrow
Friday Apr 10, 2020 at 13:22 GMT

LibXMP will play most module file formats including Amos muxic banks.

 Comment by khval
Friday Apr 10, 2020 at 14:50 GMT

I have looked at it some places it says MIT some places it says GPL, GPL and MIT are not compatible licenses.

 Comment by SamuraiCrow
Friday Apr 10, 2020 at 14:52 GMT

The library is MIT but the player that calls it is GPL, I think.

 Comment by khval
Friday Apr 10, 2020 at 15:02 GMT

This issue belongs to music extension now, I try find a way to move it.


Not Getting complete data

When using the facebook provider I only get the user's email with the username, and with the twitter provider I get the username without the email from the response.
I'm running the latest version from Nugget. I don't know why I'm having this issues. Any idea what might be the cause?

Hi @pmbanugo - thanks heaps for the issue.
This was first reported about 48 hours ago: please refer to #173
I'm working on it, as I type :)

@PureKrome i think he's referring to the fact twitter doesn't give him the email.
@pmbanugo Twitter doesn't give email addresses. It's out of our hands.
https://twittercommunity.com/t/how-to-get-email-from-twitter-user-using-oauthtokens/558

Ah my misread. Yep, twitter has never given out email addresses and it's been my PET HATE since day 1!!!!!


With new version 1.1.4 exporter multi column value

Hi @floyd871  Thanks for release multi column support Exporter.
Issue is , which multi column value exporter not able to display proper output. Mean  column1 as "name"  and column2 as "value" .
For instance,
exporter o/p:
oracledb_query{column="value ",database="orcl",dbinstance="orcl",name="test",row="9"} 208
sql :  SELECT  component, current_size/1024/1024 as value FROM v$sga_dynamic_components where component='shared pool';
we are expecting exporter o/p like :
oracledb_query{column="shared pool",database="orcl",dbinstance="orcl",name="test",row="9"} 208
Can you please suggest how can we achieve this ?

The label "Column" always shows the name of the column in the query.  If you want to rename it use "AS".
So in your case:
SELECT component, current_size/1024/1024 as shared_pool FROM v$sga_dynamic_components where component='shared pool';