Fix codegen to generate tests for nested classes into nested testclasses

Description
Changed codegen so that now structure of generated test classes corresponds to structure of classes in src code, i.e. tests generated for methods from inner/nested classes are now put to inner/nested classes in testfile.
Fixes #560
Type of Change
Please delete options that are not relevant.

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Automated Testing
Added tests for ClassWithStaticAndInnerClasses, more tests to be added
Manual Scenario
Run on example described in #560 -- tests for CaseFormat.StringConverter are generated in nested class
Checklist (remove irrelevant options):
This is the author self-check list

[ ] The change followed the style guidelines of the UTBot project
[x] Self-review of the code is passed
[ ] The change contains enough commentaries, particularly in hard-to-understand areas
[ ] New documentation is provided or existed one is altered
[ ] No new warnings
[x] New tests have been added
[ ] All tests pass locally with my changes

In this PR some project tests were restructured. For example, LombokAnnotationTest had testClass = EnumWithAnnotations::class but, among others, contained tests for methods of EnumWithoutAnnotations and NotNullAnnotations, which caused incorrect behavior of codegen. Now this testclass is splitted.


Fix Label text length mismatch after localization

Fixes #67081
That text was left un-renamed in #66808, making the label using raw text instead of the translated version when calling structured_text_parser().

Thanks!


PyPi metadata requires_dist issue

pytables is in pypi metadata: requieres_dist but it is an incorrect package name.  Maybe it should be pytable.

@fizwit Hi, can you show me a pointer to it?  I grep the whole repository and search https://pypi.org/project/xgboost/ without seeing a mention of it.  I'm not familiar with pip uploading process.
@hcho3 Is there anything related to pypi but not included in this repo?

I create automated software to update Python package versions and expect to find Python packages in PyPi. PyTables is a valid Python package name, but it is not in PyPi.  It must be downloaded from github. closing


Specify that Gogs 0.9.113 can be smootlhy upgraded to

13:18 < tboerger> To check if you can upgrade you got to monitor the migrations AND the models because of the xorm sync method which syncs the
                  model structs to the database
13:19 < tboerger> So every new struct attribute can possibly break the upgrade path

Do not merge this yet, it's not confirmed and should be tested.
BTW, 0.9.99 does not exist as a tag in Gogs, so eventually it should be 0.9.97

conflict

Beside that all the useless line breaks...

Unless someone checks the upgrade this has to be confirmed anyway

Updating from <IP_ADDRESS>3 works like a charm

@Bwko greatest tag is v0.9.113, how can anyone know what <IP_ADDRESS>3 is ?

Well, written <IP_ADDRESS>3 and fixed conflicts

Better, left 0.9.115 and dropped the rest, done in all languages

@strk Cause that's the version at the bottom of your screen? But I agree 0.9.115 looks better

LGTM

LGTM


Fix a typo

Hi, thanks for checking the details!  In the future please make pull requests only for functional changes in the code, rather than a single-letter typo in a comment.


broken links of Denoising and Lipsync-Student model weights

Hi, the links of Denoising and Lipsync-Student model weights are broken again.  Would you mind updating them?  Thanks!!!

Same issue

Hi, did anyone find the links for the weights? Would be greatly helpful....Thanks.

The links have now been updated.


Flutter Web Driver Support

This PR adds support for Flutter Web Driver Testing.
In order to execute Flutter Web Driver tests, you need to have Selenium Server and WebDriver binary installed.
Steps to test:
Have Selenium server (https://bit.ly/2TlkRyu) and WebDriver binary (https://chromedriver.chromium.org/downloads) downloaded and placed under the same folder
Launch WebDriver Server: java -jar selenium-server-standalone-3.141.59.jar
Launch Flutter Web application: flutter run -v -d chrome --target=test_driver/scroll_perf_web.dart
Run test script: flutter drive --target=test_driver/scroll_perf.dart -v --use-existing-app=/application address/
There are certain limitations:
getVMFlags(), forceGC() and waitUntilFirstFrameRasterized() are not implemented because they are not applicable to Flutter Web platform. For waitUntilFirstFrameRasterized, there might be a equivalent event that we can leverage.
TimelineSummary.summarize().writeSummaryToFile() does not work.
Tests
I added the following tests:
examples/flutter_gallery/test_driver/scroll_perf_web_test.dart
This will test some basic behavior using Flutter Web Driver.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: Replace with a link to your migration guide

Can you also ensure https://github.com/flutter/flutter/pulls/jonahwilliams is patched in?

@angjieli I think this change breaks some testing in plugins. The e2e test uses serviceClient: https://github.com/flutter/plugins/blob/master/packages/android_alarm_manager/example/test_driver/android_alarm_manager_e2e_test.dart#L13
Found it while trying to upgrade Xcode version for plugins repository https://github.com/flutter/plugins/pull/2435

@fkorotkov Thanks for letting me know. I will fix this shortly.

@angjieli should we revert this in the meantime?

Discused offline with @angjieli . I'll revert for now


11.2.0 flatten-annotation removes annotation

flatten-bug-input.pdf
using qpdf version 11.2.0 msvc64
The input PDF document has two pages, both of which have annotation that renders as a light blue X toward the bottom of the document.  I run the following command to flatten annotations:
qpdf --flatten-annotations=all flatten-bug-input.pdf flatten-bug-output.pdf

When viewing the output PDF document, the light blue X is visible on page 1, but no longer appears on page 2.
I examined the PDF structured using RUPS and the annotation hierarchy appears a bit different on each page.  I then used qpdf --stream-data=uncompress to analyze the structure more closely.  If I'm reading things right, the only difference between each page is that the annotation on page 1 has an appearance stream tag that is not present for the annotation on page 2.
Look at the difference between object 5 (which flattens correctly) vs object 10 (which does not).
5 0 obj
<< /AP << /N 15 0 R >> /Border [ 0 0 0 ] /Contents (X) /DA (/Helv 10.5 Tf 0 Tc 11.76 TL 0 0.470588 0.831373 rg ) /F 4 /NM (JVFMLKQDGKQRIGCB) /PDFIUM_HasGeneratedAP true /Rect [ 18 565.5 30 579 ] /Rotate 270 /Subtype /FreeText /Type /Annot >>
endobj

10 0 obj
<< /Border [ 0 0 0 ] /Contents (X) /DA (/Helv 10.5 Tf 0 Tc 11.76 TL 0 0.470588 0.831373 rg ) /F 4 /NM (JVFMLKQDGKQRIGCB) /Rect [ 31.5 554.25 43.5 567.75 ] /Rotate 270 /Subtype /FreeText /Type /Annot >>
endobj

The PDF tools I have available on my computer all appear to render the input document as expected--Adobe Acrobat Reader, PDF-XChange Editor, Bluebeam Revu.  Firefox (when displaying the PDF in the browser) renders the X a little oddly--it looks to be rotated 90 degrees.  Chrome (when displaying the PDF in the browser) does not display the X on page 2.

Your analysis is correct. I think the file is actually broken, but it does have a /DA key, so there is enough information for qpdf to generate an appearance stream. Right now, qpdf only generates an appearance stream for fields that are form fields and only when /NeedAppearances is true in the /AcroForm dictionary. This file doesn't have any interactive forms, so qpdf doesn't even attempt to generate an appearance stream. It seems like the viewers that are displaying the X must have some logic where when the go to display an annotation that is lacking an appearance stream, they go ahead and try to generate one based on /DA. I can see how hard it is to make qpdf do this in flatten annotations. I'm guessing not that hard. As for why it is sometimes rotated 90 degrees, I'd have to look more closely. If I enable qpdf to flatten that annotation, it will be interesting to see what it comes up with.

There is not a quick fix to this. The appearance stream generation is integrated with form handling more than annotation, and the comments in flatten annotations indicate that there are normal cases of annotations with appearance streams, such as unchecked checkboxes, popup windows, and a few others. I'll have to go back to the spec and see which cases would be safe to detect /DA and generate an appearance stream and also do some refactoring to make that code generates appearances streams accessible from the part of the code that flattens annotations.

Thank you for looking at my issue and providing feedback.  And for making such an immensely useful tool.


$(UserProfile) does not work on macOS

Overview
$(UserProfile) is often used to access the local NuGet cache (example).  However on macOS, $(UserProfile) does not appear to be defined.
Steps to reproduce
Project file: test.csproj
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>
    <Target Name="DisplayMessages">
     <Message Text="UserProfile: $(UserProfile)" Importance="High" />
    </Target>
</Project>

Directory contents:
/
- test.csproj

Command line
msbuild /t:DisplayMessages

Expected  behavior
Prints out something like:
...
DisplayMessages:
  UserProfile: /Users/ztl8702/
...

(using my username as an example)
Actual behavior
Project "/Users/ztl8702/dev/test/test.csproj" on node 1 (DisplayMessages target(s)).
DisplayMessages:
  UserProfile:
Done Building Project "/Users/ztl8702/dev/test/test.csproj" (DisplayMessages target(s)).

Environment data
msbuild /version output:
Microsoft (R) Build Engine version <IP_ADDRESS>163 (xplat-master/d375bb6e Thu Sep 27 07:16:13 EDT 2018) for Mono
Copyright (C) Microsoft Corporation. All rights reserved.

<IP_ADDRESS>163

OS info:

macOS 10.14

If applicable, version of the tool that invokes MSBuild (Visual Studio, dotnet CLI, etc):

I just realised that on non-Windows machines there is a $(Home) which achieves the same effect. 😀
Is there a universal variable for the user directory that works cross-platform?
(Otherwise, feel free to close this issue)

The way this currently works is because MSBuild considers all environment variables to be global properties, so you can access them via $().
In the meantime, you could do something like:
<PropertyGroup>
  <HomeDir>$(UserProfile)</HomeDir>
  <HomeDir Condition="'$(HomeDir)' == ''">$(Home)</HomeDir>
</PropertyGroup>

and then use $(HomeDir) where necessary.
or use conditions based on the OS (`'$(OS)' == 'Windows_NT')

Another option, more precise but less understandable:
$([System.Environment]::GetFolderPath(SpecialFolder.UserProfile))

Or any of the other values for that enum: https://docs.microsoft.com/en-us/dotnet/api/system.environment.specialfolder.

Closing as the question here seems to have been answered.


feat: replace main pkg manager npm -> yarn 3

Description Of Changes
https://sendbird.atlassian.net/browse/UIKIT-3546
I highly recommend you to test this branch on your local and see if it works as before.
I checked yarn storybook & yarn build work fine on my local machine and it seems the CI passes too.
To test this on your side,
1. Remove root node_modules folder
Most of deps (except storybook; it will create its own on yarn run storybook cmd see why)
will be installed under .yarn/cache not node_modules
$ rm -r node_modules

2. Install & enable Yarn globally
Plz refer to these steps described here.
Make sure now you have Yarn 3.x.x version by printing yarn --version on your console.
🗣 Want to discuss
Q. Do we want to enable Zero-Installs too?
It's a powerful feature of Yarn berry for sure but it depends. Here're some pros and cons of the feature.

Pros:

Faster install times, as packages are already available in the global cache <- this will reduce the dep installation time in CI
Reduced disk space usage, as packages are not stored locally
Improved consistency across different environments, as the same package versions are used globally
Easier management of large projects with many dependencies
Easier versioning of dependencies and improved reproducibility of builds
Everyone can use the same dep version since all deps will be managed by Git

Cons:

Increased network usage, as packages need to be downloaded on demand
Increased risk of network-related failures, as packages may not be available in the cache or on the remote registry
Potentially slower startup times, as packages need to be linked at runtime

Shouldn't we add a yarn binary and .yarnrc.yml file that specifies the yarn binary(.yarn/releases/*) and yarnPath?
There may be projects that still use yarn v1, so switching may be necessary.

@bang9 This is for setting up dev environment, not for version that distributed through npm ~ Does it still matter?

@sravan-s  It's an idea for the convenience of Solution Engineers who occasionally fork and test/work on something and maintainers.
It would be ideal if we could standardize the environment to yarn berry, but until then, frequent switching may be necessary since most repositories, including core, uikit-react-native, are currently using yarn v1.
If the yarn version is not specified within the project, the locally specified version will be used, which could lead to unexpected installations.

@bang9 Yeah I got your point Airen. Let me add that files too :)

+It seems that the current installation process in CI is using yarn v1. (Adding the binary to .yarn/release seems to fix it.)
https://github.com/sendbird/sendbird-uikit-react/actions/runs/4607267036/jobs/8141571814#step:5:5

@bang9 Oh it was my bad. I should've set the version and commit .yarn/ together. Fixed in https://github.com/sendbird/sendbird-uikit-react/pull/473/commits/39f2cc1db673a092a120f79b75db6a8e04a4afcf
Seems fine now https://github.com/sendbird/sendbird-uikit-react/actions/runs/4617536925/jobs/8163908954

BTW I won't merge this PR in this sprint but will do next week just to be safe.

I tried to build command too. Seems there're some warnings but same happens \w npm too ;)

yeah, those are fine, I have a branch to clean that up ajjaja

FYI I put npm publish cmds back instead of updating them \w yarn in this PR since yarn's publish cmd didn't really work nicely. So we probably keep npm cmd for now until we find a better way \w yarn.


button has gone！

VSCode Version:1.43
OS Version:macOS 10.14.6

Steps to Reproduce:

I update vscode ，and then，the open folder button has gone！

Does this issue occur when all extensions are disabled?: Yes/No

This is either a bug with the translation itself and or how we handle the string in a tranlated version. I will start with @isidorn as a owner of the explorer.
@isidorn if you think that is a translation problem please assign to @danyeh @janbaltus.

Thanks @dbaeumer
I have pushed a comment to all these strings that the word command should not be transalted.
Forwarding this issue to @danyeh and @janbaltus as this has to be fixed on the transaltion side.
It would be very cool if we fix this as soon as possible as it breaks one of the key flows in VS Code.
For transparency adding Important label.

Please update the LP version to 1.43.7

@janbaltus thanks a lot for the quick fix!


tests: posix: common: userspace: qemu_arc_em triggers assertion in linker script

Describe the bug
At some point there was a disconnect in KOBJECT_RODATA_SZ between
build/zephyr/include/generated/zephyr/linker-kobject-prebuilt-rodata.h
#ifndef KOBJECT_RODATA_SZ
#define KOBJECT_RODATA_SZ 348
#endif

and the actual rodata generated.
from zephyr_final.map
                0x0000000080028860                _kobject_rodata_area_start = .
 *(SORT_BY_ALIGNMENT(.kobject_data.rodata*))
 .kobject_data.rodata
                0x0000000080028860      0x24c zephyr/kobject_hash_renamed.o
                0x0000000080028aac                _kobject_rodata_area_end = .
                0x000000008001bb58                _kobject_rodata_area_used = (_kobject_rodata_area_end - _kobject_rodata_area_start)
                0x0000000000000000                ASSERT ((_kobject_rodata_area_used <= 0x15c), scripts/build/gen_kobject_placeholders.py did not reserve enough space for kobject rodata.)

In the case above the value of KOBJECT_RODATA_SZ is 348 (0x15c), but the actual _kobject_rodata_area_used is 0x80028aac - 0x80028860 = 0x24c = 588.
Please also mention any information which could help others to understand
the problem you're facing:

What target platform are you using? qemu_arc/qemu_arc_em
What have you tried to diagnose or workaround this issue? Followed build steps, inspected build output
Is this a regression? It seems not to be. This has passed CI and manual testing in the past already. But seems to be consistently reproducible at least on the latest from main.

To Reproduce
Steps to reproduce the behavior:

west twister -i -p qemu_arc/qemu_arc_em -s tests/posix/common/portability.posix.common.userspace
See error

Expected behavior
Test passes
Impact
CI is broken.
Logs and console output
west twister -i -p qemu_arc/qemu_arc_em -s tests/posix/common/portability.posix.common.userspace
...
scripts/build/gen_kobject_placeholders.py did not reserve enough space for kobject rodata.

Environment (please complete the following information):

OS: Linux
Toolchain: Zephyr SDK
Commit SHA: 6d87bd65aebf2db1b31bf524e158c49646dd05c5

Additional context
Previously built / ran fine in https://github.com/zephyrproject-rtos/zephyr/pull/81505

OK, so that's a gperf issue.
kobject_prebuilt_hash.c: MAX_HASH_VALUE is 225, so the asso_values data type is unsigned char.
kobject_hash.c: MAX_HASH_VALUE is 258, so the asso_values data type is unsigned short.


Suggested install script breaks on Windows

In README.md it is suggested to set the package.json install script to:
...
  "scripts": {
    "install": "prebuild-install || node-gyp rebuild"
  }
...

The || part is however not portable to Windows, so packages that need to be installable on Windows will need an install script written in JavaScript. (Unless I'm missing something obvious, which is likely.)

|| does work in windows CMD but not in powershell.

Yeah I was barking up the wrong tree. Sorry for the false alarm.


Feature request - ForceOAuth parameter for Connect-SPOService

Currently it is not possible to run an Azure Function that loads the SharePoint module and use a user account to connect using Connect-SPOService. This is because the ForceOAuth parameter must be set in registry, and the registry is read only in Azure Functions.
There is no workaround other than patching the Microsoft.Online.SharePoint.PowerShell.dll, changing an if in InstantiateSPOService.
A very simple patch to Microsoft.Online.SharePoint.PowerShell.dll, adding a new parameter to Connect-SPOService called "ForceOAuth", that adds the ForceOAuth parameter to InstantiateSPOService, would solve this issue.
Also, even though functions are dotnetcore, the module runs just fine using Import-Module $moduleFile -DisableNameChecking -UseWindowsPowerShell

Hello @mariussm Marius, how are you?
Here, we are limited to documentation issues, if you want your request to reach the product team, please visit SharePoint Online uservoice that way, it can reach the product team behind the module.
Thanks

@mariussm Thank you very much for your kind feedback. Considering your valuable feedback, as advised please log this issue as a User Voice. Concerning team will evaluate and take the appropriate action, as per their schedule. We proceed here to close it. Thanks again for taking out some time and sharing your feedback.


Custom field names from vault items are not displayed

Hello,
When I try to insert an existing vault item value into the editor, the names of custom fields are not visible. The Plugin shows only the ID of the custom fields and not the field name.

The image is not working

The image is not working

You can also view the image under the following link.
https://lnk.nisu.ly/3q23H6tSQC5kY2l99W5v

Adding image on this issue for everyone to see, to avoid link rot.


[COMPILER] Slightly incorrect instructions on array assignment.

Minimal repro here tbl[i] = i. The value is okay, but the instructions are inaccurate, and I think are leading to a bug here: RUBY_ISEQ_DUMP_DEBUG=prism make test/-ext-/st/test_numhash.rb but this needs a little more investigation, the source of the bug might be different.

@eileencodes is working on this!


pydantic.error_wrappers.ValidationError: 1 validation error response

I have:
model.py
class ItemObjects(Base):
    __tablename__ = "OBJT"
    ID = Column(Integer, primary_key=True, index=True)
    O_MAILITEM = Column(String, index=True)

shema.py
class ItemObjects(ObjectsBase):
    ID:int
    O_MAILITEM:str

crud.py
def get_objects(db: Session, skip: int = 0, limit: int = 100):
    return db.query(models.ItemObjects).offset(skip).limit(limit).all()

I am using SQL Server in database.py. Connection with database is ok.
So in main.py:
@app.get("/objects/", response_model = schemas.ObjectsBase)
async def read_objects(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
    lobjects = crud.get_objects(db, skip=skip, limit=limit)
    return lobjects

when i run i have received this error:

.
In database;
I have a table "OBJT" in database with same colunns [e.g. ID,  O_MAILITEM, O_A_NAME, and others colunns].
Can you help me to solve this?

I think the issue is that you need ObjectsBase to have orm_mode = True in its Config -- search for orm_mode here for more detail. Try that and report back?

Hi,
Thanks for your feedback, but return same error.
I put in Shema.py: class Config: orm_mode = True

met the same question , any solution here？

met the same question , any solution here？

find the answer:
previous:
@router.get('/info/get', response_model=schemas.QQMessage)
def read_qq_messages(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
    message = crud.get_qq_messages(db, skip, limit)
    return message

after:
from typing import List

...

@router.get('/info/get', response_model=List[schemas.QQMessage])
def read_qq_messages(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
    message = crud.get_qq_messages(db, skip, limit)
    return message

GET request's response_model is different from POST method

Thanks for the help @dmontagu!
Thanks for the report @binbinah!
@Biscai were you able to solve your problem? May we close this issue?

thanks for your help @binbinah !
@tiangolo the problem is solved. Thanks

errors due to response model in app.("",..) remove it and the error goes

errors due to response model in app.("",..) remove it and the error goes


JVM

1 JVM Profile
This project is a low overhead sampling profiler for Java that does not suffer from Safepoint bias problem. It features HotSpot-specific APIs to collect stack traces and to track memory allocations. The profiler works with OpenJDK, Oracle JDK and other Java runtimes based on HotSpot JVM.
async-profiler can trace the following kinds of events:

CPU cycles
Hardware and Software performance counters like cache misses, branch misses, page faults, context switches etc.
Allocations in Java Heap
Contented lock attempts, including both Java object monitors and ReentrantLocks

2 jstat 命令
The jstat command displays performance statistics for an instrumented Java HotSpot VM. The target JVM is identified by its virtual machine identifier, or vmid option.
-class 输出加载的 class 数目
$jstat -class 62152
Loaded  Bytes  Unloaded  Bytes     Time
  9394 17831.9     1362  2112.4       2.30

Loaded: Number of classes loaded.
Bytes: Number of kBs loaded.
Unloaded: Number of classes unloaded.
Bytes: Number of Kbytes unloaded.
Time: Time spent performing class loading and unloading operations.

[1] https://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Ftasks%2Fqueryingheapobjects.html
[2] http://www.lightskystreet.com/2015/09/01/mat_usage/
[3] https://www.iteye.com/blog/su1216-1535776
[4] https://www.cnblogs.com/yueshutong/p/9824772.html
[5] https://blog.csdn.net/pange1991/article/details/82023771
[6] http://www.voidcn.com/article/p-alimuihv-dq.html
[7] https://cloud.tencent.com/developer/article/1361381

OQL 排查内存泄漏问题的一次过程

jmap -histo $PID  发现某些对象比预期的要多（这一步需要对内存的使用有一定的了解，也就是说 PID 的内存使用，或者不同对象的数目关系等)
jmap -dump:format=b,file=dump.bin $PID dump 一份 heap dump
使用 MAT 进行分析，查看第一步中得到的怀疑对象（或者使用 MAT 提供的 内存泄漏 提示工具），通过 MAT 图形话界面，或者 OQL 等，查看 "泄漏" 的内存被谁持有，对照代码分析原因

GC Log

以 CMS 为例
需要补充，哪几个步骤是 Stop the world，以及每个步骤应该是在什么区间
每一行日志分别代表哪个阶段，是否会 STW，耗时的建议值，如果某个阶段耗时长，可以通过什么参数进行调整？

 -XX:+UseCMSInitiatingOccupancyOnly prevent usage of GC heuristics
 -XX:CMSInitiatingOccupancyFraction=75 informs Java VM when CMS should be triggered
-XX:ParallelGCThreads: Sets the number of threads used during parallel phases of the garbage collectors. The default value varies with the platform on which the JVM is running.
The SurvivorRatio parameter controls the size of the two survivor spaces. For example, -XX:SurvivorRatio=6 sets the ratio between each survivor space and eden to be 1:6, each survivor space will be one eighth of the young generation. The default for Solaris is 32. If survivor spaces are too small, copying collection overflows directly into the old generation. If survivor spaces are too large, they will be empty. At each GC, the JVM determines the number of times an object can be copied before it is tenured, called the tenure threshold. This threshold is chosen to keep the survivor space half full.
-XX:+UnlockDiagnosticVMOptions Unlocks the options intended for diagnosing the JVM
-XX:ParGCCardsPerStrideChunk=4096 use ParGCCardsPerStrideChunk value to control the granularity of tasks given to GC worker threads and helps get the best performance out of a patch written to optimize card table scan time spent in young generation collection. By default ParGCCardsPerStrideChunk =256 (card is 512 bytes, so it would be 128KiB of heap space per stride) which means that 28GiB heap would be broken into 224 thousands of strides
The detail description below comes from the article[1]

- With -XX:ParallelGCThreads=<value> we can specify the number of GC threads to use for parallel GC. For example, with -XX:ParallelGCThreads=6 each parallel GC will be executed with six threads. If we don’t explicitly set this flag, the JVM will use a default value which is computed based on the number of available (virtual) processors. The determining factor is the value N returned by the Java method Runtime.availableProcessors(). For N <= 8 parallel GC will use just as many, i.e., N GC threads. For N > 8 available processors, the number of GC threads will be computed as 3+5N/8.

Using the default setting makes most sense when the JVM uses the system and its processors exclusively. However, if more than one JVM (or other CPU-hungry systems) are all running on the same machine, we should use -XX:ParallelGCThreads in order to reduce the number of GC threads to an adequate value. For example, if four server JVMs are running on a machine with 16 processor cores, then -XX:ParallelGCThreads=4 is a sensible choice so that GCs of different JVMs don’t interfere with each other.

[1] https://blog.codecentric.de/en/2013/01/useful-jvm-flags-part-6-throughput-collector/
[2] JVM Options you should always use in production
[3] Secret HotSpot option improving GC pauses on large heaps
[4] Java Garbage Collection Tuning Strategy - An Example

Getting Started with the G1 Garbage Collector
The Garbage-First (G1) collector is a server-style garbage collector, targeted for multi-processor machines with large memories. It meets garbage collection (GC) pause time goals with a high probability, while achieving high throughput. The G1 garbage collector is fully supported in Oracle JDK 7 update 4 and later releases. The G1 collector is designed for applications that:

Can operate concurrently with applications threads like the CMS collector.
Compact free space without lengthy GC induced pause times.
Need more predictable GC pause durations.
Do not want to sacrifice a lot of throughput performance.
Do not require a much larger Java heap.

G1 is planned as the long term replacement for the Concurrent Mark-Sweep Collector (CMS). Comparing G1 with CMS, there are differences that make G1 a better solution. One difference is that G1 is a compacting collector. G1 compacts sufficiently to completely avoid the use of fine-grained free lists for allocation, and instead relies on regions. This considerably simplifies parts of the collector, and mostly eliminates potential fragmentation issues. Also, G1 offers more predictable garbage collection pauses than the CMS collector, and allows users to specify desired pause targets.


[Snyk] Security upgrade react-query from 3.39.3 to 4.0.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

front/switch-manager-react/package.json

Vulnerabilities that will be fixed
With an upgrade:

Severity
Priority Score (*)
Issue
Breaking Change
Exploit Maturity

661/1000  Why? Recently disclosed, Has a fix available, CVSS 7.5
Missing Release of Resource after Effective Lifetime SNYK-JS-INFLIGHT-6095116
Yes
No Known Exploit

(*) Note that the real score may have changed since the PR was raised.

Commit messages

Package name: react-query
    The new version differs by 1 commits.

357ec04 v4 release (#3842)

See the full diff

Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

Please notice this is completely automatic so it requires some testing before merge.


Check for exports before define

OL3 builds do not currently work with Webpack without some awkward configuration.  By checking for exports before define, our "umd" builds work with both Browserify and Webpack.
There may still be a problem with people trying to use OpenLayers builds with require.js.  If there are any of those people, we can address that problem separately.
Fixes #3162.

Looks good, please merge.

+1


Move atomvm_lib MQTT client to AtomVM

The atomvm_lib repo contains an integration with the MQTT client API in the IDF SDK.  Since this represents core functionality of the ESP32, this code should be moved into the AtomVM esp32 platform as a component.

As I just discovered I have a vested interest in this, let me know if I can do anything to help


[Console App]Indicate where the "Server Endpoint" details can be found

Is your suggestion related to an experience ? Please describe.
In the console app there is no indication where the server endpoint details can be found. An application developer will need to know these endpoint details, although they are available there is no indication where it can be found.

Describe the improvement
Clearly indicate where the server connection details can be found.

This is  fixed with #3582
The improvement can be summarized as follows.

Added a new tab named Info to include the server endpoints
Added navigation to the Info tab through the Quick Start tab targeting users who skip the quick start guide.
Removed the help panel in the application view as its content is now contained in the Info tab


[BUG] File upload node stopped working on cloud

Describe the bug
File upload node stopped working
Setup

Installation [Cloud]
Flowise Version [e.g. 1.2.11]
OS: [Windows]
Browser [Edge]

Should be fixed now. Can you try again?

Do you see the file upload button from the chat? Or you are able to upload but it's not processing? Do you have a recordings to show the issue?

@HenryHengZJ Here's a loom video of the issue

should be fixed in v2.2.2!
feel free to re-open if issue still there


Implementation of websocket-proxy to KrakenD image

Need to fork module from https://github.com/Jozefiel/krakend-websocket to frinx org and replace in project

obsolete


TCP or UDP for IP Address Dependencies

The section "IP Address Dependencies"
https://docs.microsoft.com/en-us/azure/app-service/environment/firewall-integration#ip-address-dependencies
It doesn't say if the ports *:123 and *:12000 are required. It doesn't say if this is TCP or UDP traffic. Please confirm.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 29246f12-744e-08a1-c222-b0eae866b401
Version Independent ID: 6e925f96-dc31-d400-2681-2e387b40ed74
Content: Locking down App Service Environment outbound traffic - Azure
Content Source: articles/app-service/environment/firewall-integration.md
Service: app-service
GitHub Login: @ccompy
Microsoft Alias: ccompy

@bubbletroubles, Thanks for the question! We are investigating and will update you shortly.

@bubbletroubles, For IP address dependencies endpoints *.123 and *.12000 both TCP and UDP traffic is allowed. Thanks again for raising this query. I have requested the content author (@ccompy) to review further and update the document as appropriate.

@bubbletroubles, The document has been updated and reflects the changes. Thanks again for sharing your feedback on this item. We will close this out, but if you feel you need more information please just let us know.


feature: better runtime behaviour for signature mismatches

Describe the Feature Request
Provide better feedback to developers at runtime that @DgsQuery, @DgsSubscription and @DgsMutation-annotated methods do not match the expected signatures.
Currently, the framework just silently fails on the server-side and it's not always immediately obvious where the disconnect is.
For example, this schema
type Query {
    user(id: ID!): User
}

type User {
    name: String
}

And this fetcher:
@DgsComponent
public class UserFetcher {
    @DgsQuery
    public User user() { // Note accidental missing ID
        return new User();
    }
}

There is currently no feedback on the server that this is destined to fail when the server starts, nor any when the query is made by a client.
Describe Preferred Solution
Log an error, and possibly prevent the server from starting (like Spring would for ambiguities surrounding beans).
Ideally there should be multiple errors, which should be as specific as possible e.g.
"No method found named 'users' annotated with @DgsQuery. Searched 43 components"
"Parameter mismatch in FooComponent::users. Found (String,String), expected (String,int)"
"Method  FooComponent::users annotated with @DgsQuery does not match any query defined in schema"
and, per #1171
"Multiple valid candidates for mutation 'addUser': FooComponent::addUser, BarComponent::addUser. Remove the annotation from one method to resolve the ambiguity"
I raised https://github.com/Netflix/dgs-codegen/issues/433 against the codegen plugin for a feature which might help prevent these kind of issues at compile-time. If that's implemented then the runtime behaviour becomes less important, since some of these wouldn't then be possible, at least for folks using the plugin.
Describe Alternatives

Throw an exception rather than logging an error. I think the stacktrace would be largely useless to users, but it might help framework devs?

Continue to silently fail.

So this is actually not a bug since you can choose not to use some or all of the input arguments provided and directly extract it from the DataFetchingEnvironment (the graphql-java way). We have a DGS IntelliJ plugin that makes recommendations to use this with @InputArgument but it is not incorrect for the method arguments to be missing. Using the DGS IntelliJ plugin catches these types of issues better. I think from a framework standpoint it is better to not be overly opinionated about this.
I do agree that the case of multiple valid candidates can bet detected better as this is functionality specific to the how data fetchers are registered in the DGS framework.


Validation Form Voyager 1.2

Version information

Laravel: v5.8
Voyager: v1.2
PHP: 7.1.3
Database: MySQL 5.7

Description
Hi All,
So the case is after I submit the blank form with intention to test the validation, I got return error message in json instead of show the error message below the text box. Am I missing something in order to show the error message in each respective text box?
Expected behavior
THere should be error message below each text box.
Screenshots

So in this steps, I will submit the blank form.

I got this as return.

this is my code. RequestValidator only return array of validations needed.
Kindly need your help with this

Duplicate of #4366 and #3494.

Closed for inactivity.
If you are still experiencing this problem you can open another issue.


Polar Webhooks

Webhooks:

Subscription
Issue funding
Benefit granted
Benefit revoked

Preferably these could be channel independent e.g., I would want to post webhook events for subscriptions, funding, and pledges to public channels but the others would be bound for admin-only channels

Thank you @JacobCoffee, I think you mean the Discord webhooks, right? This short proposal was more focused on generic Polar Webhooks for API integrations. But definitely a short written issue without a lot of context :)

I recently found Standard Webhooks, which seems to be an industry attempt at defining best practices for webhooks.


Fix a few tests

Hi,
Roland Mas here, as the maintainer of the Debian packages for Freesas. I started updating the packages to v2024.09.0 today, and I found a few errors in the testsuite. I fixed them as best I could, so I submit them to you in the hope that the patch can be included in your repository so as to reduce the need for a Debian-specific patch in the future.
Feel free to comment or request changes :-)

I added a second commit that tweaked the imports in the testsuite, to allow running it on an installed system as well as during the build, for the autopkgtests CI system in Debian.

Hi Rolland,
Thanks for your work on the packaging. It is appreciated. While I totally agree with your first commit, the usage of relative imports should be possible and is always recommended ...
Indeed, it is possible to run the test on the installed version with
./run_tests.py --installed
which prints out where the library is loaded:
WARNING:run_tests:Test freesas 2024.9.1-dev0 from /home/jerome/.venv/py311/lib/python3.11/site-packages/freesas
TEST_LOW_MEM=False TEST_RANDOM=False

while the same script ruun without the option tests a local installation.
I don't know precisely how debian tests are launched but this should be fixed in the debian scripts.
Cheers,
Jerome

The autopkgtests (as well as the build-time testsuite) are run with a simple "pythonX -m unittest discover -v" (with X iterating across supported Python versions). This leaves the logic in unittest's hands, greatly simplifiyng the running of the testsuite, and avoids having to ship run_tests.py, bootstrap.py and the pyproject.toml file in the temporary dir from where the tests are run, avoids having two different ways to run tests, and also avoids having to ship the tests themselves in the installed package.
So I'm curious, what does run_tests.py do in addition to that? Is it something that's relevant to the packaging, or mainly to the upstream authors? I can of course revert that part of the patch if it's not relevant to you, but I'm unsure about how best to run the tests in the packaging/distro environments.

run_test.py is not mandatory for running the tests... you can for example use:
python3 -c "import freesas.test, sys;sys.exit(freesas.test.run_tests())"

Okay, I removed the second commit from the PR and will only keep it as Debian-specific patch.

Thanks Roland


Updating Ruby on macOS Mojave 10.14.2 using homebrew rbenv

My apologies if this issue has already been brought up as this is my first Github post. Don't kill me!
when I type ruby -v I get ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
I followed some instructions to troubleshoot the issue using the below guide:
https://github.com/rbenv/rbenv#how-rbenv-hooks-into-your-shell
However, when I execute the last command 'brew upgrade rbenv ruby-build'
This is what is returned:
Error: rbenv 1.1.1 already installed
Error: ruby-build 20190130 already installed

I think the issue is that my path is messed up from originally starting with Python and then deciding to start with Ruby.
Here is my $PATH:
 -bash: /Users/emilianolowe/.rbenv/shims:/anaconda3/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin: No such file or directory
If someone could help me I would be really happy!
Thanks,
Emiliano

Hi Emiliano,
You've done everything right so far. rbenv is installed. Now you just need to install a Ruby version with rbenv and change your global version away from "system".
Check your current state:
rbenv versions

Then install a new one:
rbenv install 2.6.1
rbenv global 2.6.1
ruby -v //=> "ruby 2.6.1..."


Implement Client::Commit()

Implement the body and unit test for Client::Commit
See also: https://github.com/googleapis/google-cloud-cpp-spanner/blob/master/google/cloud/spanner/client.h

This was done in #302


Fix a bug where if the player was offline, you were unable to open the restore inv.

I found on my server (testing server: 1.20.1) that we were unable to open player inventories if the player was offine, this is what I made to fix it, I alredy tested it and appears to work with no issues.

AxInventoryRestore-Modified.zip
I send here the compiled file if wonder to test, or check, anyways tag me if want me to test it anywhere lol

Hi, I can't replicate this issue and I also don't really understand what this pr does to fix it?

Inactive


Support for parallel clusters

This PR enables dind-cluster to create and run multiple dind clusters at the same time.
Some use cases:

Use dind to create test clusters
Functionality added by this PR would allow consuming tests to run in parallel. The testing framework is an example.
Emulate a production setup, where multiple isolated clusters are commonly running

Implementation Considerations

This PR changes the way that the default container label is used.
More specifically:

The Dockerfile still specifies a label (image label). This means that any external systems that were depending on that label to discover containers created by dind-cluster.sh will continue to discover them. Note: the label will now apply to all containers of all clusters that the script creates.
The image label is not used by dind-cluster.sh anymore. Instead, a different default label (can be changed per cluster via environment variable) is used. This is to enable discovery of multiple clusters, and ensure that only the intended containers and resources are targeted by up/down/clean etc.

UX Considerations
- Explicit context setting
Previously a default context was created by dind-cluster.sh for the cluster; and used by kubectl. With this PR, a new context is created per cluster and then is explicitly set as part of the kubectl call when targeting an apiserver. This means that users also need to explicitly specify the context when they want to connect to a cluster.
- Naming convention for docker resources
We originally proposed changing the convention from kube-master/kube-node/kube-net etc. to a suffixed version of the names. The suffix is a sha1 string. The intention here is to keep the resource names unique, to satisfy docker constraints. Any external consumers of the clusters created by dind-cluster.sh will have to update any references to the non-suffixed resource names.
Eventually the UX is: when creating a cluster using the default label (no DIND_LABEL set), the naming of the resources stays as it was pre-this-PR, i.e. kube-master/kube-node/kube-net etc.; this covers use cases mentioned in this comment.
When a custom label is set through DIND_LABEL, resource names will be suffixed with the label's sha, as described above.
cc @hoegaarden

/retest

Is there a way to rerun one (or all) circleci tests? We think this is a flake and would love to just rerun instead of pushing random commits.

Please take a look and let us know what you think about that feature -- esp. in regards to the UX changes (no more default context, all things suffixed with a lovely hash, ...)
Thanks a lot, Hannes & Maria
/cc @timothysc

Thanks for the PR. It'll be an important addition to kubeadm-dind-cluster. One thing though: how hard is to preserve the old behaviour with predictable node container names? E.g. when DIND_LABEL is not set. Thing is, I expect that in many situations people have scripts in CI etc that use things like docker exec kube-node-1 ..., e.g. we have this in Virtlet. I understand that this may make the code more complicated and less elegant, but still I'm afraid there'll be complaints from some users otherwise.

As of the flakes, I'll try to see if it's possible to make CircleCI allow non-owners to retrigger the jobs or if it's somehow doable using k8s-ci-robot.

@ivan4th

One thing though: how hard is to preserve the old behaviour with predictable node container names? E.g. when DIND_LABEL is not set.

Are you suggesting to have clusters with no DIND_LABEL set to have container names like kube-master and only clusters with DIND_LABEL set to have container names like kube-master-<hash>? I think that would be rather easy, given we have extracted the naming stuff for the containers in their own functions.

@hoegaarden

Are you suggesting to have clusters with no DIND_LABEL set to have container names like kube-master and only clusters with DIND_LABEL set to have container names like kube-master-? I think that would be rather easy, given we have extracted the naming stuff for the containers in their own functions.

Yes, that's what I mean.
Concerning retriggering the jobs: it's a bit clumsy, but doable, just checked from another GH account (I was not sure if people other than owners can rerun the jobs). You need to find the workflow (CircleCI's pipeline) for the PR. You can just use URL like https://circleci.com/gh/kubernetes-sigs/kubeadm-dind-cluster/tree/pull/161 and click on build-test-push (the name of the workflow) in any of the job rows, or click Details in the list of PR's checks, then find build-test-push on the page (using Cmd-F / Ctrl-F
for example) and click it. On the workflow page, there's Rerun button (again, use Cmd-F / Ctrl-F if CircleCI UI confuses you). It has dropdown menu, so you can either restart all of the jobs in the workflow or only restart the failed ones. Note that in some cases the restart doesn't happen immediately (maybe depending on the load of CircleCI servers).
Sorry for the inconvenience, I was using Travis CI before but it turned out that there's no good way to use ssh for debugging the jobs with Travis (it'll leak your secrets like credentials for the image repo), so I switched to CircleCI for the most of the tests except a few that are there to make sure KDC is still compatible with Travis CI. In Travis, the restart button is clearly visible and no workflows / pipelines are in use atm.

Sorry about the conflict, a PR was merged that fixes k8s master build.

@ivan4th - no worries we'll rebase.
We had a question about running test.sh test cases in CI. The file doesn't appear in the CIrcleCI config. Some test cases run in Travis (TEST_CASE=1.8, TEST_CASE=1.9, TEST_CASE=1.10). Do we go ahead and add any new ones there? Is there a different pattern we should follow?
cc @hoegaarden

@mariantalla intended usage of test.sh is (1) running tests locally (2) running a subset of tests on Travis CI to make sure k-d-c still works there. The idea is to run tests for each supported stable k8s version. I've forgot to include 1.11 there after adding it, thanks for noticing, will fix it a bit later.

@ivan4th Makes sense. In that case we were planning to move/add the tests that cover this PR to the jobs that run on CircleCI - so that they keep running on future commits. Any objections?

@ivan4th We added some tests for multiple parallel clusters on CIrcleCI (test_multiple_clusters_$VER). From our perspective this PR is ready to review. Please let us know what you think about it. Thanks!

Thanks for the PR! Merging.

/lgtm

/approve


[BUG] eth2fuzz lighthouse docker image fails to build

Description
Running make fuzz-all or make fuzz-lighthouse results in a compilation error
Expected Behavior
lighthouse should be successfully compiled and the docker image container executed
Actual Behavior
#7 508.5 thread 'rustc' panicked at 'assertion failed: `(left == right)`
#7 508.5   left: `DefId(0:1312 ~ ring[fe15]::digest::sha2::)`,
#7 508.5  right: `DefId(0:1313 ~ ring[fe15]::digest::sha2::::GFp_sha256_block_da                                                                                ta_order)`', compiler/rustc_middle/src/hir/map/collector.rs:227:13
#7 508.5 note: run with `RUST_BACKTRACE=1` environment variable to display a bac                                                                                ktrace
#7 508.5
#7 508.5 error: internal compiler error: unexpected panic
#7 508.5
#7 508.5 note: the compiler unexpectedly panicked. this is a bug.
#7 508.5
#7 508.5 note: we would appreciate a bug report: https://github.com/rust-lang/ru                                                                                st/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
#7 508.5
#7 508.5 note: rustc 1.50.0-nightly (e37f25aa3 2020-11-28) running on x86_64-unk                                                                                nown-linux-gnu
#7 508.5
#7 508.5 note: compiler flags: -C embed-bitcode=no -C debug-assertions=off --cra                                                                                te-type lib
#7 508.5
#7 508.5 note: some of the compiler flags provided by cargo are hidden
#7 508.5
#7 508.5 query stack during panic:
#7 508.5 #0 [index_hir] index HIR
#7 508.5 #1 [hir_owner] HIR owner of `{misc#0}`
#7 508.5 end of query stack
#7 508.5 error: could not compile `ring`
#7 508.5
#7 508.5 To learn more, run the command again with --verbose.
#7 508.5 warning: build failed, waiting for other jobs to finish...
#7 552.3 error: failed to compile `lighthouse v0.2.7 (/lighthouse/lighthouse)`,                                                                                intermediate artifacts can be found at `/lighthouse/target`
#7 552.3
#7 552.3 Caused by:
#7 552.3   build failed
#7 552.3 Makefile:20: recipe for target 'install' failed
#7 552.3 make: *** [install] Error 101
------
failed to solve with frontend dockerfile.v0: failed to build LLB: executor faile                                                                                d running [/bin/sh -c cd lighthouse && make]: runc did not terminate sucessfully
make: *** [Makefile:95: lighthouse] Error 1

Possible Fix
N/A
Steps to Reproduce

Your Environment

Version/Commit used: 8c0adcf
Operating System and version: Ubuntu 20.04

Hey @Daft-Wullie ,
I got the same issue this week-end but not anymore.
I think there was some breaking change in the nightly rust compiler that are now fixed.
Can you retry and let me know if this issue still occur?
Thanks,


Generate k8s config & operator v0.4.0

Besides moving the Prometheus config generation to ServiceMonitors this updates the Prometheus Operator to the latest release and updates the resources to reflect the changes of the release.
@alexsomesan @fabxc

Updated to use latest version of Prometheus, but we can probably hold off on this until the kube-state-metrics release is done.

I ran ./hack/cluster-monitoring/deploy and kubectl --namespace=kube-system apply -f manifests/k8s/self-hosted
Everything looks good, but compared to master, PR33 looses kube-state-metrics, kubelets, node-exporter and prometheus from targets.
The cert issue on the apiserver (kubernetes) target doesn't show up.
One alert shows: K8SKubeletDown (1 active)

Grafana looks to have no data ^

Sweet 🎉  👍


Existing envislink setup in configuration.yaml does not import

So I downloaded the new envisalink_new HACS implemention...changed the  existing envisalink header to:  envisalink_new in my configuration file  as per instructions.   Did a system reboot (I'm using hassos  10.3 on a generic-x86-64).  Went to SETTINGS/INTEGRATIONS when it came back up  and I see in the "Discovered" section the new Envisalink_new entry waiting to be configured.  If I click configure it prompting me as if this is a new installation (name, IP address, etc) as if nothing was imported over from the existing entries out of configuration.yaml.  I stopped at this point.   The alarm panel is a DCS type if that makes any difference...Here is a partial list of the envislink setup in my configuration file:
envisalink_new:
host: <IP_ADDRESS>
panel_type: DSC
user_name: santa
password: user
code: "9787"
port: 4025
evl_version: 3
keepalive_interval: 60
zonedump_interval: 0
panic_type: Police
zones:
1:
name: "Kitchen(Garage)"
type: "opening"
2:
name: "DeckDoor"
type: "opening"
EDIT:  ufodone, I went ahead and created things manually...not sure you need to spend any time on this.  Consider it a data point - perhaps someone else may have this issue.

Closing this.   Glad that ufodone has taken over this integration - kudos to him.  He does need to put a paypal contrib link in though :-)


add pipefail for shell commands

ansible-lint requires pipefail in shell commands that use pipes
Signed-off-by: Rich Megginson<EMAIL_ADDRESS>

[citest]


support CA file path definition

#46

Hi @zhudan
Thanks for your contribution:)
Could you also help to point out the scenario when you need to place the certs in a different folder? We'd be happy to hear!
BTW, you could also sign the CLA when you make a PR, thanks!

关闭pr。我用了其他解决方案。


Add an example

Important note
Before anything else, this project is in very early stages and does not have full documentation yet. So, any question you might have you can ask down in the comments of this issue.
Description
We want to have more examples to show possible use cases of this library.
The goal here is to make a new example based on the url example.
It doesn't need to as complex but must:

follow the same format as the url example file (top info, comments, match examples).
use RegExpTemplate for the construction, compile the result RegExp and make some test matches.
be meaningful (close to a real case scenario) or help people better understand the library.

How to
The easiest way to start is by creating a html file with the following code:
<script<EMAIL_ADDRESS><script>
  // your example code goes here
</script>

where you can create and test your example on your browser and any code editor.
Once the example is working and ready to merge, make a fork of the project and add your file with your example (this can be done directly on the GitHub webpage) and make a pull request.
Then you can wait us to review it: if something is not right, we will send you feedback so you can correct it.
Thanks for your time and good coding :)

Hey @AndreJesusBrito , I would like to work in this, could you please assign it to me?

@bgildson sure.


handle RadialGradient fill style

This was done by messing around with XFL files and having Animate
generate the corresponding SVGs. The radius and matrix element functions
were found just by guessing and checking. They seem to work as expected
on several scenes that previously were rendered incorrectly.

Hold off on this one. I see an issue with how I'm calculating the gradient radius.

This one will require a refactor. It looks like the radialGradient radius comes from the width and height of the shape, and that information isn't in the FillStyle. I think the only way to get that information is by tracking the bounds of the shape corresponding to the fillStyle. This leads to the circular dependency the way the code is currently structured:

The function for getting the shape (xfl_edge_to_svg_path) returns the SVG path elements, and so it requires all attributes for the shape it's given.
One of those attributes specifies the radialGradient information, which requires shape information to get the correct radius.

Really? If so, the code will have to produce SVG paths using style IDs only, and add on the style attributes later. Also, does finding the bounds of the shape require finding the axis-aligned bounding box (AABB) of each Bezier (like so), and then finding the AABB of every sub-AABB?
I wonder why Animate chose to make radial gradients more complicated than linear gradients. Is it convenient in some way?

That sounds correct. I just checked it in Animate. I drew a quadratic bezier curve with the control point very far from the endpoints. I then drew two axis-aligned lines to measure the width and height of the bezier curve, then calculated the radius of the curve as sqrt( width^2 + height^2 ) / 2. The radius matched almost exactly what I get when I export to SVG. I tried this with three different curves, and it worked every time.
The edge format contains only lines and quadratic bezier curves. For lines, it's easy: just check the startpoint and endpoint, and take the two extremal x and y values. For quadratic bezier curves, there are only 4 points to check for extremal values: the startpoint, the endpoint, and the x-critical point, and the y-critical point. The critical point happens where the derivative of the bezier curve is equal to 0.
The quadratic bezier curve is given by (1-t)[(1-t)a + tb] + t[(1-t)b + tc] = (1-t^2

Sorry, I accidentally re-opened the merge request.
Your comment sounds correct. I just checked it in Animate. I drew a quadratic bezier curve with the control point very far from the endpoints. I then drew two axis-aligned lines to measure the width and height of the bezier curve, then calculated the radius of the curve as sqrt( width^2 + height^2 ) / 2. The radius matched almost exactly what I get when I export to SVG. I tried this with three different curves, and it worked every time.
The edge format contains only lines and quadratic bezier curves. For lines, it's easy: just check the startpoint and endpoint, and take the two extremal x and y values. For quadratic bezier curves, there are 4 points to check for extremal values: the startpoint, the endpoint, and the x-critical point, and the y-critical point. The critical point happens where the derivative of the bezier curve is equal to 0.
The quadratic bezier curve is given by (1-t)[(1-t)a + tb] + t[(1-t)b + tc] = a(1-t)^2 + 2b(t - t^2) + ct^2.
The derivative is: 2a(t-1) + 2b(1-2t) + 2ct.
You get one equation when you plug in the x values of the points a, b, and c. You can solve that equation for t. If the resulting t falls between 0 and 1, you can plug that t into the quadratic bezier curve function above to get the x-critical point.
Repeat by plugging in y values instead of x values to get the y-critical point.
Once you get the critical points, you can check those two points plus the two endpoints for extremal values to get the bounding box.
I think that would work, though I haven't tested it with an actual bezier curve.

The actual points to check for the quadratic bezier curves should be:

start point
end point
t = (x1 - x2) / (x1 - 2*x2 + x3), assuming this number is between 0 and 1. If it is, then check the point (1-t)[(1-t)a + tb] + t[(1-t)b + tc].
t = (y1 - y2) / (y1 - 2*y2 + y3), assuming this number is between 0 and 1. If it is, then check the point (1-t)[(1-t)a + tb] + t[(1-t)b + tc].


Don't even try to probe services that have a domain conflict

During translation to the new reconciler framework, we lost the ability to surface domain conflicts from the reconciler because we're not bailing out of reconcilation before we reach the prober, which will reset to MarkLoadBalancerNotReady. This fixes that.
This also drops the loglevel of the conflict log to info, as it's not really an error from the reconciler's PoV.
/assign @jmprusi @davidor

/hold

/unhold


Bumping multiple dependency versions

This PR will upgrade the versions of identity.inbound.auth.oauth, identity.oauth.addons and identity.server.api dependencies.

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/6795041136

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/6795041136
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/6796222324

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/6796222324
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/6797808068

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/6797808068
Status: success


Not using the specified user when using

I have a task that has a multiline script command and it seems that spot doesn't use the provided username when running it.
I can observe that if the command is single-line it works fine, but the multiline not.
I think it isn't user the provided user because when I was using an SSH key that matched my local user, it worked fine, however I may be wrong.
This is a minimal spot playbook that fails, I changed the real host and username by some example ones for posting the issue.
ssh_key = ".tmp/ssh-key.priv"

[[targets.prod.hosts]]
host = "example.com"
user = "my-user"
name = "vm1"

## Task: Disable Jenkins node for maintenance
[[tasks]]
name = "task1"
targets = [ "prod" ]

[[tasks.commands]]
name = "single-line"
script = "pwd"

[[tasks.commands]]
name = "multi-line"
script = """
#!/bin/bash
pwd"""

Below the spot command that I ran and the output
spot -v --dbg -p test.toml -t prod --task task1
spot v1.8.1-7040925-2023-06-12T21:01:17Z
2023/07/14 20:33:13.944 [DEBUG] request to load playbook "test.toml"
2023/07/14 20:33:13.945 [INFO]  playbook loaded with 1 tasks
2023/07/14 20:33:13.945 [DEBUG] load command "single-line" (task: task1)
2023/07/14 20:33:13.945 [DEBUG] load command "multi-line" (task: task1)
2023/07/14 20:33:13.945 [INFO]  no inventory loaded
2023/07/14 20:33:13.945 [INFO]  ssh key: .tmp/ssh-key.priv
2023/07/14 20:33:13.945 [DEBUG] use private key ".tmp/ssh-key.priv"
2023/07/14 20:33:13.945 [DEBUG] task "task1" has 2 commands
2023/07/14 20:33:13.945 [DEBUG] target "prod" found in playbook
2023/07/14 20:33:13.945 [DEBUG] target "prod" has 1 hosts: [{Name:vm1 Host:example.com Port:0 User:my-user Tags:[]}]
2023/07/14 20:33:13.945 [DEBUG] target "prod" has 1 total hosts: [{Name:vm1 Host:example.com Port:0 User:my-user Tags:[]}]
2023/07/14 20:33:13.945 [DEBUG] target hosts (1) [{Name:vm1 Host:example.com Port:22 User:my-user Tags:[]}]
2023/07/14 20:33:13.945 [DEBUG] connect to "example.com:22" (vm1), user "my-user"
2023/07/14 20:33:13.945 [DEBUG] create ssh session to example.com:22, user my-user
2023/07/14 20:33:14.922 [DEBUG] ssh session created to example.com:22
[vm1 example.com:22] run task "task1", commands: 2
2023/07/14 20:33:14.923 [INFO]  run command "single-line" on host "example.com:22" (vm1)
2023/07/14 20:33:14.923 [DEBUG] execute script "single-line" on example.com:22
2023/07/14 20:33:14.923 [DEBUG] command "single-line" is single line, using script string
2023/07/14 20:33:14.923 [DEBUG] run sh -c 'pwd'
2023/07/14 20:33:14.923 [DEBUG] run ssh command "sh -c 'pwd'" on <IP_ADDRESS>:22
[vm1 example.com:22]  > sh -c 'pwd'
[vm1 example.com:22]  > /home/my-user
[vm1 example.com:22] completed command "single-line" {script: sh -c 'pwd'} (380ms)
2023/07/14 20:33:15.304 [INFO]  run command "multi-line" on host "example.com:22" (vm1)
2023/07/14 20:33:15.304 [DEBUG] execute script "multi-line" on example.com:22
2023/07/14 20:33:15.304 [DEBUG] command "multi-line" is multiline, using script file
2023/07/14 20:33:15.304 [DEBUG] upload /tmp/spot-script2260163402 to /tmp/.spot/spot-script2260163402
2023/07/14 20:33:15.304 [DEBUG] upload /tmp/spot-script2260163402 to example.com:/tmp/.spot/spot-script2260163402
2023/07/14 20:33:15.639 [DEBUG] file mode for /tmp/spot-script2260163402: 0700
2023/07/14 20:33:16.086 [INFO]  uploaded /tmp/spot-script2260163402 to example.com:/tmp/.spot/spot-script2260163402 in 781.708961ms
[vm1 example.com:22]  ! failed command "multi-line" on host example.com:22 (vm1): can't prepare script on example.com:22: can't upload script to example.com:22: failed to create remote file: permission denied
2023/07/14 20:33:16.087 [ERROR] can't run task "task1" for target "prod": 1 error(s) occurred: [0] {failed command "multi-line" on host example.com:22 (vm1): can't prepare script on example.com:22: can't upload script to example.com:22: failed to create remote file: permission denied}
>>> stack trace:
main.main()
        /home/runner/work/spot/spot/cmd/spot/main.go:111 +0x272
panic: [ERROR] can't run task "task1" for target "prod": 1 error(s) occurred: [0] {failed command "multi-line" on host example.com:22 (vm1): can't prepare script on example.com:22: can't upload script to example.com:22: failed to create remote file: permission denied}

goroutine 1 [running]:
log.Panicf({0xd4f9c3?, 0x0?}, {0xc000223f60?, 0x9?, 0x7ffd269650ed?})
        /opt/hostedtoolcache/go/1.20.4/x64/src/log/log.go:391 +0x67
main.main()
        /home/runner/work/spot/spot/cmd/spot/main.go:111 +0x272

Thank you!

I can't reproduce it. This is my playbook:
user: umputun_bad
targets:
  dev:
    hosts:
      - {name: "dev1", host: "dev1.umputun.dev", port: 22, user: umputun}
      - {name: "dev2", host: "dev2.umputun.dev", port: 22, user: umputun_bad_too}

tasks:
  - name: run-things
    commands:
    - name: test
      script: |
        cd /srv
        dte=$(date +%Y%m%d)
        echo $dte
        echo "test" > /tmp/test-$dte.txt

 dev.umputun/spot [master|✔] spot -p spot-private.yml -v --dbg --target=dev
spot v1.9.0-480f8f5-2023-07-10T18:13:05Z
2023/07/14 16:37:22.260 [DEBUG] request to load playbook "spot-private.yml"
2023/07/14 16:37:22.261 [INFO]  playbook loaded with 1 tasks
2023/07/14 16:37:22.261 [DEBUG] load command "test" (task: run-things)
2023/07/14 16:37:22.261 [INFO]  no inventory loaded
2023/07/14 16:37:22.262 [INFO]  ssh key: /Users/umputun/.ssh/id_rsa
2023/07/14 16:37:22.262 [DEBUG] use private key "/Users/umputun/.ssh/id_rsa"
2023/07/14 16:37:22.262 [DEBUG] task "run-things" has 1 commands
2023/07/14 16:37:22.262 [DEBUG] target "dev" found in playbook
2023/07/14 16:37:22.262 [DEBUG] target "dev" has 2 hosts: [{Name:dev1 Host:dev1.umputun.dev Port:22 User:umputun Tags:[]} {Name:dev2 Host:dev2.umputun.dev Port:22 User:umputun_bad_too Tags:[]}]
2023/07/14 16:37:22.262 [DEBUG] target "dev" has 2 total hosts: [{Name:dev1 Host:dev1.umputun.dev Port:22 User:umputun Tags:[]} {Name:dev2 Host:dev2.umputun.dev Port:22 User:umputun_bad_too Tags:[]}]
2023/07/14 16:37:22.262 [DEBUG] target hosts (2) [{Name:dev1 Host:dev1.umputun.dev Port:22 User:umputun Tags:[]} {Name:dev2 Host:dev2.umputun.dev Port:22 User:umputun_bad_too Tags:[]}]
2023/07/14 16:37:22.262 [DEBUG] connect to "dev1.umputun.dev:22" (dev1), user "umputun"
2023/07/14 16:37:22.262 [DEBUG] create ssh session to dev1.umputun.dev:22, user umputun
2023/07/14 16:37:22.317 [DEBUG] ssh session created to dev1.umputun.dev:22
[dev1 dev1.umputun.dev:22] run task "run-things", commands: 1
2023/07/14 16:37:22.317 [INFO]  run command "test" on host "dev1.umputun.dev:22" (dev1)
2023/07/14 16:37:22.317 [DEBUG] execute script "test" on dev1.umputun.dev:22
2023/07/14 16:37:22.317 [DEBUG] command "test" is multiline, using script file
2023/07/14 16:37:22.317 [DEBUG] upload /var/folders/w5/dsr8pn3d4qqbyybsr_9vhc1r0000gn/T/spot-script368381278 to /tmp/.spot/spot-script368381278
2023/07/14 16:37:22.317 [DEBUG] upload /var/folders/w5/dsr8pn3d4qqbyybsr_9vhc1r0000gn/T/spot-script368381278 to dev1.umputun.dev:/tmp/.spot/spot-script368381278
2023/07/14 16:37:22.320 [DEBUG] file mode for /var/folders/w5/dsr8pn3d4qqbyybsr_9vhc1r0000gn/T/spot-script368381278: 0700
2023/07/14 16:37:22.323 [INFO]  uploaded /var/folders/w5/dsr8pn3d4qqbyybsr_9vhc1r0000gn/T/spot-script368381278 to dev1.umputun.dev:/tmp/.spot/spot-script368381278 in 5.726417ms
2023/07/14 16:37:22.323 [DEBUG] run sh -c /tmp/.spot/spot-script368381278
2023/07/14 16:37:22.323 [DEBUG] run ssh command "sh -c /tmp/.spot/spot-script368381278" on <IP_ADDRESS>:22
[dev1 dev1.umputun.dev:22]  > sh -c /tmp/.spot/spot-script368381278
[dev1 dev1.umputun.dev:22]  > 20230714
2023/07/14 16:37:22.329 [INFO]  deleted /tmp/.spot/spot-script368381278
[dev1 dev1.umputun.dev:22] completed command "test" {script: sh -c /tmp/.spot/spot-script368381278} (12ms)
[dev1 dev1.umputun.dev:22] script: /tmp/.spot/spot-script368381278
[dev1 dev1.umputun.dev:22]  + #!/bin/sh
[dev1 dev1.umputun.dev:22]  + set -e
[dev1 dev1.umputun.dev:22]  + cd /srv
[dev1 dev1.umputun.dev:22]  + dte=$(date +%Y%m%d)
[dev1 dev1.umputun.dev:22]  + echo $dte
[dev1 dev1.umputun.dev:22]  + echo "test" > /tmp/test-$dte.txt
[dev1 dev1.umputun.dev:22] completed task "run-things", commands: 1 (67ms)
2023/07/14 16:37:22.330 [DEBUG] connect to "dev2.umputun.dev:22" (dev2), user "umputun_bad_too"
2023/07/14 16:37:22.330 [DEBUG] create ssh session to dev2.umputun.dev:22, user umputun_bad_too
[dev2 dev2.umputun.dev:22]  ! can't connect to dev2: failed to create client connection to dev2.umputun.dev:22: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
2023/07/14 16:37:22.370 [ERROR] can't run task "run-things" for target "dev": 1 error(s) occurred: [0] {can't connect to dev2: failed to create client connection to dev2.umputun.dev:22: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain}
>>> stack trace:
main.main()
        /home/runner/work/spot/spot/cmd/spot/main.go:113 +0x21c
panic: [ERROR] can't run task "run-things" for target "dev": 1 error(s) occurred: [0] {can't connect to dev2: failed to create client connection to dev2.umputun.dev:22: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain}

As you can see, in my example, i have the wrong user defined globally and a correct user set for dev1. The attempt to connect to dev2 failed as expected, and you can see in this case, the error will indicate ssh issue clearly with ": ssh: handshake failed: ssh: unable to authenticate."
Do you have permission issues limiting writing to /tmp directory?

I tried to change the host and the user in your spot file and the problem is the same.
The user shouldn't have any permission limit on the /tmp directory because if I establish an SSH connection with that user and key, I can write in /tmp.
I read the /var/log/auth.log in the server and I can confirm spot is connecting with the correct user.
This is very weird. I guess some permission limiting is going on, but I don't know why.

You can try to change the temp directory and rebuild it to make sure this is something that is /tmp related.

I found the issue.
spot creates a /tmp/.spot directory with only write permission on the owner (which is the used user to connect o to the machine), it doesn't delete the directory when it finishes, and it doesn't recreate it in subsequent executions.
I connected to the machine and I deleted /tmp/.spot directory and then the other user can execute the task without issues.

Ah, it makes sense, indeed. So, the case you have is /tmp/.spot created for user A and after this, you run the command with user B.
Removing /tmp/.spot directory after the command execution is probably the right thing to do, but this can be unsafe if concurrent playbooks are running simultaneously. Alternatively, it can make this directory with 0x777 permission. What do you think?

and one more possible solution - making (and removing) a unique directory, i.e. /tmp/.spot-${rand}

I had the same ideas.
I like the second, creating a unique directory, however, would be possible to create the directory emitting mktemp -d .spot-xxxxx rather than compute the random value by spot on the local?
I feel that it would be more unlikely to have clashes, however, I have to admit that using crypto/rand package should not cause any clash either.

Something like mktemp -d --suffix=.spot is definitely better, I think

Invoking remote command for temp directory creation is not easy, as we need to communicate this path back to the spot. It is also another platform-specific thing I'm trying to avoid. So, the change I did in #130 makes this random part of /tmp/.spot-{rand} and cleaning on completion. It is relevant not just for the multiline script but for copy with the sudo flag as well. Both cases should be fine now and deployed to 1.9.1.
Pls check it out and confirm if it fixed your problem.

I can confirm that patch #130 released on v1.9.1 works.


Bootstrap 4

Refs #2730

@django-oscar/core
This PR rebased against the master branch. Please review and comment. Thanks.

Hey @samitnuk , is this ready for review?

Hey @samitnuk , is this ready for review?

Yes, it's ready.

@samitnuk third party SCSS files should not be committed - see #3236 where we removed these. Please remove everything in src/oscar/static_src/oscar/scss/bootstrap4/. These scss modules should ideally be imported directly from node_modules in our own scss files, or, as an intermediate step, copied into static/ by the gulp task. If you could make this change first it will reduce the diff considerably so that its easier to review.

@samitnuk third party SCSS files should not be committed - see #3236 where we removed these. Please remove everything in src/oscar/static_src/oscar/scss/bootstrap4/. These scss modules should ideally be imported directly from node_modules in our own scss files, or, as an intermediate step, copied into static/ by the gulp task. If you could make this change first it will reduce the diff considerably so that its easier to review.

@solarissmoke Done. Please continue your review when you will be able. Thanks.

Thanks @samitnuk! I've done one final review on this and found a few minor issues which I fixed, and then rebased, in #3302.


Can't find "cholmod.h" while installing using pip on macOS

I am installing scikit-sparse via pip and I got the error below:
 Building wheel for scikit-sparse (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /opt/local/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8 /opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /var/folders/zl/498rsyv11_v53_k5x1xfflkw0000gn/T/tmphqddsg3a
       cwd: /private/var/folders/zl/498rsyv11_v53_k5x1xfflkw0000gn/T/pip-install-0ezcix_f/scikit-sparse_63d2a4408dfe4ad1a24ef3837a8eea73
  Complete output (35 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-11.3-x86_64-3.8
  creating build/lib.macosx-11.3-x86_64-3.8/sksparse
  copying sksparse/__init__.py -> build/lib.macosx-11.3-x86_64-3.8/sksparse
  copying sksparse/test_cholmod.py -> build/lib.macosx-11.3-x86_64-3.8/sksparse
  creating build/lib.macosx-11.3-x86_64-3.8/sksparse/test_data
  copying sksparse/test_data/illc1033.mtx.gz -> build/lib.macosx-11.3-x86_64-3.8/sksparse/test_data
  copying sksparse/test_data/illc1033_rhs1.mtx.gz -> build/lib.macosx-11.3-x86_64-3.8/sksparse/test_data
  copying sksparse/test_data/well1033_rhs1.mtx.gz -> build/lib.macosx-11.3-x86_64-3.8/sksparse/test_data
  copying sksparse/test_data/well1033.mtx.gz -> build/lib.macosx-11.3-x86_64-3.8/sksparse/test_data
  copying sksparse/test_data/well1850_rhs1.mtx.gz -> build/lib.macosx-11.3-x86_64-3.8/sksparse/test_data
  copying sksparse/test_data/illc1850.mtx.gz -> build/lib.macosx-11.3-x86_64-3.8/sksparse/test_data
  copying sksparse/test_data/illc1850_rhs1.mtx.gz -> build/lib.macosx-11.3-x86_64-3.8/sksparse/test_data
  copying sksparse/test_data/well1850.mtx.gz -> build/lib.macosx-11.3-x86_64-3.8/sksparse/test_data
  running build_ext
  building 'sksparse.cholmod' extension
  creating build/temp.macosx-11.3-x86_64-3.8
  creating build/temp.macosx-11.3-x86_64-3.8/sksparse
  /usr/bin/clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk -Isksparse -I/private/var/folders/zl/498rsyv11_v53_k5x1xfflkw0000gn/T/pip-build-env-o0pnraoh/overlay/lib/python3.8/site-packages/numpy/core/include -I/opt/local/Library/Frameworks/Python.framework/Versions/3.8/include -I/usr/include/suitesparse -I/opt/local/Library/Frameworks/Python.framework/Versions/3.8/include/python3.8 -c sksparse/cholmod.c -o build/temp.macosx-11.3-x86_64-3.8/sksparse/cholmod.o
  In file included from sksparse/cholmod.c:638:
  In file included from /private/var/folders/zl/498rsyv11_v53_k5x1xfflkw0000gn/T/pip-build-env-o0pnraoh/overlay/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:4:
  In file included from /private/var/folders/zl/498rsyv11_v53_k5x1xfflkw0000gn/T/pip-build-env-o0pnraoh/overlay/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12:
  In file included from /private/var/folders/zl/498rsyv11_v53_k5x1xfflkw0000gn/T/pip-build-env-o0pnraoh/overlay/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1830:
  /private/var/folders/zl/498rsyv11_v53_k5x1xfflkw0000gn/T/pip-build-env-o0pnraoh/overlay/lib/python3.8/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: "Using deprecated NumPy API, disable it with "          "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-W#warnings]
  #warning "Using deprecated NumPy API, disable it with " \
   ^
  In file included from sksparse/cholmod.c:640:
  sksparse/cholmod_backward_compatible.h:1:10: fatal error: 'cholmod.h' file not found
  #include "cholmod.h"
           ^~~~~~~~~~~
  1 warning and 1 error generated.
  error: command '/usr/bin/clang' failed with exit status 1
  ----------------------------------------
 ERROR: Failed building wheel for scikit-sparse
Failed to build scikit-sparse
ERROR: Could not build wheels for scikit-sparse which use PEP 517 and cannot be installed directly

And I already installed suitesparse via MacPorts, it seems it is trying to find "cholmod.h" in /usr/include which does not even exist, and the suitesparse files are in /opt/local/include. Is there a way to modify the include path for pip?

Fixed by referring from the last answer, then build manually.

This should be solved by #71


GEODE-8127: Reintroduces changes that account for primary bucket changing

flaky test ignored
This reverts commit f243c4d99e1a223af0a3134d6a423b972195c507.
Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, check Concourse for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

It looks like the failures are not related to these changes and are not required so I think it would be okay to merge.


Sketch out workflow for deployments in Travis

Prepares for building and deploying a Homebrew bottle and Docker image
as part of a release.
Signed-off-by: Michael Smith<EMAIL_ADDRESS>

@ahpook this seems to setup the right things in Travis. It needs the actual build steps around docker build, creating the bottle, and changes related to deploying those artifacts.

This may be green, but will totally fail during a release because make bottle doesn't exist.


Error: socket hang up

Hitting an error based on some weird network condition, but I'm not sure how to catch this since it's asynchronous:
/usr/local/lib/node_modules/homebridge-yamaha/node_modules/yamaha-nodejs/node_modules/deferred/_ext.js:75
                        throw this.value;
                                  ^
Error: socket hang up
    at createHangUpError (_http_client.js:215:15)
    at Socket.socketOnEnd (_http_client.js:300:23)
    at Socket.emit (events.js:129:20)
    at _stream_readable.js:908:16
    at process._tickCallback (node.js:355:11)

You can see the downstream code here; it's possible that it's not defining an error callback in some case and that could be the problem...do you know if this should be properly caught if an error callback is always provided? Or is this something that needs to be (or can't easily be) caught at the yamaha-nodejs level?

Heh...never mind. Added failure callbacks in all cases and now the error is being caught. Thanks for your work!


v1.5.10 beta -- looking for feedback

I'd like to publish the v1.5.10 beta release in a few days.
Opening this issue to see if there are any big problems with it as there are some significant under-the-hood changes (tray and backend js compiler for both hangupsjs and yakyak)
Notable changes:

Adds spellcheck #1201
Corrects titlebar in MacOSX #1197

Under-the-hood:

Major change on how tray icon works, should be much more stable for now on #1200
Update to Coffeescript v2.5.1 from v1.9.3 #1212 and #1211
Reduces the number of files included in the release by using an ASAR file
Update deb package #1204
Switches to using Windows 10's built-in 'tar.exe' #1213

Thanks

I'm not getting any notifications since updating to macOS 10.15.5. Seems like a separate issue, because I have updated YakYak first in macOS 10.15.4, and then updated the OS. It showed notifications before updating OS, but not now. Should I open a separate issue for this?

Hummm, super strange as none of the bugfixes / features in newer versions should have an impact on the notifications.
Can you open the console (via menu or Ctrl+Alt+I) and check if there are any errors when you should be receiving a notification.
but please open a new ticket and we can continue the discussion there

I just installed the 1.5.10 beta a few minutes ago, so I'm only able to provide some cursory feedback. Windows 10. I've also gone back and made sure that these issues only exist in 1.5.10 and not in 1.5.9.

The setting "Show YakYak icon for notifications" no longer functions. It displays a tiny SnoreToast icon instead. I tried toggling it off and on a few times, but no dice.

Clicking the notification area tray icon to toggle the window state causes a massive amount of flicker. It appears as if the window is appearing and disappearing numerous times (possibly just a few, possibly dozens or hundreds of times), sometimes as a complete window, and other times as just a drop shadow. Here's an Imgur GIFV link of it.
Critical issue -- 1.5.10 does not seem releasable until this is resolved. It is very common now to enter a state in which clicking the notification area tray icon doesn't toggle the window at all (this applies to both trying to hide and show the window). When in this state, right-click > "show/hide" still works. Left-click does not work. Here's an Imgur GIFV link of a few attempts to toggle it hidden, followed by a few attempts to toggle it to visible. (In this gif, I left-lick the tray icon a few times, then right-click show/hide, then left-click a few more times.) I can reproduce this state by having "start minimized to tray" enabled, fully exiting YakYak, sending myself a new unread message from an alt account, and then relaunching YakYak. This state can also be entered occasionally outside of startup. From my testing, it seems to occur somewhat arbitrarily, but influenced by which conversation is currently active, with certain conversations causing it to happen sometimes, and other conversations causing it to happen other times.

Let me know if you need any additional feedback on these issues.

Positive feedback:

The new zip file with the immensely reduced unzip time (fewer files) is much appreciated.
Spellcheck works for me, for en-US, although you might want to add a setting to the main menu if that's possible. It was slightly unintuitive to find how to enable it.

Thanks for the feedback, I'm limited in accessing a Windows 10 laptop, so it'll be hard to validate those bugs and fix them.
However, I've just pushed a new version of the beta that:

Should fix the snore toast icon (asar related)
Adds debugging on what's being called to toggle the window.

I'd ask if you can run your test again and then:

Open the 'Inspector Console' (console tab)
Count how many times does the following messages appear (or screenshot it censuring any personal information)

menuaction from main process togglewindow
toggle window!
The first indicates when the tray receives a click to toggle window, while the second is when the actual window 'toggle' happens.

wow, that should not be happening.

"Show YakYak icon in notifications" seems to actually still not be working. I just checked why. It seems to be fishing for<EMAIL_ADDRESS>when it should be fishing for<EMAIL_ADDRESS>
I still don't fully understand how asar works (the packaging methods we used to reduce number of files), but from what I understand the files are in the correct paths (inside the .asar file it has a metadata file saying that icons are placed outside of it)
I'll try and fix these issues.

To clarify, I took a look at the command line of the SnoreToast instance that YakYak launched. One of the commands that it passed was "-p<EMAIL_ADDRESS>That file does not exist on my file system, only<EMAIL_ADDRESS>does.
I don't know how asar works either, but what I imagine is that inside of your application, you're able to make a reference to<EMAIL_ADDRESS>but that since SnoreToast is a different program, it doesn't know what asar is, so it needs to be passed the path to the real file.

Speaking of icons, I just noticed that the new black and white tray icon looks incredibly janky.
Here are the icons at normal resolution, and then when I zoomed in on them. YakYak has a provided 16x16 icon, but Windows doesn't seem to be using that. It seems to be loading the 32x32 icon and then performing a terrible resize on it. It wasn't obviously ugly until I saw the black and white one.  This is not a new issue though, would you like me to re-file it as its own issue?

I just checked out the tray functionality in the current rolling release of the beta. Most of excessive click events and flashing window seem to be gone, but the tray toggle still fails at the same rate. A successful toggle now only produces one click event, and a failed toggle now only produces two click events.

I'm a new user who just installed Yakyak (first 1.5.9, then the latest 1.5.10 beta. I am on Windows 10).  With 1.5.9 I could not get any desktop notifications to work, not even taskbar blinking.  With 1.5.10 the taskbar entry will blink, but I still can't get any kind of popup notifications to work.  I have not changed any of the default settings except for the color scheme, it looks like notifications are enabled.  Any idea what's going on?

Thanks for the build!
The Windows build still uses a ZIP file extension, which most tools complain about now that it's a tar file. When this starts moving toward release, can the build tool name the file with a .tar extension?


styling series and legends

I am developing a web app designed for tablets and am wondering if there is any easy way to update the margins between series in the legend? They are quite hard to click/touch on smaller screens to toggle them on or off.

As the legend has option of multi select , can legend label can be of square rather than circle. As circle gives the feeling of radio button which is mostly used in selecting single item.


Problem closing popup

Clicking on the tray icon takes a while before the popup shows. Clicking on anything else during the delay causes the popup to stay open and can't be easily closed.

click on tray icon
click something else (e.g. empty area of taskbar)
wait until the popup shows
try closing it
give up, click on the tray icon, now wait until it pops up again after it is briefly hid before clicking on something else to finally close it

Would be nice if:

doing number 2 above doesn't break trigger for closing popup
clicking tray icon toggles the popup instead of just showing it (after confusingly hid it for a brief moment if it's already shown)

Version: 1.1.22
OS: Windows 8.1

I'm afraid the tray icon functionality is provided by a third-party package, and I don't have any control over its behaviour in cases like this.


Clean up test folder.

Move all tests that auto run into the ./test/test folder and call them from ./test/index.js

Redoing issue