Use Shields.io to generate Crate.io download badges

I noticed that you guys are using a badge with a design inspired by the Shields badges I created earlier this year to standardize and harmonize metadata badges.
I also noticed the badge's text baseline is incorrect, so is the padding:

Any chance I could help you fix that? Do you know we built a Shields service to automatically generate badges? Let me know if I can help.

Resolved!


Address Identical code on Code Climate by extracting to a new method

Address Identical code on Code Climate by extracting to a new method

Not planning to address the rubocop complaints above since this is just deduplication.
@miq-bot add_label refactoring
@roliveri Please review.

The return being moved into a method changes its semantics.  You would have to break early at the caller with something like return unless create_snapshot and make sure the method returns the right thing.

@Fryguy Updated based on your comments.  cc @roliveri Please review

Updated to return true / false

@roliveri Any other concerns?


Next API to dive into for list of elements

CQL queries
https://docs.google.com/spreadsheets/d/1CBVOJ6EPR0pFI14_Jx55P-J9Wzd0sGCu/edit#gid=12466420

No idea what this means.  Closing.


Improve CoolRunner-II optimization by using extract_counter pass

The current implementation tends to implement counters in a very inefficient way using a very large number of pterms. Using the extract_counter pass, it is possible to detect most common ways of describing a counter in HDL and map them to a manually-optimized implementation that uses significantly fewer resources (max 2 pterms per bit)

cc @azonenberg for the changes to extract_counter


Loops and iteration in JavaScript

Learn about loops and iteration in JavaScript and implement a sample programs based on your understanding

Invalid


Fixed canlender and contribute tabs not showing in mobile view.

Description
I added the missing calender and contribute tabs in menu in mobile view.
Fixes #192
Type of change

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

How Has This Been Tested?
I tested it by running it on my mobile.
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings
[x] New and existing unit tests pass locally with my changes

Thanks @nitesh815


Use a normal dash for the browser title

The emdash is hysterically long, which looks weird.
Before

After

How about an endash ;) –


docs-fr | concepts | cluster-administration section

/hold

/hold cancel
2 reviews done

/lgtm

/approve


What are container components in React

Proposed title of article
What are container components in React
Introduction paragraph (2-3 paragraphs):
As time goes on, while making use of React, one would need to think of how we make data interact with different types of components in a React application.
"Container components", gotten from Dan Abramov's ideology of a React app pattern, are components whose sole responsibility or functionality is to fetch data. Fetching data doesn't compulsorily mean obtaining data from an API. Fetching of data could also include the logic of a particular component.
Once the logic or data fetching in the container component is done, it renders its corresponding component. This corresponding component, most of the time holds the user interface or layout of such container components.
Key takeaways:
In this article, the reader(s) will have an understanding of how a container component functions, then we'd look at a simple example of a container component by building a search container component
References:

Presentational and Container Components

@Caleb335 sounds like a good topic @ - approved.
One important note: please be sure to put your article through a thorough grammar/readability editing review prior to submitting for final approval. This will help increase the likelihood of your article getting published and you receiving a payout :)

Thank you, Hector!
I'd make sure to do all that you've said.

merged


Windows Key/MOD4/SUPER key does not launch pies

When creating a keybinding within gnome-pie using the Windows key, it simply doesn't work.
For example, to launch the 'Applications' pie I tried binding 'windows-key+A', but that does nothing. When I run gnome-pie from a terminal, pressing that key combination has no effect whatsoever - it doesn't even generate an error.
Oddly, 'windows-key+right-click' works perfectly.
Oh, and when I set the 'WIN+A' binding in the gnome-pie settings, it records it as ''Mod4+Super+A'; not sure how relevant that is..

That should actually work in the current version. If not, please re-open!

Necro post, but topical;
Couldn't we use the super key by itself? For people coming from mate-menu or brisk-menu, it would be more familiar than using a keybind which might already be bound to something for their compositor or some other application.


Migrate to null-safety

+1

https://github.com/ofload/native_updater/pull/20 for null safety.

@milhomem Please mark this issue as closed.


JSON assertion error

I'm using json.cpp in code moving config parameters received via BLE into structure variable. Tonight I updated cpp_utils, espidf and toolchain. After compiling and loading code, nvs parameters were messed up. My routine for updating parameters (have changed in weeks) is now failing on what seems like very simple code...

logs correct data as expected
ESP_LOGI(TAG, "transformJSON SET_NETWORK 1 %d, %s",obj.getString("hubIP").length(), obj.getString("hubIP").c_str());
when uncommented, I get the error list below
//config::network.hubIP = obj.getString("hubIP");
when uncommented, code is executed and then fails after the next log. this continues with each object
//config::network.hubIP = "xx.xx.xx.x";
ESP_LOGI(TAG, "transformJSON SET_NETWORK 2");
config::network.hubPwd = obj.getString("hubPwd");

CONSOLE ERROR WHEN SETTING STRUCT VAR TO JSON OBJECT.
I (49073) transformJSON: transformJSON SET_NETWORK 1 10, xx.xx.xx.x
assertion "heap != NULL && "free() target pointer is outside heap areas"" failed: file "/home/rick/esp/esp-idf/components/heap/./heap_caps.c", line 261, function: heap_caps_free
abort() was called at PC 0x400df34b on core 0
0x400df34b: __assert_func at /Users/ivan/e/newlib_xtensa-2.2.0-bin/newlib_xtensa-2.2.0/xtensa-esp32-elf/newlib/libc/stdlib/../../../.././newlib/libc/stdlib/assert.c:63 (discriminator 8)

Backtrace: 0x40090f44:0x3ffe7730 0x4009111b:0x3ffe7750 0x400df34b:0x3ffe7770 0x400829e3:0x3ffe77a0 0x40082dd9:0x3ffe77c0 0x4000bec7:0x3ffe77e0 0x400f3d95:0x3ffe7800 0x400da22a:0x3ffe7820 0x400d6d65:0x3ffe7f30 0x400d6f37:0x3ffe7fe0 0x400dd66d:0x3ffe8020 0x400dd76b:0x3ffe80e0 0x400d693f:0x3ffe8120 0x400d465c:0x3ffe8140 0x4015ffca:0x3ffe8160
0x40090f44: invoke_abort at /home/rick/esp/esp-idf/components/esp32/./panic.c:648

0x4009111b: abort at /home/rick/esp/esp-idf/components/esp32/./panic.c:648

0x400df34b: __assert_func at /Users/ivan/e/newlib_xtensa-2.2.0-bin/newlib_xtensa-2.2.0/xtensa-esp32-elf/newlib/libc/stdlib/../../../.././newlib/libc/stdlib/assert.c:63 (discriminator 8)

0x400829e3: heap_caps_free at /home/rick/esp/esp-idf/components/heap/./heap_caps.c:123

0x40082dd9: _free_r at /home/rick/esp/esp-idf/components/newlib/./syscalls.c:42

0x400f3d95: operator delete(void*) at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/del_op.cc:46

0x400da22a: __gnu_cxx::new_allocator<char>::deallocate(char*, unsigned int) at /home/rick/eclipse-test/OldOrb/main/./transformJSON.cpp:382
 (inlined by) std::allocator_traits<std::allocator<char> >::deallocate(std::allocator<char>&, char*, unsigned int) at /home/rick/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/alloc_traits.h:386
 (inlined by) std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_destroy(unsigned int) at /home/rick/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/basic_string.h:185
 (inlined by) std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose() at /home/rick/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/basic_string.h:180
 (inlined by) std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() at /home/rick/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/basic_string.h:544
 (inlined by) transformJSON::setSettings(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at /home/rick/eclipse-test/OldOrb/main/./transformJSON.cpp:196

Can you show me the source statements at the failing line which appears to be "transformJSON.cpp" line 196?  Make sure that you identify which source line is which.  Ideally attach the whole source file that is failing indicating the error for that exact source file.

Here is a portion of the file - its a fairly long file but repetitive. case SET_NETWORK: is the portion of the code I'm trying to troubleshoot but the issue seems consistent  in similar portions of the code. As you can see,  I've commented out the lines where I am using obj.getString(""); When I do this, code doesn't fail. When I uncomment any of these lines, I get the failure. Below the code is the failure log I'm getting whenever I uncommented 'setup.network.webPwd = obj.getString("webPwd");'
// Update configuration settings with payload received from network
bool transformJSON::setSettings(int topic_code, const std::string& payload) {
ESP_LOGI(TAG, "transformJSON::setSettings: %d, %s",topic_code, payload.c_str());
JSON json;
JsonObject obj = json.createObject();
obj = json.parseObject(std::string(payload));
if(!obj.isValid()) {
json.deleteObject(obj);
return false; }
std::string str;
bool x;
switch(topic_code) {
case SET_DEVICE:
	setup.device.id = obj.getString("id");
	setup.device.name = obj.getString("name");
	setup.device.pwd = obj.getString("pwd");
	setup.device.network = obj.getBoolean("network");
	setup.device.hubMonitor = obj.getBoolean("hubMonitor");
	setup.device.webMonitor = obj.getBoolean("webMonitor");
	setup.device.hubUpdate = obj.getBoolean("hubUpdate");
	setup.device.webUpdate = obj.getBoolean("webUpdate");
	setup.device.timeLogger = obj.getBoolean("timeLogger");
	setup.device.activeLogger = obj.getBoolean("activeLogger");
	break;

case SET_NETWORK:
	ESP_LOGI(TAG, "transformJSON::setSettings: %d", heap_caps_check_integrity_all(true));
	//setup.network.hubIP = obj.getString("hubIP");
	ESP_LOGI(TAG, "transformJSON::setSettings 1");
	//setup.network.hubPwd = obj.getString("hubPwd");
	ESP_LOGI(TAG, "transformJSON::setSettings 2");
	setup.network.hubPort = obj.getInt("hubPort");
	ESP_LOGI(TAG, "transformJSON::setSettings 3");
	//setup.network.webIP = obj.getString("webIP");
	ESP_LOGI(TAG, "transformJSON::setSettings 4");
	//setup.network.webPwd = obj.getString("webPwd");
	ESP_LOGI(TAG, "transformJSON::setSettings 5");
	setup.network.webPort = obj.getInt("webPort");
	ESP_LOGI(TAG, "transformJSON::setSettings 6");
	for(size_t i=0; i<NUM_WAP; i++) {
    	if(i < obj.getArray("wifi").size()) {
    		setup.network.wifi[i].ssid = obj.getArray("wifi").getObject(i).getString("ssid");
    		setup.network.wifi[i].pwd = obj.getArray("wifi").getObject(i).getString("pwd");
    	}
    }
    break;

CONSOLE OUTPUT
I (51091) transformJSON: transformJSON::setSettings: 22, {"hubIP":"fgggg","hubPort":3011,"hubPwd":"hggg","webIP":"","webPort":1883,"wifi":[]}
I (51104) transformJSON: transformJSON::setSettings: 1
I (51108) transformJSON: transformJSON::setSettings 1
I (51113) transformJSON: transformJSON::setSettings 2
I (51118) transformJSON: transformJSON::setSettings 3
I (51123) transformJSON: transformJSON::setSettings 4
Guru Meditation Error: Core  1 panic'ed (LoadProhibited)
. Exception was unhandled.
Core 1 register dump:
PC      : 0x401612ac  PS      : 0x00060930  A0      : 0x800da2ed  A1      : 0x3fff18b0
0x401612ac: JsonObject::getString(std::__cxx11::basic_string<char, std::char_traits, std::allocator >) at /home/rick/eclipse-test/OldOrb/components/cpp_utils/./JSON.cpp:287
A2      : 0x3fff1d48  A3      : 0x3fff1ec8  A4      : 0x3fff1d30  A5      : 0x00000000
A6      : 0x00000001  A7      : 0x00000005  A8      : 0x801612ac  A9      : 0x3fff1890
A10     : 0x00000000  A11     : 0x3fff1d38  A12     : 0x00000006  A13     : 0x3fff1d3e
A14     : 0x00006477  A15     : 0x00000000  SAR     : 0x00000004  EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000010  LBEG    : 0x4000c2e0  LEND    : 0x4000c2f6  LCOUNT  : 0xffffffff
Backtrace: 0x401612ac:0x3fff18b0 0x400da2ea:0x3fff18d0 0x400d6db9:0x3fff1f40 0x400d6f8b:0x3fff1ff0 0x400dd561:0x3fff2030 0x400dd65f:0x3fff20f0 0x400d6993:0x3fff2130 0x400d46c8:0x3fff2150 0x4015fed2:0x3fff2170
0x401612ac: JsonObject::getString(std::__cxx11::basic_string<char, std::char_traits, std::allocator >) at /home/rick/eclipse-test/OldOrb/components/cpp_utils/./JSON.cpp:287
0x400da2ea: transformJSON::setSettings(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) at /home/rick/eclipse-test/OldOrb/main/./transformJSON.cpp:392
0x400d6db9: manageTopic(int, int, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) at /home/rick/eclipse-test/OldOrb/main/./CommService.cpp:204
0x400d6f8b: commService::receivedBle(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) at /home/rick/eclipse-test/OldOrb/main/./CommService.cpp:109
0x400dd561: bleReceive(std::__cxx11::basic_string<char, std::char_traits, std::allocator >) at /home/rick/eclipse-test/OldOrb/main/./bleService.cpp:209 (discriminator 1)
0x400dd65f: bleService::processRequest() at /home/rick/eclipse-test/OldOrb/main/./bleService.cpp:86
0x400d6993: commService::bleProcessRequest() at /home/rick/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/ext/new_allocator.h:110
0x400d46c8: Task_comm_monitor::run(void*) at /home/rick/eclipse-test/OldOrb/main/./main.cpp:124
0x4015fed2: Task::runTask(void*) at /home/rick/eclipse-test/OldOrb/components/cpp_utils/./Task.cpp:110

fyi - I opened an issue on the esp32 forum and am basically having the same conversation with Angus

I examined the code for the JSON method getString() and found that it would create a null reference exception if the member we were trying to get was not present.
For example, for the JSON:
{
   "a": "aValue";
}

From the above,
myObj.getString("a");

would work but
myObj.getString("b");

would result in a null pointer reference exception.
I have placed a guard on it now so that it returns an empty string on an attempt to get a field that doesn't exist.  I'm not sure I like that semantic and want to gauge whether we should throw an exception instead?
We also have the method hasItem() which could be called before accessing a member to determine if the member exists ... for example:
if (myObj.hasItem("b")) {
   myB = myObj.getString("b");
}

I'm not saying that is your problem but it would do no harm to test this out.  Consider running the "toString()" method on the JSON object to validate that the items you expect to be in the JSON object are in fact present.

put in checks as suggested. code runs until setting the struct variable to obj.getString then fails...
CODE:
case SET_NETWORK:
ESP_LOGI(TAG, "getFreeHeapSize %d", System::getFreeHeapSize());
ESP_LOGI(TAG, "SET_NETWORK %d", heap_caps_check_integrity_all(true));
ESP_LOGI(TAG, "SET_NETWORK hubIP - %s", obj.getString("hubIP").c_str());
ESP_LOGI(TAG, "SET_NETWORK asItem - %d", obj.hasItem("hubIP"));
ESP_LOGI(TAG, "SET_NETWORK toString - %s", obj.toString().c_str());
str = obj.getString("hubIP");
setup.network.hubIP = "this is a test IP";
ESP_LOGI(TAG, "transformJSON::setSettings 0");
setup.network.hubIP = obj.getString("hubIP");
CONSOLE OUTPUT:
I (44088) transformJSON: getFreeHeapSize 51116
I (40116) transformJSON: SET_NETWORK 1
I (40118) transformJSON: SET_NETWORK hubIP - ffggg
I (40123) transformJSON: SET_NETWORK asItem - 1
I (40127) transformJSON: SET_NETWORK toString - {
"hubIP":	"ffggg",
"hubPort":	3011,
"hubPwd":	"hh",
"webIP":	"",
"webPort":	1883,
"wifi":	[]
}
I (40141) transformJSON: transformJSON::setSettings 0
assertion "heap != NULL && "free() target pointer is outside heap areas"" failed: file "/home/rick/esp/esp-idf/components/heap/./heap_caps.c", line 261, function: heap_caps_free

The heap management of the ESP32 has some excellent debugging built into it.  Unfortunately it requires preparation of the application as well as injection of test points into your code.  This can be found here:
http://esp-idf.readthedocs.io/en/latest/api-reference/system/heap_debug.html
If it were me, an initial test I would run would be to hard code a string at the start of the function that contains an example of the JSON you are passing in.  That way we would have eliminated the notion that (perhaps) the data being passed in is being "changed" underneath the JSON processing.

Couple of observations. I had my setup structure defined in another cpp (stores.cpp) and declared extern in TransformJSON.cpp - this was the situation when getting the crash. I defined a new structure variable in transformJSON.cpp and did not get the failure.
I am loading the setup struct from nvs, checking for saved version number and variable length. Both of these checks were saying I was retrieving valid nvs data, however all of the struct's string variables were being set to arrays of '\0' (str length = length of originally saved data) in the nvs read although str.length() was returning >0.
I changed the settings version # so that my nvs read routine would not load from nvs, and everything works again.
Tried to mimic this by setting my struct str = "\x00\x00\x00"; then setting it to the json objString where the failure was occurring but that did not cause any failure.
I'm guessing this doesn't have anything to do with json and the heap corruption is initiated when I load struct from nvs.

Howdy sir.  I'm afraid you lost me in the weeds of your own application.  However that is ok ... and when I'm describing my own code I too go deep and get excited.  Is the summation of the story that you have now found the problem and the issue is closed?  If not, let me know and we'll circle back ... but I think you are saying that for reasons beknownst to your own app, you might have been passing in "odd" data into the JSON processor?

Sorry for the 'weeds'. In summary, flashing new code to the chip seems to corrupt parameters saved to nvs. Somehow, setting one of these corrupted variables equal to the json obj.toString() variable causes a heap issue. I will set up a generic scenario outside of my code and if the same pattern repeats, I will let you know. Let's leave it open for a couple of days until I have time to set that up.

Neil,
I attempted to re-create this without luck. The issue has something to do with corrupting nvs data when uploading a new program. I tried to write a simple program to re-create but can't re-create the nvs corruption. If I see it again and can capture the issue on a repeatable basis, I will re-open the issue.


Organization Hierarchy is not Displayed Properly In IS Console

Describe the issue:
When you switch into a child organization with a level depth of 2 or more, the organization hierarchy navigation bar displayed at the top of IS Console, is incomplete as it only shows the first two levels of the organization hierarchy (Root organization and level one parent organization).
https://github.com/user-attachments/assets/a92e801e-6281-460c-b739-56486a8f4acb
How to reproduce:

Log into IS Conosle with super tenant admin credentials.
Create an oragnization.
Switch into the organization created at step 2.
Create a child organization in the currently switched organization.
Switch into the organization created at step 4.
Now observe the organization hierarchy navigation bar at the top of the IS Console.

Expected behavior:
Complete organization hierarchy should be displayed at the top of IS Console.
Environment information:

Product Version: IS 7.0.1 SNAPSHOT
OS: macos
Database: default
Userstore: default

Dropdown is properly displayed on reloading the page after navigating to a suborg in a deeper level, hence the issue should be due to a missing state update when switching between organizations.

Fixed with https://github.com/wso2/identity-apps/pull/6686


New UI Design Contribution

Make sure you have read our contributing guidelines before submitting this issue.
Omah - Real Estate Website Design
Your UI design project name. Must be short.
https://www.figma.com/community/file/1213834016475813705
Your UI design URL to the Figma community.
https://www.figma.com/@dzakiimuzh
The URL of your Figma profile. For example, https://figma.com/@mhd

Hi, @dzakiimuzh, thank you for your contribution! I will add the design to the collection.


documentation for using using existing virtualenv?

I create my virtualenvs manually and use explicit paths in my projects rather than alter PATH.  I have an intense dislike of tools that require an altered environment or otherwise encourage cargo cult behaviour, so I have avoided activate, virtualenvwrapper and such things.
Initially I was turned off by pipenv's apparent insistence of creating virtualenvs for me and the complete inscrutability of how it does so.  The documentation seems to suggest that my only other option was a .venv in my project directory, which I also do not want.
I just now discovered via browsing the issues that pipenv will apparently honour VIRTUAL_ENV.  As far as I can tell, this variable is only used by other tools to detect an "activated" virtual env.  But virtualenvs don't need to be "activated" to be used; e.g. python, pip, and other tools work just fine by invoking their full path.  I had expected pipenv to behave similarly if installed into the virtualenv.
However, running with VIRTUAL_ENV produces (inconsistently) an annoying "courtesy notice", and this (and the function name warn_in_virtualenv) leads me to suspect that the scenario is somehow degenerate.
So, what's the story?  Is this feature supported and should it be documented?  What is the approprate procedure for managing my dependencies in an existing virtualenv?
If it is intended that pipenv be the recommended tool for managing project dependencies (which is why I am here) then I imagine it appropriate to be far more explicit about how it does things rather than performing magic on the user's behalf.  I also imagine it appropriate for distinct functionality to be less coupled, e.g. lockfile management from virtualenv creation.  Considering the lauded zen, one might suspect that python packaging is losing its buddha-nature.

there's little action for us to take here – it seems like you have a good understanding of how the tool works.

@kennethreitz what, that it is to remain an undocumented feature, with the implication that official python tools are moving towards becoming magical and "opinionated" rather than explicit and thoughtfully engineered?

Part of what drew me to python is the "everything is public" mentality. I support adding documentation about how pipenv manages virtual environments and how we can use pipenv with an existing virtual environment.

@brianweber13 Contributions are welcomed :) As mentioned above, the usage is already described quite clearly. I invite you to help write them into the documentation.
@avdd Thank you for your kind words. Please leave.

@uranusjr Thank you for illustrating my point

@techalchemy what is the problem here?

To repeat: do not use pipenv.  It's clearly being mismanaged.  And part of that mismanagement is the active censorship and rejection of criticism.

I’m going to just block you now.

But why?

Don’t use pipenv, it does not seem be a tool for you.

I have no problem deleting unproductive negative comments. Pipenv is not obligated to endure abuse or leave it up publicly for others to consume, please find another venue to post if you want to do that. This is an issue tracker for tracking issues.

For the record also: endlessly repeatig ‘don’t use pipenv’ is not criticism, it’s merely antagonistic and childish.


feat: Allow excluding files from UI5 Linter checks

This change introduces an --ignore-pattern CLI option as well as introduces ui5 linter configuration file.
The configuration file is ui5lint.config.(js|mjs|cjs) and currently supports only ignores property
JIRA: CPOUI5FOUNDATION-782

Also LGTM, but I think we should add a short "Configuration" section to the README, so that users know what can be configured and how.

Rebased onto main to resolve conflicts


Add support for special functions

https://github.com/sass/libsass/blob/master/docs/api-function.md#special-signatures

Implemented and released as version 5.3.0


New add_dynamic_image rewriter for JavaScript-loaded images.

Searches image tags for various data-* attributes and sets src attribute appropriately. Falls back to searching noscript for img tags.
Includes unit tests.

Some web sites use JavaScript to load images only when the image is in the viewport (e.g. when scrolling down the page, images load as that part of the page becomes visible), other sites will load images based on the visitor's screen size (e.g. mobile loads a smaller image than desktop). Scraping sites like this means entries can have no images in them. This rewriter attempts to find the highest quality image and include it.
The candidateAttrs values will need to be updated as new sites are reported, etc.
I've been using this code successfully for over a week on an assortment of sites.

Do you have any examples of websites/feeds that I could use to test?

Sure...

feed_url
scraper_rules

https://people.com/feed/
#article-body,.article-single__content

https://www.macworld.com/index.rss
#drr-container,.product-hub-articleBody,.slickItems

https://www.popsci.com/rss.xml
.field-sir-trevor-body

MacWorld only applies for slideshows (that's the .slickItems selector, which I don't think there are any in their feed right now).
Popular Science does include images but at the lowest resolution (so this rewriter provides a higher quality one).
People.com is actually the best example. It's hosted with WordPress VIP and I know a few sites there that really mess with images. Specifically, they use a ton of various data- attributes inside a div tag then swap it out after the DOM is loaded.
Note: Social media (Instagram, Twitter, etc.) embeds are not processed here, so those images still won't show.


Thesis/auto blockchaintest

Winery Ethereum Test to integrate the Ethereum Parts to the Testpipeline

[x] Ensure that you followed http://eclipse.github.io/winery/dev/ToolChain#github---prepare-pull-request. Especially, we require a single commit
[x] Ensure that the commit message is a good commit message
[x] Ensure to use auto format in all files
[x] Ensure that you appear in NOTICE at Copyright Holders
[x] Tests created for changes
[x] Documentation updated (if needed)
[x] Screenshots added (for UI changes)

Can one of the admins verify this patch?

Merged by #414


Co authored badge

The coauthored badge can be earned not only in GitHub Desktop, you can also use the CLI to achieve it.

❤

See my profile hear!


Document searched words locally

This is a very cool and useful tool!!
I have been using this tool for a while, and from time to time, I wish there is a mechanism that can automatically detect a newly-searched word and append it to a local text file. Such that, we would have a personalized glossary book after a period of time (which I believe it would be a great feature to help users learning new words).
I am wondering if this feature is already in future development plan of the translate-shell? Or is it possible to implement? If this feature is feasible, I would like to contribute :).

Glossary would be a nice thing to have.
Appending words to a local text file can be trivially implemented. But is there anything else you would like to achieve with trans, like showing a warning while looking up a previously searched word or quizzing the user about a random word? Or just having an incremental text file is sufficient?

Hi, :)
Showing a warning is a nice idea. To build on top of that, can we count the number of times of each searched words, and then sort all words based on search frequency?

I would like the word plus its definition saved to a file, then I can trivially make flashcards out of that. I don't think trans itself should be a flashcard app.

Upvoting this enhancement, also for the purpose of making flashcards.

A trivial way to save to a text file:
(I put it in my ~/.bash_profile, one may also put in ~/.bashrc)
function tran() {
    vocab_path='/absolute/path/to/your/file'
    echo "================================" >> $vocab_path
    # :zh = translate to Chinese; sed removes special characters
    trans :zh $1 | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g" | tee -a $vocab_path
    echo -e "\n" >> $vocab_path
}

Then you can just call $ tran new-word to see the translation and also saves to a file.


Incorrect window align

After reload windows aligning incorrectly

Monterey, Intel

Could you post your  err.log and yabairc?

Could you post your err.log and yabairc?

SIP enabled.

Could you post your err.log and yabairc?
'window_opacity_duration' cannot be changed on macOS Catalina/Big Sur/Monterey because of an Apple bug in the WindowServer

Found it

Removed window_opacity_duration, don't have any errors but problem still here

Removed window_opacity_duration, don't have any errors but problem still here

Is only a specific app doing this, or are all apps acting like this?

Is only a specific app doing this, or are all apps acting like this?

Some of them, not specific. It's can be xcode, brave-browser, telegram
But, I think it's always the left-most window

And another moment. After I fixing window position by mouse, it's sets everything correctly

And another moment.

And another moment. After I fixing window position by mouse, it's sets everything correctly

Try turning
yabai -m config mouse_follows_focus off and yabai -m config focus_follows_mouse off
See if that does anything.

no, nothing changed

And another moment. After I fixing window position by mouse, it's sets everything correctly

Try turning
yabai -m config mouse_follows_focus off and yabai -m config focus_follows_mouse off
See if that does anything.

no, nothing changed

Could you try changing
yabai -m config window_placement             second_child to yabai -m config window_placement             first_child

And another moment. After I fixing window position by mouse, it's sets everything correctly

Try turning
yabai -m config mouse_follows_focus off and yabai -m config focus_follows_mouse off
See if that does anything.

no, nothing changed

Could you try changing yabai -m config window_placement second_child to yabai -m config window_placement first_child

nope, didn't help

This is an issue related to some caching mechanism I am experimenting with on the master branch: https://github.com/koekeishiya/yabai/commit/c20adae78d721f65db6cb3b6c9dc55310f9c1633
Use the released v4.0.2 instead.

This is an issue related to some caching mechanism I am experimenting with on the master branch: c20adae
Use the released v4.0.2 instead if this bothers you.

Thanks! I'll try

reverted in commit https://github.com/koekeishiya/yabai/commit/a64df0c8978c2ee27f4a9fdfbba13ea3bc6ead19


Make cc_grpc_library compatible with native proto_library and cc_proto_library rules

This PR basically cleanups cc_proto_library rule and fixes a bunch of old issues:

https://github.com/grpc/grpc/issues/18864 - well_known_protos not passed as dependencies of _[target]_grpc_only;
https://github.com/grpc/grpc/issues/12381 - bazel macro 'cc_grpc_library' does not document all its arguments;
https://github.com/grpc/grpc/issues/14145 - Bazel: cc_grpc_library can't depend on a cc_proto_library;
https://github.com/grpc/grpc/issues/9873  - Provide a cc_grpc_library() Skylark extension (potentialy, as clarification is needed in the issue).

This change is also is needed to comply with bazel best practices (each proto file is first processed by proto_library: https://docs.bazel.build/versions/master/be/protocol-buffer.html#proto_library) and generally bring cc_grcp_library rule up to date with latest Bazel changes (the rule hasn't gotten much updates since 2016).
This change is also a perquisite for https://github.com/googleapis/gapic-generator-cpp/pull/45
Detailed description
Bazel has native cc_proto_library rule, but it does not have cc_grpc_library. this rule (cc_grpc_library) in this repo seems like the best candidate to be "that" rule.
This change makes possible using cc_grpc_library to generate only grpc library, and consume protobuf portion as dependencies. The typical BUILD.bazel file configuration now should look like the following:
proto_library(
   name = "my_proto",
   srcs = ["my.proto"],
 )

cc_proto_library(
   name = "my_cc_proto",
   deps = [":my_proto"]
)

cc_grpc_library(
    name = "my_cc_grpc",
    srcs = [":my_proto"],
    deps = [":my_cc_proto"]
)

This allows to decouple all thre phases:

proto descriptors generation (proto_library);
protobuf messages library creation (cc_proto_library);
grpc library creation (cc_grpc_library).

Notice how cc_grpc_library depends on proto_library (as src) and on cc_proto_library (as deps).
In contrast, the previous version (before this PR) of cc_proto_library was encapsulating all of the 3 phases inside single cc_proto_library and also was doing it manually (without relying on the native cc_proto_library).
The cc_proto_library is kept backward-compatible with the old version. Note, I'm happy to modify it in a backward-incompatible way (the implementation will be cleaner, but may break existing users of the rule).

Thank you for your pull request. Before we can look at your contribution, we need to ensure all contributors are covered by a Contributor License Agreement.
After the following items are addressed, please respond with a new comment here, and the automated system will re-verify.

User @vam-google isn't covered by a CLA. They will need to complete the form at https://identity.linuxfoundation.org/projects/cncf

Regards,
CLA GitHub bot

@gnossen PTAL (you did similar thing for py_proto_library rule recently, so this PR should look familiar)

@michaelbausor @software-dov FYI

I signed it

Doesn't seem to be building on our CI at the moment however...
https://source.cloud.google.com/results/invocations/c7ef62d0-10e5-4fd5-81e0-d2a17332aed4/targets/%2F%2Ftest%2Fcore%2Fchannel:channel_trace_test@poller%3Depoll1/log

@nicolasnoble Yeah =( looking into that

I'm happy with the current status of the PR, given it passes the required tests - reds are unrelated issues. @gnossen: feel free to merge whenever you want.

@vam-google Thank you again for the contribution!

Thanks for opening the way to clean up a lot of mess with custom cc_proto_library rules.


Koa-Router: request 'on' is not a function

I am using koa-router for my api routes and I can't get the Webhook.process to work. It says that 'response.on' is not a function. What do I need to do to get this to work?
Register webhook:
    const handleWebhookRequest = async (topic, shop, body) => {
        console.log(this + '.hWhR() topic: ' + topic);
        console.log(this + '.hWhR() shop: ' + shop);
        console.log(this + '.hWhR() body: ' + body);
        appUninstall(shop);
    }

    const resp = await Shopify.Webhooks.Registry.register({
        path: '/api/admin/webhooks/app-uninstalled',
        topic: 'APP_UNINSTALLED',
        accessToken: token,
        shop: shop,
        webhookHandler: handleWebhookRequest
    });
    console.log('resp:');
    console.dir(resp);

Api router callback:
const Router = require('koa-router');
const koaBody = require('koa-body');

const router = new Router({ prefix: routePrefix });

router.post('/app-uninstalled', koaBody(), async (ctx, next) => {
    try {
        await Shopify.Webhooks.Registry.process(ctx.request, ctx.response);
    } catch (error) {
        console.log(error);
    }
});

Hey @Vitzkrieg, the process method uses the http objects from Node, and in Koa, you can get those by accessing ctx.req and ctx.res rather than ctx.request.
Also, for webhook processing, you shouldn't use a body parser - process will take care of that for you.
I'm closing this issue since it isn't a bug with the library, but I hope this helps!


[7.x] Fix indention for Blade component inline

This pull request will adjust the indention for Blade inline component.
Before

After

Benefits of this make it easier to read and replace code.

This was reverted. Doesn't work on PHP 7.2.


Add examples for node cordon and node drain

Is it possible to perform node operations like add labels, drain, cordon, etc. I'm not seeing it in the Api documentation at all.

Add label:
let nodes: Api<Node> = Api::all(client);
nodes
    .patch(
        "name",
        &PatchParams::default(),
        &Patch::Merge(serde_json::json!({ "metadata": { "labels": { "app": "example" } } })),
    )
    .await?;

Cordon should be:
let nodes: Api<Node> = Api::all(client);
nodes
    .patch(
        "name",
        &PatchParams::default(),
        &Patch::Merge(serde_json::json!({ "spec": { "unschedulable": true } })),
    )
    .await?;

Drain should be cordon + evicting all pods in it.
You can use kubectl with --v=9 to find the API requests.
We can probably add convenience methods like in https://github.com/kube-rs/kube-rs/pull/635/files for cordon/uncordon.

Yeah, even in client-go operations like drain and cordon are not among its core verbs. These "operations" are just kubectl helpers: cordon.go + drain.go
I'm ok with having drain + cordon as utility helpers or examples (as a start). We support the eviction subresource (Api::evict) necessary for this. If you would like to try writing a drainer example or a utility fn for Drain then that would be welcome.

#762 now adds Api<Node>::cordon and Api<Node>::uncordon thanks to @ChinYing-Li :tada:
The only thing left here is an example for Api<Node>::drain. As it stands currently herein, this is non-trivial to unit-test / integration test an Api<Node>::drain fn since it probably requires a real node, with real pods, to be created and drained. I think it's OK for this to be done in an example for now. But am open to suggestions. kubectl does have some fairly verbose tests for drain - no idea how fast or sensible these are yet.


R2: Fixing up redirects

To keep some previous links working, redirects have been added for the S3 and Runtime API references

@KianNH - good catch, but I had already broken out the specific links (its also nice that if we rename or change the path of docs under s3-api we'll be able to see it more obviously)

Hi @codymgriffin - fair enough, that makes sense.
I posted this on the Discord but I'll post it here too for visibility:
/r2/runtime-apis /r2/data-access/workers-api/workers-api-reference/ 301 appears to be missing the trailing slash from the source path. Google has /r2/runtime-apis/ and that's what Pages would have generated.
➜  ~ curl https://production.cloudflare-docs-github.pages.dev/r2/runtime-apis -sSI | rg 'HTTP/'
HTTP/2 301
➜  ~ curl https://production.cloudflare-docs-github.pages.dev/r2/runtime-apis/ -sSI | rg 'HTTP/'
HTTP/2 404

https://developers.cloudflare.com/r2/runtime-apis and https://developers.cloudflare.com/r2/runtime-apis/ both seem to still return a 404 oddly enough, would have expected runtime-apis to work but it'll be runtime-apis/ that needs to work anyhow.


shell: telnet: Don't close the connection on ENOBUFS error

If there's not enough networking buffers at certain moment, they might become available later. So instead of closing connection (and failing assertation) sleep and retry. This avoid the following assertion failure when there's much of data to send:
net_pkt: Data buffer (1500) allocation failed.
net_tcp: conn: 0x20076024 packet allocation failed, len=1460
shell_telnet: Failed to send -105, shutting down
ASSERTION FAIL [err == 0] @ WEST_TOPDIR/zephyr/subsys/shell/shell_ops.c:416
os: r0/a1:  0x00000004  r1/a2:  0x000001a0  r2/a3:  0x00000004
os: r3/a4:  0x20044380 r12/ip:  0x00001958 r14/lr:  0x080c9027
os:  xpsr:  0x41000000
os: Faulting instruction address (r15/pc): 0x0811ed26
os: >>> ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0
os: Current thread: 0x20045100 (shell_telnet)
os: Halting system

This is related to  PR https://github.com/zephyrproject-rtos/zephyr/pull/66287 which implemented not closing the connection if write fails due to EAGAIN.

@rlubos and @jukkar : could you also take a look as you've been reviewing https://github.com/zephyrproject-rtos/zephyr/pull/66287 as well?
I'm bit unsure is it ok as a principle to handle the buffer allocation problem this way as the root cause of the assertion failure this is addressing is running out of net buffers, but in our case this seems to solve the issue, nicely logging the buffer allocation error as well over the telnet if the shell logging is enabled. As the shell is often used as a debug/development tool, crashing due to the shell not being able to send data is bit inconvenient when assertions are enabled.

if I understand correctly it would hit as well if the peer simply closes the connection.

Also at that point, probably the tmp_cnt is uninitialized and then have some garbage value and we use that in the function.

However that assert at the shell level seems concerning to me, if I understand correctly it would hit as well if the peer simply closes the connection.

You're right @rlubos ! Simply doing echo x | telnet <IP_ADDRESS>
... causes the assertion failure due to ENOTCONN error:
[00:05:40.271,000] <err> shell_telnet: Failed to send -128, shutting down
ASSERTION FAIL [err == 0] @ WEST_TOPDIR/zephyr/subsys/shell/shell_ops.c:416
[00:05:40.271,000] <err> os: r0/a1:  0x00000004  r1/a2:  0x000001a0  r2/a3:  0x00000002
[00:05:40.271,000] <err> os: r3/a4:  0x20044380 r12/ip:  0x0000312f r14/lr:  0x080c9033
[00:05:40.271,000] <err> os:  xpsr:  0x41000000
[00:05:40.271,000] <err> os: Faulting instruction address (r15/pc): 0x0811ee56
[00:05:40.271,000] <err> os: >>> ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0
[00:05:40.271,000] <err> os: Current thread: 0x20045100 (shell_telnet)
[00:05:40.272,000] <err> os: Halting system

I'm also seeing another failure sometimes before the above happens:
[00:00:31.370,000] <err> shell_telnet: Failed to send -128, shutting down
ASSERTION FAIL [context] @ WEST_TOPDIR/zephyr/subsys/net/ip/net_context.c:387

[00:00:31.370,000] <err> os: r0/a1:  0x00000004  r1/a2:  0x00000183  r2/a3:  0x00000003
[00:00:31.370,000] <err> os: r3/a4:  0x20044380 r12/ip:  0x00007a8a r14/lr:  0x080d13a1
[00:00:31.370,000] <err> os:  xpsr:  0x41000000
[00:00:31.370,000] <err> os: Faulting instruction address (r15/pc): 0x0811ee56
[00:00:31.370,000] <err> os: >>> ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0
[00:00:31.370,000] <err> os: Current thread: 0x20045100 (shell_telnet)
[00:00:31.395,000] <err> os: Halting system

... but I'm using Zephyr 3.4.0 here and there's lots changes since that in net_context.c so that might not be relevant anymore. Retesting with 3.5.0 requires a bit of work for me.

I am not seeing errors with latest upstream. Tried with this
west build -p -b qemu_x86 samples/net/telnet/ -d ../build/telnet \
    -t run -- -DOVERLAY_CONFIG=../sockets/echo_server/overlay-e1000.conf -DCONFIG_ASSERT=y

and with this command echo x | telnet <IP_ADDRESS>

But with native_sim there is an crash
west build -p -b native_sim samples/net/telnet/ -d ../build/telnet \
  -t run -- -DCONFIG_ASSERT=y -DCONFIG_NATIVE_UART_0_ON_STDINOUT=y \
  -DCONFIG_LOG_BACKEND_UART=y -DCONFIG_SHELL_LOG_BACKEND=n

*** Booting Zephyr OS build zephyr-v3.5.0-4132-gf37d150c1052 ***

uart:~$ ASSERTION FAIL [err == 0] @ WEST_TOPDIR/zephyr/subsys/shell/shell_ops.c:438
@ WEST_TOPDIR/zephyr/lib/os/assert.c:43
Exiting due to fatal error

I created a bug report of the issue in #67637


quickly hide title-bar by config

Description of the Change
hi
first i add minimize function in atom-environment.coffee for use this command: atom.minimize();
two add forceHideTitleBar config. because designer need hide title-bar for beautiful develop atom.
Why Should This Be In Core?
better design develop.
Benefits
quick
Possible Drawbacks
nothing
Applicable Issues
nothing

my customize [with this changes] demo:

Video demo
sry 4 my bad english

pre request for https://github.com/xtoolkit/arshen-ac/pull/1 package

Well I guess you wanted forceHideTitleBar instead of froceHideTitleBar?

Why can not it be like that?

Ok . This is not a good method . Give me a solution instead.
@nathansobo @maxbrunsfeld @damieng

The problem is that hiding the title bar currently only works on macOS and a theme really needs to be able to support it by providing similar functionality.
Additionally if we were to go down this path;

The correct spelling is 'force' not 'froce'
New configuration settings should contain an entry in the schema with the appropriate description

@damieng thank you for answering!
can you help me for second path?

first i add minimize function in atom-environment.coffee for use this command: atom.minimize();

👍  on adding a atom.minimize(); command

two add forceHideTitleBar config.

Do you mean you would like a command to force the title-bar to be hidden? So you can use that command in your package?
Couldn't you "force" it by directly setting the config to hidden:
atom.config.set("core.titleBar", "hidden")

Note that changing the title bar can't be done "quickly" and needs a reload of Atom. You should see this popup when you try:

Thanks for your contribution.
I am closing this PR since the ability to hide the title bar has been available for a while now on windows, mac and linux systems.  Please try the latest Atom release. Thank you.


Add database versioning support

🚀 Feature Request
Relevant Packages
This feature request is for core services.
Description
Leverage a Go based database migration tool so that we can better manage changes to databases while also better facilitating backwards compatibility. See migrate for possible library and features we could use.
Describe the solution you'd like
Problems:

Database initialization - The initialization of database(s) are done via scripts, like init_mongo.js, which are copied across multiple repos (docker-edgex-mongo and developer-scripts). This makes standing up an EdgeX system complicated since the user has to first configure Mongo, then execute the init_mongo.js script(located in either of the two repos), then start the necessary services.

Database maintainability - Making updates in the code sometimes can lead to making changes in the database schemas. This results in multiple PRs across repos which then have to come together for the final product. This coordination adds some complexity to the maintainability of the project/system and can be error prone.

Backwards compatibility - With the current implementation, there is no way to provide backwards compatibility for situations which require moving around of data or re-structuring the database schema. For example, if we decide that --for some crazy reason-- we would like to merge data from two different collections into one. As of now we would make the necessary code changes, update the init_mongo script, and roll out the updates together. However, this would not be ideal for users that are already using the system and just want to update to the latest version as it would require them to lose data as they switch to the new schema by re-executing the initialization script.

Fault tolerance - We do not have a good way of ensuring the state of the database within EdgeX. Since the code and the database schema information are disjointed we don't have a reliable way of ensuring that the database and the code have been updated, shipped, and installed correctly. In some cases we may not see any errors until we actually try to access the problematic data.

Suggested Solution:
Use a Go based database migration tool, possibly migrate, and handle the database setup and versioning within the respective services.
The thought is that each service has its own scripts, specific to its data and underlying database, which will make the necessary changes to the database to bring the database to a state which the application can interact with. This should work with any previous database state which is valid.
For example, given the structure of the edgex-go as of this writing. The database files for coredata would reside in a folder with the different versions, lets assume cmd/coredata/res, and would look something like:
- 1_initalize_mongo.js
- 2_add_index_to_reading_device.js
- 3_rename_reading_collection.js
...

During startup after connecting to the database, the service would then execute migrations to ensure the database is in the correct state and startup as it does today. If there are migrations to be made then leverage the database migration tool to perform the migrations. If an error is encountered we simply fail and do not start the service.
With this setup, we can simply just create new migration scripts and add them to the correct location and the startup process will handle applying the migrations.
This would solve the problems:

Database initialization - Having all the database information in one place reduces the complexity of standing up an environment.

Database maintainability - Reduces the complexity when making code changes which also require database schema updates since the code and database scripts are co-located

Backwards compatibility - We would be able to better facilitate backwards compatibility since we would be able to package database scripts with the version of the service and would give us more control of how to manage the persisted data between different versions.

Fault tolerance - We would now be able to programatically fail during startup, which ensures the system is in the correct state and we can add tests for these situations.

In theory this setup could allow us to eliminate docker-edgex-mongo repo, and the mongo setup scripts from developer-scripts and reduce the complexity of the system.
Unknowns:

How does this affect CI jobs?
How does the database locking work ensure applications that leverage the same database are not causing interfering with one another?
Will this cause issues when services are scaled out?
Are there any other good tools to achieve this?

Describe alternatives you've considered
No other solutions have been explored

I think this may also give us an opportunity to better manage secrets once we incorporate the functionality from go-mod-secrets  since we are handling the database migrations in the service applications we can possibly eliminate the need for storing database credentials in multiple places

Another tool to look into is Liquibase. Thank you @akramtexas for the suggestion.

I think there are two issues here that are combined:

The current methodology for scripting the initial state of the Mongo DB needs improvement (I agree)
Data migration pursuant to an upgrade of some kind (I'm not convinced on this point)

Some thoughts as I was reading this.
1.) I think the hooks for any migration capabilities should be in the database provider layer (internal/pkg/db) and not via some scripts in the ./res folder. Methodologies will differ across vendors and if someone wants to integrate, then THEY need to solve this problem for their storage model.
2.) Migrations should be done once, the first time a newly versioned service starts and that's it. Once it's done, it's done -- no checking of "valid states" every time a service starts up.
3.) What if the customer ends up having to rollback but their data's already been migrated forward?
4.) There's a difference between transient and long-lived data in the system. Transient data is readings/events and that data must be drained prior to an upgrade. There will be no upgrade path for these. For everything else, there could be a migration scenario -- but we have no customer requirements (or even SLAs) around that yet. That makes this a solution without a problem.
Let's concretize this with an example. @difince is working on reworking the device profile to device relationship. This also fundamentally changes the way we handle commands. When Fuji releases, any command records in the database can stay because they'll never be retrieved (we don't pay any attention to them now) and since the structure of a command is changing, they won't match any of the new queries that will be going in.
Here's something a bit more invasive -- Removing Addressable from Device and replacing it with Protocols      map[string]ProtocolProperties. For something like that, I'd seriously consider making the customer re-provision their environment. If we take on migration in these cases, we're taking on a certain liability. I'm open to discussion but, as a third party solution provider to a customer's OT environment, I would be hugely careful here.
All of that said, it may be useful to adopt a document versioning practice similar to what is shown here.

Trevor's response caught my attention.  Some additional thoughts...

Concur that persisted documents should be versioned and I see that as an implementation detail behind the existing DBClient contract.

Concur that migrations are implementation-specific and I therefore envision them implemented behind the existing DBClient contract.

Having integrated migration support in prior product efforts, I've anecdotally found always rolling forward is easiest.  Explicit rollback introduces significant complexity.  Migrations that move or delete data are best done in stages to ensure a conceptual rollback (via roll forward) can be accomplished without data loss.  Easily done when you're managing a SaaS product with continuous delivery/deployment -- not necessarily so in EdgeX's case where we have no control over the deployment environment.

The external API and DBClient both use the same model contracts.  These will likely need to be decoupled if we support multiple API versions for backward compatibility.

This discussion begs the question of EdgeX's upgrade story/strategy going forward.  Must minor (dot) releases be persistence-compatible?  Do we version the overall persistence instance (the actual stored data) and flag it is out of sync with the executing version of EdgeX? When persistence schema changes, do we require EdgeX be re-provisioned (and, if so, what does that look like from a DevOps perspective)?

To @tsconn23 's comments:

1.) I think the hooks for any migration capabilities should be in the database provider layer (internal/pkg/db) and not via some scripts in the ./res folder. Methodologies will differ across vendors and if someone wants to integrate, then THEY need to solve this problem for their storage model.

My thought is that the service would determine which database vendor is being used, then pass the scripts to the proper DBClient implementation to execute the queries. I see having the database queries in a script as being easier to maintain and read. I agree every vendor will need to be treated differently and the ones we do not support are out of scope for us, but as of now we support Mongo and Redis and we should be providing support for those. With this model of using scripts one can simply add support for another data-store in the code, drop in the script to provision the data-store, start up the service, and verify that it has successfully started. If the user is concerned about giving EdgeX permissions to alter the data-store then simply do not use the functionality.

2.) Migrations should be done once, the first time a newly versioned service starts and that's it. Once it's done, it's done -- no checking of "valid states" every time a service starts up.

Agreed migrations should be done once, however you would have to check the current version of the database and see which migrations are available and which need to be applied. I think this has to happen in order to ensure all migrations have been applied.

3.) What if the customer ends up having to rollback but their data's already been migrated forward?

Most of the tools, including the one referenced in my original post, provide functionality for rolling back. The idea is that you provide 2 scripts for each migration. One for introducing the necessary changes, the other to undo the changes from the other script. You can then leverage the tool to execute the script which puts your data back to the state it was before the migration.
As @michaelestrin stated that you have to be clever as how you introduce the rollback scripts. Doing deletions in stages has worked for me in the past as well

4.) There's a difference between transient and long-lived data in the system. Transient data is readings/events and that data must be drained prior to an upgrade. There will be no upgrade path for these. For everything else, there could be a migration scenario -- but we have no customer requirements (or even SLAs) around that yet. That makes this a solution without a problem.

I see this proposal as only being applied to data which needs to be migrated. If you do not need to touch certain data, simply don't. In this case there should be no changes to the data layout for readings, events, and other transient data.

Here's something a bit more invasive -- Removing Addressable from Device and replacing it with Protocols map[string]ProtocolProperties. For something like that, I'd seriously consider making the customer re-provision their environment. If we take on migration in these cases, we're taking on a certain liability. I'm open to discussion but, as a third party solution provider to a customer's OT environment, I would be hugely careful here.

I agree, in situations like this I think we would simply require them to re-provision and communicate that in the release of the software. Adding database versioning won't solve all migration problems. It has the potential to make migrations easier given the migrations are compatible. In the past I have added migrations scripts as the application needed and when there was a breaking migration I would increase the major version and consolidate all the queries into one script and start over.

All of that said, it may be useful to adopt a document versioning practice similar to what is shown here.

:+1:
My suggestions and comments are based on previous experiences using Flyway to manage database migrations. The applications that I have leveraged this tool with has supported different database vendors(driven by configuration), and sometimes requiring more than one database at a time(Oracle,Cassandra). I think this can be done with the tools provided by the Go community and our current code structure regarding the DBClient and the database configuration functionality.

To @michaelestrin 's comments:

The external API and DBClient both use the same model contracts.  These will likely need to be decoupled if we support multiple API versions for backward compatibility.

I agree and think we should be doing this. I think the API which the user uses should not be tied to how the backend uses the data. I think we should try to not change the API as much but be free to change how we perceive the data within the system.

This discussion begs the question of EdgeX's upgrade story/strategy going forward.  Must minor (dot) releases be persistence-compatible?  Do we version the overall persistence instance (the actual stored data) and flag it is out of sync with the executing version of EdgeX? When persistence schema changes, do we require EdgeX be re-provisioned (and, if so, what does that look like from a DevOps perspective)?

Great questions! I think we do need these answered.

@tonyespy, as per the conversation in the core working group call regarding migrating the Mongo initialisation scripts to Go. I would like to get your thoughts on this feature request.

@AnthonyMBonafide @michaelestrin - still a Fuji release item?  Label Geneva?

Closed.  Not on the current road map.


ia32-libs support

Hi,
I am creating a Dockerfile FROM iron/base adding the Android development tools. However, I get the same error than https://groups.google.com/forum/#!topic/android-developers/fBhcq6FZGXI
Unable to run 'adb': Cannot run program "/opt/android-sdk-linux/platform-tools/adb": java.io.IOException: error=2
And the answer is to install ia32-libs. How can I do it with alpine?
Thank you in advance!

I don't see any package for it. What does it do? Where is the upstream project living?

see this SO question
TL;DR, The core problem is how to run 32-bit program in 64-bit alpine?

+1 here - it doesn't seem that it is possible to build android currently on alpine

I had the same problem and went back to an Ubuntu image for building Android apps.
However today I came across the following image and managed to build my own Android development image based on Alpine (openjdk:8-alpine + alpine-pkg-glibc):
https://hub.docker.com/r/alvrme/alpine-android/~/dockerfile/


Properly Handle Cases where the Report File is Not Properly Generated

Initial investigation of issue #102 shows improper handling of files in case they do not exist. Code has been hardened for such cases.
P.S. Issue #102 is still under investigation.

:+1:


Doc Anchor Fixes

Moving anchor creation out of ToC logic.
Moving ID creation into JS because RedCarpet doesn't support Unicode headings.
Making permalink icons a bit smaller and making them always show on small and medium screens.

@nikhilkh @riknoll @sarangan12 Please review when you folks get a chance.

I'm assuming you grep'd for any #link- anchor links on our site that need to be changed now as we change the slugify scheme and prefix.

@nikhilkh: good catch! Fixed links with #link- in them.

@nikhilkh I kept #page-toc-source because it's just an ID, which just happens to be used by the ToC too. If the ID ever changes or is moved, all uses of it should be examined and then we can create another one if required. The motivation to not touch it unless necessary is the fact that changing it will lead to a massive SVN commit (and right now it's not strictly necessary).

LGTM. Thanks, Dmitry for fixing this! I just tested it and it works very well!


wasm: Add -s ERROR_ON_UNDEFINED_SYMBOLS=0 to emcc command args so that unde…

…fined symbols are treated as warnings as per pre emscripten 1.38.13 behaviour.  Fixes #6483

Seems the wasm tests failed with something to do with the Firefox user preferences file.
08:26:43 C:\Users\runner\AppData\Local\Temp\temp_emrun_firefox_profile_dey9qq\prefs.js:56: prefs parse error: integer literal overflowed
08:26:43 C:\Users\runner\AppData\Local\Temp\temp_emrun_firefox_profile_dey9qq\prefs.js:57: prefs parse error: integer literal overflowed
08:26:43 C:\Users\runner\AppData\Local\Temp\temp_emrun_firefox_profile_dey9qq\prefs.js:58: prefs parse error: integer literal overflowed

Any way to see whats in there?  Looking in my own prefs.js isn't very helpful as the preferences order doesn't look the same (I don't have ints at those lines).  Or is this one of those cases where the job is just resubmitted?

Seems the wasm tests failed with something to do with the Firefox user preferences file.

This is an intermittent failure that has been plaguing the Wasm legs for a while. I don't think anyone investigated, but re-running usually helps.
I'll close and reopen this PR to re-trigger the CI, because a lot of the other legs seem to be stuck anyway.

Seems to happen a lot, can we get a view of that file to start?  Would opening an issue help to track it?

I note that from emrun.py in emscripten these lines correspond to
// Set various update timers to a large value in the future in order to not
// trigger a large mass of update HTTP traffic on each Firefox run on the clean profile.
//<PHONE_NUMBER> seconds since Unix epoch is sometime in the year 2038, and this is the max integer accepted by Firefox.
user_pref("app.update.lastUpdateTime.addon-background-update-timer",<PHONE_NUMBER>);
user_pref("app.update.lastUpdateTime.background-update-timer",<PHONE_NUMBER>);
user_pref("app.update.lastUpdateTime.blocklist-background-update-timer",<PHONE_NUMBER>);
user_pref("app.update.lastUpdateTime.browser-cleanup-thumbnails",<PHONE_NUMBER>);
user_pref("app.update.lastUpdateTime.experiments-update-timer",<PHONE_NUMBER>);
user_pref("app.update.lastUpdateTime.search-engine-update-timer",<PHONE_NUMBER>);
user_pref("app.update.lastUpdateTime.xpi-signature-verification",<PHONE_NUMBER>);
user_pref("extensions.getAddons.cache.lastUpdate",<PHONE_NUMBER>);
user_pref("media.gmp-eme-adobe.lastUpdate",<PHONE_NUMBER>);
user_pref("media.gmp-gmpopenh264.lastUpdate",<PHONE_NUMBER>);
user_pref("datareporting.healthreport.nextDataSubmissionTime", "2147483647000")

Would be interesting to know if the prefs.js still has that or has been corrupted.  @morganbr, have you looked into this?

The prefs.js output happens in every build. My best guess on why CI fails intermittently is that Firefox takes too long to start up (maybe because it's updating?) and hits the timeout we set for emcc in HelloWasm.cmd. It might be good to set a longer timeout and see if CI starts working more consistently.

Ah ok, I've had a few instances of this problem today and while it may not be the same, the output is
Running test HelloWasm
Executing C:\Program Files (x86)\Mozilla Firefox/firefox.exe -headless http://localhost:6931/HelloWasm.html -no-remote -profile c:/users/scottw~1/appdata/local/temp/temp_emrun_firefox_profile_e36b1u
No activity in 20 seconds. Quitting web server with return code 99999. (--silence_timeout option)
HelloWasm: fail - 99999

JIT - TOTAL: 0 PASSED: 0
CPP - TOTAL: 0 PASSED: 0
WASM - TOTAL: 1 PASSED: 0
Tests failed.

So apparently its starting the server on port 6931 and then stopping it , but netstat -anb shows
 [System]
  TCP    <IP_ADDRESS>:6931         <IP_ADDRESS>:45640        ESTABLISHED
 [System]
  TCP    <IP_ADDRESS>:6931         <IP_ADDRESS>:45641        ESTABLISHED
 [System]
  TCP    <IP_ADDRESS>:6931         <IP_ADDRESS>:45642        ESTABLISHED
 [System]
  TCP    <IP_ADDRESS>:6931         <IP_ADDRESS>:45643        ESTABLISHED
 [System]
  TCP    <IP_ADDRESS>:6931         <IP_ADDRESS>:45644        ESTABLISHED
 [System]

and netstat -ano showed
  TCP    <IP_ADDRESS>:6931         <IP_ADDRESS>:0              LISTENING       24240
  TCP    <IP_ADDRESS>:6931         <IP_ADDRESS>:45640        ESTABLISHED     24240
  TCP    <IP_ADDRESS>:6931         <IP_ADDRESS>:45641        ESTABLISHED     24240
  TCP    <IP_ADDRESS>:6931         <IP_ADDRESS>:45642        ESTABLISHED     24240
  TCP    <IP_ADDRESS>:6931         <IP_ADDRESS>:45643        ESTABLISHED     24240
  TCP    <IP_ADDRESS>:6931         <IP_ADDRESS>:45644        ESTABLISHED     24240

Process 24240 didn't appear in procexp or taskmgr. pskill on it gives
C:\WINDOWS\system32>"d:\Program Files\SysInternals\pskill64.exe" 24240

PsKill v1.16 - Terminates processes on local or remote systems
Copyright (C) 1999-2016  Mark Russinovich
Sysinternals - www.sysinternals.com

Unable to kill process 24240:
A process being terminated has no threads to terminate.

CurrPorts was able to close the Established connections, but not the listening.
If Mark's not too busy, perhaps you could ask him what to do next :)
I don't know if closing the listening connection is the problem, but it doesn't look right.  Maybe we could add a netstat to the build before running emcc to see if it fails when there is already a connection before the server starts.


npm missing leads to failure to build the project and generate the Xcode project

If the Node.js package manager (npm) is not found , the project does not get built nor the Xcode project file(s) get generated.
Current behaviour, as it happens on my machine :
[.....]
Compile Swift Module 'SwiftProtobuf' (77 sources)
Compile Swift Module 'Conformance' (4 sources)
Compile Swift Module 'SwiftProtobufPluginLibrary' (18 sources)
Compile Swift Module 'protoc_gen_swift' (18 sources)
protoc-gen-swift 1.3.1
Generating files...
~/work/public/walletcore/js ~/work/public/walletcore
tools/generate-files: line 31: npm: command not found

Fixed with https://github.com/TrustWallet/wallet-core/pull/206


Formatter: F-Strings (FormattedValue and JoinedStr)

Format fstring expressions.

Currently blocked by https://github.com/astral-sh/ruff/issues/5907

so i started looking at this a bit (which is how i found #5907)
will push a wip pr i think so you can check i'm on the right track


Support editing metadata without forking/cloning the project

This is to allow more people working on this without needing to know git/github and the complex command line setup of the project.

Allow editing metadata on the demo server
Simple login system to know who changed what
Automatically push the changed files to some branch/fork
Notifications (on slack?) so we know when to pull changes

Now only requires some documentation and let people know about this.


Fix logger and upgrade to Asciidoctor 2.0.5

This PR implements the methods for the logger stub that were missing from its Ruby counterpart but which are called by Asciidoctor.
That way logging of invalid refs should work now without having to enable the $VERBOSE variable.
This change also appeared in https://github.com/asciidoctor/asciidoctor-maven-plugin/pull/389
Additionally this PR upgrades Asciidoctor to 2.0.5 plus it should hopefully publish snapshot builds of master.

logging of invalid refs should work now without having to enable the $VERBOSE variable.

:tada:


libaprutil1-ldap is missing for LDAP authentication support

With a custom httpd.conf, provide a Location or Directory that requires Basic Auth provided by ldap. Start a container with the httpd image in debug mode and see:
apache_1   | [Wed Mar 30 19:12:33.430159 2016] [ldap:info] [pid 1:tid<PHONE_NUMBER>79392] AH01320: LDAP: SSL support unavai
lable
apache_1   | ldap_url_parse_ext(ldap://localhost/)
apache_1   | ldap_init: trying /etc/ldap/ldap.conf
apache_1   | ldap_init: using /etc/ldap/ldap.conf
apache_1   | ldap_init: HOME env is /root
apache_1   | ldap_init: trying /root/ldaprc
apache_1   | ldap_init: trying /root/.ldaprc
apache_1   | ldap_init: trying ldaprc
apache_1   | ldap_init: LDAPCONF env is NULL
apache_1   | ldap_init: LDAPRC env is NULL
Then make a request and see:
apache_1   | ldap_err2string
Strace the process and see:
13364 open("/usr/lib/x86_64-linux-gnu/apr-util-1/apr_ldap-1.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
That library is provided by the libaprutil1-ldap package.

This works:
diff --git a/2.4/Dockerfile b/2.4/Dockerfile
index 2dd7a20..dddc2b2 100644
--- a/2.4/Dockerfile
+++ b/2.4/Dockerfile
@@ -15,6 +15,7 @@ RUN apt-get update \
        && apt-get install -y --no-install-recommends \
                libapr1 \
                libaprutil1 \
+               libaprutil1-ldap \
                libapr1-dev \
                libaprutil1-dev \
                libpcre++0 \

:+1: Seems fine to me; want to make a PR?

https://github.com/docker-library/httpd/pull/19

The PR fails Travis CI tests on what appears to be a transient failure of apt-get update to update the apt cache.

:heart:


Add table prefix on raw expressions when a table name is in the string

Pulse Version
v1.2.1
Laravel Version
11.8.0
PHP Version
8.2.12
Livewire Version
3.5.0
Database Driver & Version
Postgres 13
Description
I don't know if this can be considered a bug ...
When using a raw Expression consider using the table-prefix before the table name if the table name is hardcoded
I have table names prefixed with 'kp_' and pulse throws the following exception:
#18 {main}An exception happened in PulseSQLSTATE[42P01]: Undefined table: 7 ERROR:  missing FROM-clause entry for table "pulse_aggregates"
LINE 1: ... "aggregate", "key_hash") do update set "value" = "pulse_agg...
                                                             ^ (Connection: pgsql, SQL: insert into "kp_pulse_aggregates" ("aggregate", "bucket", "key", "period", "type", "value") values (count,<PHONE_NUMBER>, ["select count(*) as aggregate from \"kp_migrations\"","C:\\Software\\kp\\api\\vendor\\laravel\\pulse\\src\\Pulse.php:594"], 60, slow_query, 1), (count,<PHONE_NUMBER>, ["select count(*) as aggregate from \"kp_migrations\"","C:\\Software\\kp\\api\\vendor\\laravel\\pulse\\src\\Pulse.php:594"], 360, slow_query, 1), (count,<PHONE_NUMBER>, ["select count(*) as aggregate from \"kp_migrations\"","C:\\Software\\kp\\api\\vendor\\laravel\\pulse\\src\\Pulse.php:594"], 1440, slow_query, 1), (count,<PHONE_NUMBER>, ["select count(*) as aggregate from \"kp_migrations\"","C:\\Software\\kp\\api\\vendor\\laravel\\pulse\\src\\Pulse.php:594"], 10080, slow_query, 1) on conflict ("bucket", "period", "type", "aggregate", "key_hash") do update set "value" = "pulse_aggregates"."value" + "excluded"."value")

avoid this behavior by using $this->connection()->getTablePrefix()  just before the table name  in src/Storage/DatabaseStorage.php
Eg.
            match ($driver = $this->connection()->getDriverName()) {
                'mariadb', 'mysql' => [
                    'value' => new Expression('(`value` * `count` + (values(`value`) * values(`count`))) / (`count` + values(`count`))'),
                    'count' => new Expression('`count` + values(`count`)'),
                ],
                'pgsql', 'sqlite' => [
                    'value' => new Expression('("' . $this->connection()->getTablePrefix() . 'pulse_aggregates"."value" * "' . $this->connection()->getTablePrefix() . 'pulse_aggregates"."count" + ("excluded"."value" * "excluded"."count")) / ("' . $this->connection()->getTablePrefix() . 'pulse_aggregates"."count" + "excluded"."count")'),
                    'count' => new Expression('"' . $this->connection()->getTablePrefix() . 'pulse_aggregates"."count" + "excluded"."count"'),
                ],
                default => throw new RuntimeException("Unsupported database driver [{$driver}]"),
            }

Regards
S.
Steps To Reproduce
Put in .env
DB_PREFIX=kp_

Thanks for reporting @simonecosci. I've created a fix for this at #386.


Fix  two symbol issues

fix local symbol postion assert error
remove GCC optimized functions from 'undefined' function set

/retest

Will simply removing assert cause other bugs? @ampresent

Will simply removing assert cause other bugs? @ampresent

I think what this PR does, is making
local_sympos[(key, file)] = fn_pos[the_last_appearance_of_key_file]

, which makes some sense. And I can't think of what potential bugs there might be, for now.
So I think it's acceptable.

All LGTM


How can I select the audio tracks and subtitles?

How can I select the audio tracks and subtitles?
The documentation indicates that it is supported but does not indicate how to obtain or select them
Supported formats
Support for network streams, RTSP, RTP, RTMP, HLS, MMS. Play all files, in all formats, including exotic ones, like the classic VLC media player. Play MKV, multiple audio tracks (including 5.1), and subtitles tracks (including SSA!)

You can use my pr to support subtitles: https://github.com/razorRun/react-native-vlc-media-player/pull/143

Are you referring to the "subtitleUri" property?
I do not need this. What I need is to be able to select the audio, video and subtitle tracks just like the react-native-video library does with the properties, selectedAudioTrack,
selectedTextTrack
and
selectedVideoTrack
https://github.com/react-native-video/react-native-video/blob/master/API.md#selectedaudiotrack

@Arnoldnuo https://github.com/razorRun/react-native-vlc-media-player/pull/143 crashed my app what changed?

Sorry for opening again and leaving a message after a long time in the past
After I used the PR related to this Issue, the project reported an error
https://github.com/razorRun/react-native-vlc-media-player/pull/144
project environment：XCode 14.x & react-native 0.68.x & Android Gradle 7.x
Error details：
Bugs are reported in the newly added code section in：mediaPlayerTimeChanged - case VLCMediaPlayerStateBuffering

It seems that in some cases the self.onVideoLoad method itself does not exist when VLCMediaPlayerStateBuffering is triggered
(The reason has not been investigated yet)
For reference, my current solution is:
(1) Roll back the version to before this PR: for example 1.0.49
(2) Patch this package, and add fault-tolerant judgment null value processing at the above-mentioned self.onVideoLoad call

很抱歉过去很久再次打开并留言
我在使用到此Issue相关的PR: https://github.com/razorRun/react-native-vlc-media-player/pull/144 后，项目出现了报错
项目环境：XCode 14.2+ & react-native 0.68.x & Android Gradle 7.x
错误详细：
错误被报告在：mediaPlayerTimeChanged - case VLCMediaPlayerStateBuffering 中新增的代码部分
似乎在某些情况下，触发VLCMediaPlayerStateBuffering时，self.onVideoLoad方法本身并不存在
（还未真正的调查到原因）
以供参考，我目前的解决方案是：
（1）回退版本至本次PR前：例如 1.0.49
（2）patch此package，在上述的self.onVideoLoad调用处增加容错判断空值处理


SPFx Application Customizers don't scroll on /_layouts/15 pages and list/library pages

Category

[ ] Question
[ ] Typo
[X ] Bug
[ ] Additional article idea

I've noticed that application customizers which make use of the header placeholder scroll on SharePoint "site pages" but not on other pages such as site contents or document libraries. You can reproduce this with a standard app customizer https://docs.microsoft.com/en-us/sharepoint/dev/spfx/extensions/get-started/using-page-placeholder-with-extensions and then resize the browser window. This issue seems to effect all browsers but my testing has been in Chrome.
Not working in document library:

Working on site pages:

The issue seems to be the following CSS:
.sp-App-root{
overflow:hidden;
}
This CSS fixes the issue (but i wouldn't want to touch that CSS in app customizers):
.sp-App-root{
overflow-x:hidden;
overflow-y:scroll;
}
I assume this is built like this for a reason but doesn't take into account customizations which might need scrolling ability especially on mobile devices. I just wondered if other people had this issue and how they got around it?

I can confirm that I see the scrolling on Home Page, but don't see on Doc Lib, List, or Site Content

Hi @CloudDesignBox - sorry for the long delay.  We've taken a good look at this, and we're going to close this without fixing it, mostly because the fix would be to make both experiences "broken" by your definition.  The problem is that the design of the top placeholder is that is sits above the scrollable content region, it isn't a part of it.  In this case, the header is so large that it has pushed all the content out of the viewport, so the scrollable content region can't be seen.  The solution here is to make your header smaller so that it is mobile friendly.

Thank you for the update @patmill.
Don't you think it is strange that the placeholders only get added after a new item is added to the list?
It wouldn't seem as strange if they were there to begin with. I don't have a problem with them being there, it's just the fact that they only appear after a new item has been added to the list.....

Hi @CloudDesignBox - this bug is about scrolling of application customizers on the pages.
For the one that you're mentioning - you are correct. We're working on it to make them visible all the time.

Thanks @AJIXuMuK


As an author, I want to comment on posts that I can access

3/10

3/10

4

3/10

3

Average 3.2/10


PIP 76: Streaming Offload(Part II)

This PR contains the ManagedLedger side code of PIP 76, it should be reviewed after https://github.com/apache/pulsar/pull/9096 is merged
Under construction
PIP 76: https://github.com/apache/pulsar/wiki/PIP-76:-Streaming-Offload

Because the test costs lots of time, I make the new integration change at https://github.com/streamnative/pulsar/pull/2024
which only keeps offloading related integration tests, they will be merged to this PR after they tuned to success.


Stable rust API

Description
To make glaredb embeddable in rust programs.
See https://github.com/PRQL/prql/pull/3669#issuecomment-1761903362
Decisions:

Possibly add feature flags to slim down size/dependencies (otherwise built programs will get... quite large)
Possibly factor out our Python/CLI code into the "stable api"?

So this one is kind of a PITA as it requires a bit of refactoring to get into crates.io
Crates.io requires that ALL crates and their dependencies are published to crates.io. So we'd have to likely prefix all of our crates with glaredb_, then set up some CI to publish all of them to crates.io.


fix(vars): fixed vars bundle import path

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 81.76%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
6358

Relevant Lines:
7151

💛  - Coveralls


Allow Symfony 4

Patch provided
diff --git a/composer.json b/composer.json
index 28250d9..2074178 100644
--- a/composer.json
+++ b/composer.json
@@ -21,15 +21,15 @@
         "doctrine/annotations": "^1.2",
         "gecko-packages/gecko-php-unit": "^2.0",
         "php-cs-fixer/diff": "^1.0",
-        "symfony/console": "^3.2",
-        "symfony/event-dispatcher": "^3.0",
-        "symfony/filesystem": "^3.0",
-        "symfony/finder": "^3.0",
-        "symfony/options-resolver": "^3.0",
+        "symfony/console": "^3.2 || ^4.0",
+        "symfony/event-dispatcher": "^3.0 || ^4.0",
+        "symfony/filesystem": "^3.0 || ^4.0",
+        "symfony/finder": "^3.0 || ^4.0",
+        "symfony/options-resolver": "^3.0 || ^4.0",
         "symfony/polyfill-php70": "^1.0",
         "symfony/polyfill-php72": "^1.4",
-        "symfony/process": "^3.0",
-        "symfony/stopwatch": "^3.0"
+        "symfony/process": "^3.0 || ^4.0",
+        "symfony/stopwatch": "^3.0 || ^4.0"
     },
     "require-dev": {
         "johnkary/phpunit-speedtrap": "^1.1",
@@ -37,7 +37,7 @@
         "php-cs-fixer/accessible-object": "^1.0",
         "phpunit/phpunit": "^4.8.35 || ^5.4.3",
         "satooshi/php-coveralls": "^1.0",
-        "symfony/phpunit-bridge": "^3.2.2"
+        "symfony/phpunit-bridge": "^3.2.2 || ^4.0"
     },
     "suggest": {
         "ext-mbstring": "For handling non-UTF8 characters in cache signature.",

could you provide the patch in PR form so we can see if the CI suit is happy with this as well?

closing as PR https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/3125 has been merged, thanks @garak and @keradus !


Is there an existing issue for the same bug?

[X] I have checked the existing issues.

Branch name
main
Commit ID
Commit ID
Other environment information
No response
Actual behavior
I get this error, when I set up web-crawler in Agents:
{
content: {
0: "An unexpected error occurred: BrowserType.launch: Executable doesn't exist at /root/.cache/ms-playwright/chromium-1134/chrome-linux/chrome ╔════════════════════════════════════════════════════════════╗ ║ Looks like Playwright was just installed or updated. ║ ║ Please run the following command to download new browsers: ║ ║ ║ ║ playwright install ║ ║ ║ ║ <3 Playwright Team ║ ╚════════════════════════════════════════════════════════════╝"
}
}
Expected behavior
No response
Steps to reproduce
Add web-crawler to an agent, add proxy, ask something and then it produces that error.

Additional information
No response

What about execuating the following command and restart/kill ragflow_server.py in the container?
pip install pytest-playwright
playwright install

Sorry, I forgot to write it. It's on the demo site


Avoid mutable default arguments

Fix arguments not fixed in #4419.

How about using different default values from None?

@kmaehashi I think it's better to use some singleton value (like numpy._NoValue).

How about using ()?

I don't think () is good because one may think it has some meaning.

I prefer 'default' in this case. It's much easier to use. We don't need to distinguish if the user passed the argument explicitly (distinguishing them is the purpose of numpy._NoValue).

Currently variable_style of build_computational_graph behaves as follows:

When dict is specified: use the dict as option
When None is specified: use Chainer v1-style option (ie {})
When no value is specified: use default option (ie {'shape': 'octagon', 'fillcolor': '#E0E0E0', 'style': 'filled'})

My proposal is:

When dict is specified: use the dict as option
When None is specified: use default option ({'shape': 'octagon', 'fillcolor': '#E0E0E0', 'style': 'filled'})
(ie, users currently specifying Chaienr-v1 style (None) should specify {} instead.)

@niboshi -san's proposal is to prepare singleton immutable object to keep the current spec while removing the mutable default arguments.

My suggestion was:

When dict is specified: use the dict as option.
When None is specified: use Chainer v1-style option, or raise an error (if we choose to remove this feature).
When 'default' is specified: use the default option.
When nothing is specified: use the default option.
What I meant is that we do not need to distinguish between the last two cases.

I rather thought a "hidden default value" is far more complex for users. For example, consider a user who wants to write a wrapper of this function that passes through this argument. If the function is using hidden default value semantics, the user has to emulate this behavior using again a hidden default value (possibly using the "hidden" value by accessing an private API or inventing another default value which needs to be translated in the wrapper function).

Thanks for the discussion.
@niboshi If your point is to keep current spec as-is, I'd like to go with 'default'. Do you think it's OK?

Sorry for delay.
I think it's ok to proceed with 'default'.

Updated according to the discussion above.

@niboshi I'd like to discuss API expansion ('default' support) in another issue if needed. It's out of the scope of this PR. I'd also like to backport this.

Hmm, in my understanding the purpose of using str argument is to make it explicit to users.
https://github.com/chainer/chainer/pull/4822#issuecomment-400913963

I rather thought a "hidden default value" is far more complex for users. For example, consider a user who wants to write a wrapper of this function that passes through this argument. If the function is using hidden default value semantics, the user has to emulate this behavior using again a hidden default value (possibly using the "hidden" value by accessing an private API or inventing another default value which needs to be translated in the wrapper function).

Also I don't necessarily think this PR needs backporting, because it does not itself improve anything, but it's a safeguard for future bug introduction.

If #4413 will not be backported, it doesn't look too bad to change v7 only.  Almost all the new PRs are into master branch.

Hmm, in my understanding the purpose of using str argument is to make it explicit to users.

Ok, then how about:

renaming _default to DEFAULT so that users can use it
make it documented
do not backport
Or do you prefer to use 'default' instead of DEFAULT?

If #4413 will not be backported, it doesn't look too bad to change v7 only. Almost all the new PRs are into master branch.

I agree with this.

@kmaehashi
Do you mean introducing chainer.DEFAULT?
Hmm, I don't think it's pythonic (or Chainer-ish. I think str is more common for this kind of arguments).

Updated according to the offline discussion.

Jenkins, test this please

Jenkins CI test (for commit 7d2b5e3cfca1eb4d5377b99dc7fc54e5703124dd, target branch master) succeeded!


Use authentication

Information on using 2FA: https://github.com/piotrmurach/github#35-two-factor

https://github.com/piotrmurach/github/issues/268

This is implemented but needs to be documented in the README.

I've not encountered anything requiring me to put in 2FA information since switching to token-based authentication. Closing.


Three elements in the same line causing alignment issue

Are you requesting a feature, reporting a bug or ask a question?
Bug
What is the current behavior?
Three elements in the same line causing alignment issue as attached

What is the expected behavior?
Should be aligned.
How would you reproduce the current behavior (if this is a bug)?
Execute the attached code in Survey Builder
Provide the test code and the tested page URL (if applicable)
Tested page URL:
Test code
{
 pages: [
  {
   name: "page1",
   elements: [
    {
     type: "dropdown",
     name: "question4",
     choices: [
      "item1",
      "item2",
      "item3"
     ]
    },
    {
     type: "dropdown",
     name: "question3",
     choices: [
      "item1",
      "item2",
      "item3"
     ]
    },
    {
     type: "dropdown",
     name: "question2",
     startWithNewLine: false,
     choices: [
      "item1",
      "item2",
      "item3"
     ]
    },
    {
     type: "dropdown",
     name: "question1",
     startWithNewLine: false,
     choices: [
      "item1",
      "item2",
      "item3"
     ]
    }
   ]
  }
 ]
}

Specify your

browser: IE 11/Edge, Google Chrome, Firefox
browser version:
surveyjs platform (angular or react or jquery or knockout or vue): jQuery
surveyjs version: latest

We've fixe the bug. Fix will be available in the next minor update.

Thanks.


Add code to auto-detect a read-only file system for local (and possibly) sftp backend

In #318 we discussed and added code in #350 to disabe locking so that restic can be used with a read-only backend (e.g. no lock is created). This might be implemented by opening a file with O_WRONLY and check the returned error for EROFS, see https://github.com/restic/restic/issues/318#issuecomment-147466249

I try to tackle this over the next few days.


Devsol 1313

Do you really want to make the included changes to Revision.php?  You previously indicated that it was a bad idea.  I don't think this code was supposed to be included in the PR.


Coding best practice refresh

I think it would be useful to update the 'coding best practice' page to include more guidance from the NHS Digital RAP team.

closing as we have this capture on another issues/JIRA ticket.


connected_components_using_bfs_by_question.cpp

explains to count connected components by bfs by solving a Hackerearth question

hacktoberfest-accepted label?


Suggestion: Add hint for adding arbitrary editor keybindings

Currently only r.runCommand examples are shown in the wiki.
Usually people like to bind operators to a keybinding, e.g. the pipe.
While this is vscode generic, it will probably help users to get started more quickly than searching for this in the web.
Example:
        "key": "ctrl+o",
        "command": "type",
        "args": {
          "text": "%>%"
        },
        "when": "editorTextFocus"
       }

@pat-s Good idea! I have added a section to the Wiki with shortcuts for %>% and <-, using the RStudio default keybindings: https://github.com/Ikuyadeu/vscode-R/wiki/Keyboard-shortcuts#suggested-keyboard-shortcuts


Error while trying to train

Hello,
I am getting an issue when running python train.py --config=configs/train/table.yml
The error occuring is
Traceback (most recent call last):
  File "/home/lkbr/anaconda3/envs/dif/lib/python3.6/site-packages/scipy/io/matlab/mio.py", line 39, in _open_file
    return open(file_like, mode), True
FileNotFoundError: [Errno 2] No such file or directory: 'datasets/table/surface_pts_n_normal/1011e1c9812b84d2a9ed7bb5b55809f8.mat'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "train.py", line 71, in <module>
    sdf_dataset = dataset.PointCloudMulti(root_dir=data_path, max_num_instances=meta_params['num_instances'],**meta_params)
  File "/home/lkbr/repos/DIF-Net/dataset.py", line 111, in __init__
    on_surface_points=on_surface_points,expand=expand,max_points=max_points) for idx, dir in enumerate(self.instance_dirs)]
  File "/home/lkbr/repos/DIF-Net/dataset.py", line 111, in <listcomp>
    on_surface_points=on_surface_points,expand=expand,max_points=max_points) for idx, dir in enumerate(self.instance_dirs)]
  File "/home/lkbr/repos/DIF-Net/dataset.py", line 23, in __init__
    point_cloud = loadmat(pointcloud_path)
  File "/home/lkbr/anaconda3/envs/dif/lib/python3.6/site-packages/scipy/io/matlab/mio.py", line 216, in loadmat
    with _open_file_context(file_name, appendmat) as f:
  File "/home/lkbr/anaconda3/envs/dif/lib/python3.6/contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "/home/lkbr/anaconda3/envs/dif/lib/python3.6/site-packages/scipy/io/matlab/mio.py", line 19, in _open_file_context
    f, opened = _open_file(file_like, appendmat, mode)
  File "/home/lkbr/anaconda3/envs/dif/lib/python3.6/site-packages/scipy/io/matlab/mio.py", line 45, in _open_file
    return open(file_like, mode), True
FileNotFoundError: [Errno 2] No such file or directory: 'datasets/table/surface_pts_n_normal/1011e1c9812b84d2a9ed7bb5b55809f8.mat'

Which seems to be at the very first .mat file. The error occurs when trying to train any of the datasets provided by you.
My system is Xubuntu with a GTX 1080 and Intel CPU. Let me know if you need any other system information.

Hi, this repo does not contain the processed training data. The training data is too large (around 400GB) to share. Alternatively, we provide test data (100 subjects for each category). You may first download them using the link provided in the readme and run the training code with the test data to check if it works.
Currently, to generate the training set for our method, you can refer to mesh_to_sdf, which we also used for our data process. Let me know if you have any problem with it.


Ov 0.34.0

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[x] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Packages\noborus.ov__DefaultSource\ov.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\ov.exe returned exit code: 1
Executable C:\Users\Validator\AppData\Local\Microsoft\WinGet\Packages\noborus.ov__DefaultSource\ov.exe returned exit code: 1
Executable C:\Users\Validator\AppData\Local\Microsoft\WinGet\Links\ov.exe returned exit code: 1

(Automated response - build 877.)


[SR-3202] Some of properties of Locale.current object are not filled …

…on Linux

@swift-ci please test

Failure caused by GitHub outage.

OK, I get what the problem was.
CFLocaleGetValue called from object(forKey:) always returns any AnyObject. Subsequently for the different Locale properties, when we tried to conditionally cast it to a String, a nil was returned (this is what SR-3202 is).
This fix first converts the AnyObject/NSString to String by using _SwiftValue.fetch, due to which a forced downcast in localeIdentifier fails . The second part of the fix removes the forced downcast.

LGTM
@swift-ci please test and merge


Implemented classical adder in QFT paper

[ ] I have added the tests to cover my changes.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.

Summary
Implemented classical adder in QFT paper

Hi @ManjulaGandhi, the changes look good! Since we merged the ripple-carry adders the code you copied now already exists in the repo. Could you fix the merge conflicts by pulling from my branch and adjusting the inits and tests?

Sure Julien, thanks