Governance changes: clearer timelines and conditions for decision making

For consideration in the 2021-07-05 CC meeting, I've drafted proposed changes to the governance guidelines that aim to make decision conditions for PR acceptance clearer and put clear timelines on decisions.
Major changes:

making concrete conditions for core developers becoming active or inactive
making explicit that core developer approval for proposals must be by a core developer who is not the proposer
added lazy lazy approval for proposals made by core devs (new), so core dev PRs do not indefinitely lie around without approval - this is based on assumption that core devs know what they are doing
clarified where approvals/rejections must be put
replaced the gummi condition on "major change" (no definition, no decision maker who declares someting a "major change") with a clear rule on when sth is considered a "major change" - based on explicit core dev statement
added timelines for core dev consideration and decision making - 3 work days for non-major change, 12 work days for major change, 25 work days for stage 3 vote (if needed)
clarifying what happens if lazy consensus is found (was not stated) - then PR must be merged by a core dev
clarified that STEP must contain at least high-level design

There's one other unrelated change to the sentence at the start, about welcoming people "who have experienced discrimination" in the past. I'm not sure it's a good idea do define groups by their suffering rather than self-stated labels or qualifiers, so I changed it to "groups underrepresented in the tech sector".

from CC meeting on 2021-07-05:
FK to clarify approval on PR vs positive vote
CC members to read and review until next meeting

Hi all, here are a few thoughts on the suggested changes.
Regarding what happens if PRs do not receive any reply within a given amount of time:
If a PR doesn't receive any replies, from my experience, it indicates that

the proposed changes are perhaps not relevant at this point in time
the changes have not been explained or communicated well
there is something related to the PR makes people shy away from it

all of which for me would be indications to not merge the PR.
Of course there may be a PR with none of the above problems that simply has not been commented on by anyone. In that case, to me the simpler solution would be to rely on core devs to communicate with each other and ask for reviews, rather than creating a rule where a PR gets merged automatically after certain amount of time.
Regarding the right to have a review: I think we already cover this as a responsibility of the code owners, we can re-emphasise this, my main question about the right is how we would guarantee this and who would be responsible for guaranteeing this?
A few other suggestions:

rename "algorithm maintainers" to "code owners" (this is supported by GitHub and it's not just about algorithms)
create speciality roles for different topics/modules who can help with triaging issues/PRs (thanks to @RNKuhns for the idea)

If a PR doesn't receive any replies, from my experience, it indicates that
there is something related to the PR makes people shy away from it

Indeed, and that, I think is a key point that I want to address!
What I want to avoid is not developing a key area due to social dynamics unrelated to the content, like avoidance where there is no "perfect" solution (perfect is the enemy of good!), apathy/inertia, or proctrastination.
A similar topic is disagreement between core devs where onlookers think providing a review means "picking a side". Complete avoidance of review responsibilities should not be "the easy way out" from difficult design or content discussions, dynamics like that can easily drive away active core contributors too (by getting used to that avoidance stance).
None of these dynamics are, in general, the pull requester's fault, they contribute to sclerotic decision making culture, and hence are typically to the detriment of health and development of sktime.

I personally think there are some things I think we could all do better as a group in terms of process and explanation.
I'm willing to admit that given all the different developments with sktime that I will find myself unsure of what is being worked on, where I should focus my time (outside of functionality I'm working on adding) and most importantly how that fits into the larger plan.
Many of us have a lot going on (e.g. full time jobs, completing degree programs, families, etc) and I think we should try and make it as easy as possible on everyone to focus their contribution time on substantive contribution (feedback/review, contributing issues/PRs, coordinating work, etc) as opposed to trying to stay caught up on everything that is going on.
In terms of issues/PRs that are generated by the sktime development team, I'd like to see us have a more detailed roadmap of future development. This has a long-run component (in the long-run we'd like to have functionality X, Y, and Z) and a more tactical shorter-run component to help us coordinate our efforts better. This would include identifying areas of prioritized development in short-to-medium time horizons and having task boards for different things we'd like to add in different topic/module/functionality areas.
I think this helps because:

It makes it much easier to understand what we plan to develop so developers can focus their efforts and therefore have more time for feedback/review, contributing issues/PRs, etc

Authors of issues/PRs can link their explanations of the issues/PRs back to the plan for context and they can more easily focus on their explanation of what is most important for feedback and any important decision points they see related to the issue/PR

Note that I'm not advocating for us to rigidly just follow a set of task lists -- important and/or interesting things will pop-up along the way and will be worth working on in-lieu of what we planned on working on at that moment. The task lists and plans should be dynamic, we should just keep track of that dynamism.
Of course there will (hopefully) always be issues/PRs from the broader user community that will pop up. I think proposal on creating specialty roles for topics/modules (that was mentioned in @mloning's comment above) would help organize this process and reduce the burden on individual people (goal would be to try to have multiple people on topics/modules). The general idea on this front would be if an issue/PR comes in related to someone's topic/module area they'd engage on the PR provide initial triaging (is it actually a bug or is something else going on?, does the feature already exist or should it be added?, etc) and help shepherd along the issue/PR and make sure to get other core-developer input as needed.

I think proposal on creating specialty roles for topics/modules (that was mentioned in @mloning's comment above) would help organize this process and reduce the burden on individual people (goal would be to try to have multiple people on topics/modules). The general idea on this front would be if an issue/PR comes in related to someone's topic/module area they'd engage on the PR provide initial triaging (is it actually a bug or is something else going on?, does the feature already exist or should it be added?, etc) and help shepherd along the issue/PR and make sure to get other core-developer input as needed.

Hm, @RNKuhns, that's not a bad idea.
I would consider this is a separate matter though, i.e., introduction of a new role, and a proposal how this relates to PR reviews.
Do you maybe want to draft something and PR to the governance document?
Also, it's worth thinking about how much there is to be codified as "laws", and how much is better left to improvement of our project planning practices, e.g., via the community team.
Further, have you thought about what happens if new modules come up, or how this proposal of module or topic owners would interact with improvements to the infrastructure of the entire package? Think about the tag logic, for instance.

@fkiraly I'll work something up on the roles and talk with the community-team about it. I also agree that the first part is mainly about organization on all of our ends and that is also something the community-team can work on.

I'll split reply into two, first bits I think are not contentious

making concrete conditions for core developers becoming active or inactive
agreed
making explicit that core developer approval for proposals must be by a core developer who is not the proposer
agreed

clarified where approvals/rejections must be put
"Votes are cast publicly, in the location of the proposed change"
I'm not sure what "in the location of the proposed change" means. Votes are not anonymous? Could we not run a poll instead?

There's one other unrelated change to the sentence at the start, about welcoming people "who have experienced discrimination" in the past. I'm not sure it's a good idea do define groups by their suffering rather than self-stated labels or qualifiers, so I changed it to "groups underrepresented in the tech sector".
agreed.

the rest relates to PRs from core developers which are neither approved nor vetoed. On reflection, I am personally not in favour of the whole lazy approval mechanism as described. I would prefer rules along the lines of all PRs should receive a review within X days and if this does not happen the PR will automatically be put on the agenda for the next CC meeting or technical meeting where a review will be solicited

Re the lazy lazy consensus, I like @TonyBagnall suggestion: if a PR by a core dev hasn't received any replies within X days, it will be put on the agenda in the next technical discussion meeting, if that doesn't happen it is escalated to the next CC meeting.

My preferred solution: If a PR by a core developer has not received any replies within 10 working days, the author of the PR has the right to put the PR up for discussion as the top agenda item in the next technical committee.

My preferred solution: If a PR by a core developer has not received any replies within 10 working days, the author of the PR has the right to put the PR up for discussion as the top agenda item in the next technical committee.

Ok, that's what we agreed on - more specifically, it goes at the top of the agenda for decision.
Also, we don't have a technical committee yet, I assume it's the regular core dev meeting, right?

from discussion in 2021-08-09 CC meeting: Pr should not be for approval in core dev meeting, but for discussion & assigning review

I've addressed the comments by simplifying the process:

core dev meeting appoints a reviewer who needs to review and approve/reject
there is only one condition for lazy consensus on approve or reject, so the process greatly simplifies
"major change" definition is deferred to the table in the section before (which already was there, it is unchanged from pre-PR state); the concept of "major change" is removed, instead the table simply says when a STEP is needed

Due to the last point, I introduced a minor change:

since all API changes would require STEPs strictly speaking by the table, I've made a modification which allows a STEP to be a short summary in an issue or PR if it is small; the CC decides when a longer STEP is needed.

I have now updated this with what I think was the remaining point outstanding (add the "veto right" explicitly back in the "lazy consensus" section header).
I've also moved the document to the new location, and updated the links where they were pointing to the roles list.


⚠ Bofrost.be has degraded performance

In 3a66ae6, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1655 ms

Resolved: Bofrost.be performance has improved in c1d1d8c.


Fix/Bybit_perpetual: HBOT_broker_ID not applied in the order_ID

Before submitting this PR, please make sure:

[x] Your code builds clean without any errors or warnings
[x] You are using approved title ("feat/", "fix/", "docs/", "refactor/")

A description of the changes proposed in the pull request:
Adds HBOT prefix to order ids
Tests performed by the developer:
Ran unit tests
Ran Perpetual MM with Bybit

PRP: https://snapshot.org/#/hbot-prp.eth/proposal/0x2da8327b8f07b5c67b7ff780fc872df8e7376a2eee70b7328bf42b2d80e9b5a9

Hi @mhrvth, can you please also check what is the issue with this PR for failing Github checks?

@JeremyKono Hi, the issues are now resolved


Add inventory quantities and label to indicate current block

I added very basic tracking of block quantities in a player's inventory. Placing a block now decrements the quantity of that particular block, and the object currently being held is indicated by a label at the bottom right of the window.

Coverage remained the same at 0.0% when pulling 65aaebcc88d2e63ac85b125041b72086def80774 on koubio:master into 453429a373810fee5f8bdcfea4dc9ed7cc39adf9 on traverseda:master.

Hey, this seems to be crashing when you run out of blocks. I'm going to take a look at it later today, but I thought you ought to know.


Diacritics unable to be added in orthography, despite being registered in view

Perhaps the edit function could, instead of being check boxes on the chart, use the chart as a keyboard, with an "add phoneme" button? This would also list all phonemes, and allow them to be removed on the other page.

added with most recent commit (2303fd9c480143b0f0a40c26faef9ce31e6b0f0f), will be in next release


Fix issue #9

I used clang-tidy's 'modernize-use-override' to automatically add the overrides. Hopefully no places were missed.

Hi, thank you for the pull-request!
Mostly looks good to me, got only two requests:

Please mention the issue number in the commit message itself. Writing "Fixes #9" is a nice way to do it, because this particular phrasing will make GitHub automatically close the issue when I merge this PR.

Please revert the change to filter/Scanner.h. That code is auto-generated and I'd prefer not to change it at all, if possible.

Will merge once you apply those and Travis build becomes green.

Thanks for the feedback, the issues are now fixed.

Coverage decreased (-0.6%) to 35.81% when pulling 48fce18aef58f72dff6894e3d893f44f787bf94a on karjonas:use_override_specifier into cea951f0d7ad0dfa6875878bb5faea0d0265334b on newsboat:master.

Coverage decreased (-0.6%) to 35.81% when pulling 48fce18aef58f72dff6894e3d893f44f787bf94a on karjonas:use_override_specifier into cea951f0d7ad0dfa6875878bb5faea0d0265334b on newsboat:master.

Coverage decreased (-0.6%) to 35.81% when pulling 48fce18aef58f72dff6894e3d893f44f787bf94a on karjonas:use_override_specifier into cea951f0d7ad0dfa6875878bb5faea0d0265334b on newsboat:master.

Coverage decreased (-0.6%) to 35.81% when pulling 48fce18aef58f72dff6894e3d893f44f787bf94a on karjonas:use_override_specifier into cea951f0d7ad0dfa6875878bb5faea0d0265334b on newsboat:master.

Coverage decreased (-0.6%) to 35.81% when pulling 48fce18aef58f72dff6894e3d893f44f787bf94a on karjonas:use_override_specifier into cea951f0d7ad0dfa6875878bb5faea0d0265334b on newsboat:master.

Coverage decreased (-0.6%) to 35.81% when pulling 48fce18aef58f72dff6894e3d893f44f787bf94a on karjonas:use_override_specifier into cea951f0d7ad0dfa6875878bb5faea0d0265334b on newsboat:master.

Coverage decreased (-0.6%) to 35.81% when pulling 48fce18aef58f72dff6894e3d893f44f787bf94a on karjonas:use_override_specifier into cea951f0d7ad0dfa6875878bb5faea0d0265334b on newsboat:master.

Coverage decreased (-0.7%) to 35.727% when pulling f1b5b9278f0dca2f1f01b4ce9182b1132f9b2505 on karjonas:use_override_specifier into cea951f0d7ad0dfa6875878bb5faea0d0265334b on newsboat:master.

Coverage decreased (-0.7%) to 35.727% when pulling f1b5b9278f0dca2f1f01b4ce9182b1132f9b2505 on karjonas:use_override_specifier into cea951f0d7ad0dfa6875878bb5faea0d0265334b on newsboat:master.

Cool; thanks a lot!
Feel free to submit more code-modernizing PRs; I'm generally in favour of those. Though if it requires a lot of manual labor, maybe open an issue first so you don't waste your time.


Need more Sample Scripts

Need more Sample Scripts here beyond just IaaS, more around AAD, enterprise application configuration, etc.

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

ID: d28323e6-8990-2a05-ca82-49dd2d1f5e98
Version Independent ID: 1068f896-b7a8-de23-ebe6-c03aad0398c9
Content: Overview of Azure PowerShell
Content Source: docs-conceptual/azurermps-6.8.1/overview.md
Product: powershell
GitHub Login: @sptramer
Microsoft Alias: sttramer

@msilinda Without specific requests, this is not an actionable report. Please contact me internally if there are specific samples or information that somebody is looking for.


Eyre does not honor Clay permissions

As noted by @ohAitch in a comment on https://github.com/urbit/arvo/issues/656, Eyre does not honor the Clay permissions. It should not serve files if the requesting user does not have permission. This is a security hole at the moment.

Heh, I was just about to go make this.
Note that when this gets implemented, we'll want to set appropriate default permissions for /web and its contents on boot/eyre-startup, and/or have eyre print a warning when |serveing a path for which permissions have been set to fully private.

Does fully private need a warning? Seems like a reasonable setting for diaries and other personal files.

Right, fully private is iirc still accessible by the owner, so that's valid then. Never mind me there.


Sync resets and new sync key is generated

When I switch devices, my settings reset and my sync key changes.
The portable version on https://portapps.io/app/brave-portable/ does not show this behavior.
I use brave on an encrypted veracrypt volume.
Thanks for your effort.

Hi @legymhueck
Is a problem solved ?


Init action for installing ops agent

With Dataproc 2.2, we recommend installing ops agent for VM system metrics as well as third party application observability. See release note: https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-release-2.2
This PR provides an init action for installing Ops Agent.

/gcbrun


support for multiple mints/tokens in one tokens

closes #31

It's not pretty, but okay so far. Maybe we'll come up with something more elegant later.

perfect is the enemy of the good


Make the correlation data download filename configurable

TEA prefix was removed. Now the file name is expr_geneName_cf70.txt, where 70 is variable for the selected correlation coeficient and geneName is variable for the selected gene name.


Admin import function of project data

We need a way to import long lists of projects that we know are not already within the system. For example, as we meet with faculty about their engaged work they report through alternative systems it is very time consuming to organize and enter 100's of projects at the end of every semester.
The import function has been a part of the important needs since the beginning. Is this possible for the capstone or @MansiKamthan to assist with?
We would need to determine if excel would fit, formatting and order of columns.

The spreadsheet for bulk import is available. The file format is only importable in xls.
https://unomail-my.sharepoint.com/:x:/r/personal/spawaskar_unomaha_edu/Documents/School/Teaching/Classrooms/23SP ISQA8950-002-MIS Capstone-CEPI/23SP-ISQA8950-002-Student Folder/Capstone Project Documentation/Sprint Deliverables/Sprint 2/Data Entry Import Sheet.xls?d=w83acdb6294b3425885b7fa378d5a91c8&csf=1&web=1&e=fpEpcR


ORC-1431: Use parquet to 1.13.1 in bench module

What changes were proposed in this pull request?
This PR aims to use Apache Parquet 1.13.1 in bench module.
Why are the changes needed?
Apache Parquet 1.13.1 is released.

https://parquet.apache.org/blog/2023/05/18/1.13.1/

How was this patch tested?
Pass the CIs.

Since this is a kind of test module change, let me merge this.

This is backported to branch-1.9 to match with Apache Spark 3.5.0 in ORC-1505


is this a bug?

why?

Duplicate of #254.

Thanks @xywz for pointing to that other issue, closing this out.

I didn't used jquery in electron . This error happened in mainwindow.load(mywebsite) and the page is normal in browser (chrome)

@CarlosRen You doesn't use jQuery in your electron app  but your website does. The issue #254 explain why this occurs in detail. In short,  you should either set nodeIntegration  to false when create a BrowserWindow  instance or use something like webpack to bundle javascript file used in your website.

@plrthink thanks, it's my fault, i didn't finish the reading


how can install it with out composer on my host?

i am poor in php programming and in english please tell me how to install it on my host with out composer?

first,install composer in your desktop.then get the SDK and install it in your local system in a directory.then you can simply compress the full directory and upload it to your host and use it.


⚠ Cioos National CKAN has degraded performance

In 1ab77cb, Cioos National CKAN (https://catalogue.cioos.ca/) experienced degraded performance:

HTTP code: 200
Response time: 16734 ms

Resolved: Cioos National CKAN performance has improved in d41f6c2 after 12 minutes.


Add timezone to quota

Because, right now, it's impossible to tell the timezone that the bot expects

The intent was for the timezone (when setting the time that the quotas will be reset) to be GMT. However, it looks like the bot is calculating the timezone again for GMT, resulting in the GMT timezone being applied twice when displayed on the embed.


About the use

Please it is possible to have a short information about how to install it? (The actual version gives me "rake aborted!") see this: https://github.com/Albacore/albacore/issues/136

You need to be using a 1.0 version of albacore for the rake task to work.
The typical way of using would be through Nuget.  http://www.nuget.org/packages/Fleck/
You can also download artifacts from the latest CI build. http://build.fubu-project.org/viewType.html?buildTypeId=bt21
You can also build it yourself by just opening the src/Fleck.sln with visual studio and building it.


Issue-031 :  About Us Cards

Created cards to showcase our team and what Alahele is about.

close #<31>


discover displays MAC address instead of id

Thanks for the work on this. I gave it a try, but running into a small issue….
When I run „discover“ it displays the MAC addresses of the device instead of the ble-id.
Running dump with the full MAC (including ‚:‘) works fine, running it without ‚:‘ does not display any data.
Therefore the „read“ command does not work properly. If you use the MAC address in the read (with ‚:‘) it failed because the invalid parameters, without ‚:‘ it does not deliver any data. Same if I use the ble-id.
`
oscar@calipi:$ victron-ble -v discover
INFO:victron_ble.scanner:D7:70:BA:8E:59:A2: California Solar
INFO:victron_ble.scanner:C8:ED:93:A4:7B:7D: California Batterie
INFO:victron_ble.scanner:71:29:C9:E4:E0:B8: DumboVRM
INFO:victron_ble.scanner:FD:20:7C:A2:A9:8C: California BatSense
INFO:victron_ble.scanner:D1:DB:69:2F:5E:79: Dumbo SmartShunt
^C
Aborted!
oscar@calipi:$ victron-ble dump FD:20:7C:A2:A9:8C
INFO:victron_ble.scanner:Dumping advertisements from FD:20:7C:A2:A9:8C
INFO:victron_ble.scanner:1671869618.4015198      : 1000a4a302bf72909828d92108a659ce376726090e2e23
^C
Aborted!
oscar@calipi:$ victron-ble dump FD207CA2A98C
INFO:victron_ble.scanner:Dumping advertisements from FD207CA2A98C
^C
Aborted!
oscar@calipi:$ victron-ble read "FD:20:7C:A2:A9:8C:906892428dfd869e50e65bc3544e2dfa"
Usage: victron-ble read [OPTIONS] [DEVICE_KEYS]...
Try 'victron-ble read --help' for help.
Error: Invalid value for '[DEVICE_KEYS]...': FD:20:7C:A2:A9:8C:906892428dfd869e50e65bc3544e2dfa is not a valid : pair
oscar@calipi:$ victron-ble read "'FD:20:7C:A2:A9:8C':906892428dfd869e50e65bc3544e2dfa"
Usage: victron-ble read [OPTIONS] [DEVICE_KEYS]...
Try 'victron-ble read --help' for help.
Error: Invalid value for '[DEVICE_KEYS]...': 'FD:20:7C:A2:A9:8C':906892428dfd869e50e65bc3544e2dfa is not a valid : pair
oscar@calipi:$ victron-ble read "FD207CA2A98C:906892428dfd869e50e65bc3544e2dfa"
INFO:victron_ble.scanner:Reading data for ['fd207ca2a98c']
^C
Aborted!
oscar@calipi:$ victron-ble read "d6f1d6e7-34a4-c254-d013-c71e119513fa:906892428dfd869e50e65bc3544e2dfa"
INFO:victron_ble.scanner:Reading data for ['d6f1d6e7-34a4-c254-d013-c71e119513fa']
`

I'm working on a pull request....

Ah, I've been testing on OSX where the mac address is hidden, I didn't realize the mac on other platforms includes the colon. The switch to a different delimiter in your PR makes a lot more sense now, but let's pick something besides the pipe.

Maybe the easiest way would be to use two parameters instead of a delimiter between address and keyAm 24.12.2022 um 21:51 schrieb Keshav Varma @.***>:
Ah, I've been testing on OSX where the mac address is hidden, I didn't realize the mac on other platforms includes the colon. The switch to a different delimiter in your PR makes a lot more sense now, but let's pick something besides the pipe.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>

I switched to the @ symbol in the latest release so hopefully that lets you get around this. I tried to keep it as one parameter so that you can pass multiple id@key pairs and it will display all of them in the same stream.

Hi, I opened an issue this morning and I think it comes down to a similar problem. The mac-address somehow produces an error. I tried multiple ways of formatting and nothing seems to work. Maybe someone has an idea :)
Here's my dumb from the terminal:
`victron-ble read 'f3:b8:a5:fd:b2:86@bdda8b53137339b45e9330be8c7bf70'
INFO:victron_ble.scanner:Reading data for ['f3:b8:a5:fd:b2:86']
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
ERROR:root:A message handler raised an exception: non-hexadecimal number found in fromhex() arg at position 31.
Traceback (most recent call last):
File "src/dbus_fast/message_bus.py", line 811, in dbus_fast.message_bus.BaseMessageBus._process_message
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 834, in _parse_msg
self._run_advertisement_callbacks(
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/manager.py", line 878, in _run_advertisement_callbacks
callback(device_path, device.copy())
File "/home/pi/.local/lib/python3.9/site-packages/bleak/backends/bluezdbus/scanner.py", line 279, in _handle_advertising_data
self._callback(device, advertisement_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
self.callback(device, data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/scanner.py", line 107, in callback
parsed = device.parse(raw_data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 421, in parse
decrypted = self.decrypt(data)
File "/usr/local/lib/python3.9/dist-packages/victron_ble/devices/base.py", line 405, in decrypt
advertisement_key = bytes.fromhex(self.advertisement_key)
ValueError: non-hexadecimal number found in fromhex() arg at position 31
^C
Aborted!
`


test with other base images too, including VMware Photon OS

Too many queued items. Moving this to the next release train.

This is already done.
Closing.


Fix initialReport for readClient when involving chunk scenario during post-subscription.

this seems to be problematic, currently mInitialReport  in readClient is set to true in init and shutdown, then after receiving the initial priming report, it is set to false. During subscription, for every beginning report and end report, it needs to call OnReportBegin and OnReportEnd, then recover the mInitialReport to true for next round...
before this PR, IsInitialReport() is used to get the subscriptionid, I suggest to have IsPrimingReport for this purpose, then make isInitialReport for chunking report begin purpose.
Originally posted by @yunhanw-google in https://github.com/project-chip/connectedhomeip/pull/12071#r754730422

https://github.com/project-chip/connectedhomeip/pull/12443,resolved


Cache TaskGroup/DAG  regardless of the load_method

Context
PR #904 introduced the first caching implementation in Cosmos on top of the previously implemented support for partial parsing (#800).
Although these changes contributed significantly to the performance of Cosmos, this approach does not improve the DAG parsing performance for methods other than dbt ls. In those cases, Cosmos will still:

parse the project, manifest, or dbt ls command
select nodes based on selectors given by the user

During DAG parsing - which happens at the Airflow DAG Processor and is executed every time a task is scheduled/run.
This task aims to extend the cache support to allow the cache of the complete DAG/TaskGroup, without the need to do the two previously described steps.
Acceptance criteria

[ ] Create a function to evaluate if there were no changes to the dbt project or to the Airflow DAG
[ ] Allow users to define their own caching function
[ ] Support caching the DAG/TaskGroup into a pickle file
[ ] Use the caching function to decide if Cosmos should load the DAG/TaskGroup from the cache or if the DAG/TaskGroup should be recreated (saving the new cache on disk)
[ ] Run performance test when using load_method=LoadMode.DBT_MANIFEST

Progress can be seen in draft PR: https://github.com/astronomer/astronomer-cosmos/pull/992

I explored and validated a few possible ways of quickly generating the "version" of the cache. Some are safer than others, the idea was to get a sense of cost/benefit:
"""
How to run script:

pip install checksumdir  # https://pypi.org/project/checksumdir/
python hash_comparison.py --path your/dbt/project

python cosmos/hash_comparison.py --path  dags/dbt/perf
Comparing hash methods pm a directory with 5009 files
- create_hash_with_checksumdir_md5        : 0.2171382334
- create_hash_with_checksumdir_sha1       : 0.1730406
- create_hash_with_checksumdir_sha256     : 0.17227659160000003
- create_hash_with_dir_size               : 0.05859905000000003
- create_hash_with_file_changes           : 0.03936836659999994
- create_hash_with_most_recently_changed  : 0.10243044999999995
- create_hash_with_sql_changes            : 0.03878682500000004
- create_hash_with_subprocess_du          : 0.014803133400000057
- create_hash_with_walk_files_md5         : 0.14606525
- create_hash_with_walk_files_size        : 0.024191108199999967
"""
import argparse
import hashlib
import inspect
import os
import subprocess
import sys
import timeit
from pathlib import Path

import checksumdir

ROOT_DIR = Path(".")
ROOT_DIR = Path("./dags/dbt/jaffle_shop")
REPETITIONS = 5

def create_hash_with_dir_size(dir_path: Path) -> int:
    return sum(f.stat().st_size for f in dir_path.glob('**/*') if f.is_file())

def create_hash_with_most_recently_changed(dir_path: Path) -> str:
    value = subprocess.run(
        f'find {dir_path} -type f -print0 | xargs -0 stat -f "%m %N" | sort -rn | head -1',
        text=True,
        stdout=subprocess.PIPE,
        check=True,
        shell=True
    )
    return value

def create_hash_with_subprocess_du(dir_path: Path) -> str:
    value = subprocess.run(
        f"du -s {dir_path}",
        text=True,
        stdout=subprocess.PIPE,
        check=True,
        shell=True
    )
    return value.stdout.strip()

def create_hash_with_walk_files_size(dir_path: Path):
    return sum(
        sum(
            os.path.getsize(os.path.join(walk_result[0], element))
            for element in walk_result[2]
        )
        for walk_result in os.walk(dir_path)
   )

def create_hash_with_walk_files_md5(dir_path: Path) -> str:
    hasher = hashlib.md5()
    for walk_result in os.walk(dir_path):
        for element in walk_result[2]:
            filepath = os.path.join(walk_result[0], element)
            with open(str(filepath), 'rb') as fp:
                buf = fp.read()
                hasher.update(buf)
    return hasher.hexdigest()

def create_hash_with_file_changes(dir_path: Path) -> float:
    return sum([path.stat().st_mtime for path in dir_path.glob('**/*')])

def create_hash_with_sql_changes(dir_path: Path) -> float:
    return sum([path.stat().st_mtime for path in dir_path.glob('**/*.sql')])

create_hash_with_checksumdir_md5 = lambda dir_path: checksumdir.dirhash(str(dir_path), 'md5')
create_hash_with_checksumdir_sha1 = lambda dir_path: checksumdir.dirhash(str(dir_path), 'sha1')
create_hash_with_checksumdir_sha256 = lambda dir_path: checksumdir.dirhash(str(dir_path), 'sha256')

if __name__ == "__main__":
    parser = argparse.ArgumentParser("hash_comparison")
    parser.add_argument("--path", help=".", type=Path, default=ROOT_DIR)
    args = parser.parse_args()

    total_files = len([path for path in args.path.glob('**/*') if path.is_file()])
    print(f"Comparing hash methods pm a directory with {total_files} files")

    current_module = sys.modules[__name__]
    functions_to_test = inspect.getmembers(current_module, inspect.isfunction)
    for function_name, function in functions_to_test:
        average_time = timeit.timeit(
            lambda: function(args.path),
            number=REPETITIONS
        ) / REPETITIONS
        print(f"- {function_name: <40}: {average_time}")

So far, it seems create_hash_with_file_changes is one of the most accurate and light weight approaches. I strongly believe we should allow users to customise the method used to calculate the version, but this may be a good default for Cosmos.

I extended the initial implementation to:

Version the DbtDag cache in 0db7121
Extend the caching mechanism to DbtTaskGroup in daad0b3

I also updated the PR description with what is missing:

Allow users to customise their own calculate_current_version
Refactor so there isn't so much code duplicate between DbtDag and TaskGroup
Allow users to purge the cache (via env var or param passed in the Airflow UI - second option is probably preferable)
Unify _create_cache_identifier and create_cache_identifier_v2
Write tests

When using this approach in a distributed environment, there are two challenges:

concurrent tasks try to create the cache at the same time
when an Airflow node that didn't warm up the cache tries to run a task for that Cosmos DAG/task group, time is spent doing this

We'll look into possibilities for this.

Putting this approach on hold, since we're seeing better results with caching dbt ls output as an Airflow Variable: #1014

I believe this is no longer relevant since we implemented https://github.com/astronomer/astronomer-cosmos/pull/1014, so I'm closing it. We can revisit in future, if needed.


add radius parameter for the geocoder

Take benefits of https://github.com/CanalTP/mimirsbrunn/pull/417 to allow a larger focus mode with larger zoom levels.
The endpoint autocomplete takes a new optional parameter zoom to pass the current zoom level of the front-end, which is used to decide the typical expected distance of results. I am using this branch of erdapfel to test this change:

Z = 3
Z = 5
Z = 7
Z = 9
Z = 11

Maybe some of the logic should be moved in erdapfel?
The correspondence between zoom level and radius parameter of the geocoder is defined in this PR, but one could argue that it should be implemented in the front end:

we could decide to set a shorter radius at equivalent zoom level on smaller devices
this doesn't really play well with erdapfel setting its minimum zoom value for the focus, this is probably a behavior we want to keep in order not to affect the cache efficiency.

we could decide to set a shorter radius at equivalent zoom level on smaller devices

Interesting point… Sending the device size to the server would feel probably too much like device fingerprinting, but we could send the visible bbox as another parameter?
It seems there are many approches to this problem, but as this PR adds more intelligence on the server, this is probably where we should continue building stuff instead of splitting the logic between both sides.

this doesn't really play well with erdapfel setting its minimum zoom value for the focus, this is probably a behavior we want to keep in order not to affect the cache efficiency.

I don't know enough the back-end constraints, but I'm not sure cache was the main reason for it.
What level of cache are we talking about anyway?

Interesting point… Sending the device size to the server would feel probably too much like device fingerprinting, but we could send the visible bbox as another parameter?

That should probably work, I don't think that it would be a critical improvement that we want to implement right now anyway.
It is also interesting that a bbox is more concrete concept than an arbitrary definition of zoom.

It seems there are many approches to this problem, but as this PR adds more intelligence on the server, this is probably where we should continue building stuff instead of splitting the logic between both sides.

Yeah that's one of the reasons why I naturally implemented it here without thinking about it.

I don't know enough the back-end constraints, but I'm not sure cache was the main reason for it.
What level of cache are we talking about anyway?

Actually, this setting previously existed because the front-end was in charge of enabling the focus (by sending lat/lon). We could just remove this setting in order to always send lat/lon/zoom to Idunn. If the cache is of any concern we should make sure that we send less precise coordinates with higher levels of zoom, and we would probably be fine.

Should be fine now :)


Ability to deploy a service mesh pattern

Epic: Service Mesh Patterns
Meshery needs to the ability to interpret a service mesh pattern, describe service mesh configuration, application workload, and pattern behavior.
Prologue
Operating service meshes can be challenging. How do you know if you're doing it right?
this write up is incomplete and will be flushed out later
Implementation
mesheryctl pattern apply -f <path to the pattern>

Acceptance Tests

Mockups

I added another sample pattern to https://docs.meshery.io/functionality/pattern-management


how to prevent fast click on a button?

how to prevent fast click when I use the annotation @OnClick  on a button ?

Disable the button after the first click.
On Sun, Jul 2, 2017, 10:38 AM 李志敏<EMAIL_ADDRESS>wrote:

how to prevent fast click when I use the annotation @OnClick
https://github.com/onclick on a button ?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/JakeWharton/butterknife/issues/1000, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAEEEd1EA_EczBFCi6wpFIcOhnW_MNSmks5sJ6tggaJpZM4OLmaY
.


Implement File API

Pertains to https://www.notion.so/Implement-API-file-uploads-87652f96c3e84aef9c466134d1587882
Waiting on https://www.notion.so/Create-a-containerized-devbox-for-external-dependencies-626904e3d1ae4ff2804e2d53ff2eb8d4 because I need an SFTP server to test with

Still a WIP

Closing due to inactivity 😢


feat(bundler): support building AppImage without FUSE

What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Docs
[ ] New Binding issue #___
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change?

[ ] Yes, and the changes were approved in issue #___
[ ] No

Checklist

[ ] When resolving issues, they are referenced in the PR's title (e.g fix #___, #___)
[x] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
[ ] I have added a convincing reason for adding this feature, if necessary

Other information

For what it's worth, shellcheck isn't happy with this change. But i guess the output of lsmod is not too bad for this to really matter.

We'll resolve other lint issues next week.


[Removed] console debuggings

from the createPages.js

if it's there, it's probably intentional.


[DOR-84][AO] add import mandatory vessel details page

This PR covers adding mandatory vessel details page for import request type of Hold, and requiring mandatory vessel details for export request type of Hold, C1601, C1602


Add an exception for thirdparty subdirectories in file_format.sh

This exception is also present in clang_format.sh and is needed in some cases.
I stumbled upon this while working on #68586, as a platform-specific third party header had more sense to stay there and clang_format.sh already ignored it.

Thanks!

Cherry-picked for 3.6.


PowerShell: backslash is not an escape character in a double quoted string

Backslash is not an escape character in a PowerShell string, but Prettify thinks it is.
A string like "D:\SplittedFunction\" is fine, but Prettify cannot tell that it has ended. This breaks highlighting for all the following code, which is coloured as if it was a string literal. e.g. http://stackoverflow.com/a/40267174/478656 shows the problem.
(The escape character is a backtick; see also: about_Quoting_Rules and about_Escape_Characters).

FYI, there is no specific language handler for Powershell, it is being highlighted by the default language handler.

There's a request for PowerShell support in #295 .
Suggest closing this ticket / tracking progress under the above.

@HumanEquivalentUnit Backslash is considered an escape character in special cases, like if you turn off the parser i.e. --% when calling external cli tools


Can download torrent from magnet link?

Hi, I am wise, I am from Indonesia, I want to download torrent magnet links, can ttorrent do that, ttorrent indeed I think is very portable because it is based on java, but if I want to download the torrent file, I have to download a torrent file it first through magnetlink with uTorrent on my laptop, copy the torrent file, then I will use ttorrent with linux server that I have with the torrent to download, if there is a solution on this matter? please email me at<EMAIL_ADDRESS>

Any update on this?


[CI] docker build should check file exist

Motivation
Updated the docker builder to check if the docker file exists before
triggering the build.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
To be canaried in Circle.

@bors-libra r+

:pushpin: Commit 51c29b7 has been approved by andll

:hourglass: Testing commit 51c29b74ad8d8dc11fa0b60706d470ccab190f23 with merge d87c3edd01e31febe039f3fe525fb7127ee1828b...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: andll
Pushing d87c3edd01e31febe039f3fe525fb7127ee1828b to master...


Database has some records stored as comma seperated value and it might cause issues when looking

Can this be split into two seperate records with same panel id. Since the db was created using panel id as the primary key, this will now also needs to be changed to account for duplications.
Best place to do is in database prework where u have the latest panel versio. csv and make sure to seperate them in the file then create another db but this time make primary key autoincriment.

@OllieGYoung Please work in the BED branch as this is now the most up to date


[Help] - advice on how to modify code for research

Hey,
I am researching methods of improving tree based predictions. I have various schemes I would like try for fitting leaf scores. What would be the recommended approach to modify the source code such that I could use the generated trees but modify the eventual leaf scores? My preference would be to use only R/Python ,  even somewhat at the cost of speed (as this is mainly theoretical as this point). If this is not possible, I could also modify the underlying C/C++ code, but prefer to test new hypothesis without recompiling the source code.
thanks,
Dan

@dancaspi
you can use these two c_api to edit leave output vaules: https://github.com/Microsoft/LightGBM/blob/master/src/c_api.cpp#L1065-L1083

@guolinke  Wow thanks for the quick reply. much appreciated!


Difference between TextareaCache and TextareaCache Lite?

Can you explain the difference between TextareaCache and TextareaCache Lite?
Might be useful info for the README and the AMO description too.

Would be cool to have some explanation. thx

The author of TC(Hemiola SUN) was stopped maintain it. TC is a legacy extension base-on XUL overlay that will stop support after Firefox 57 (the end of 2017).
wildsky carated an new add-on TCL to re-implement main features of TC. If the feature you need are not support yet, waitting for update. If all the features you need are already support by TCL, you can switch to TCL and start use it.
Finally, TCL will support most of features and update continuously. Install TCL and test it, please feel free to give us your feedback, thanks.

@ettoolong Thank you!
So this is a WebExtensions implementation of TC, correct?
If you would like me to write a good explanation for AMO for you to post, just ask, and I will be happy to do it for you.

Yes, TCL is base-on WebExtension APIs.


hal: dma: Cast channel index in claim_unused_channel

i is usize but channel() expects a u4.

Please make the PR to the main repository: https://github.com/ZigEmbeddedGroup/microzig


External logins - process callback error redirect

I am using facebook as an external login. Currently based on my configurations, upon clicking "Okay" and approving access to the FB app, I am redirected back to my ASP.NET site callback action and I am able to get the external login info using **GetExternalLoginInfoAsync() **.
The problem I am facing is that, during the approval process, if I click the ** "Cancel"** I am redirected to my ASP.NET site with the redirect not being processed. The resulting URL is,
http://localhost:57636/signin-facebook?error=access_denied&error_code=200&error_description=Permissions+error&error_reason=user_denied&state=CfD....
Looking at my browser network log, I see that there is a status code 500 with Internal Server error. Does this mean I have not configured my startup configs properly? If not how would it be possible for me to get the callback action invoked with the remoteError parameter populated as in the sample application provided?
Your help is much appreciated.

This behavior is by design, if you click cancel fb auth fails as you'd expect and that is clear from the errors in the query string "access_denied", error_reason= "user_denied"

Note if you want to handle the cancel in some way, you can hook the OnRemoteError event and look for the error_reason of user_denied to do something special...
Configure the FacebookOptions.Events
                Events = redirect ? new OAuthEvents()
                {
                    OnRemoteFailure = ctx =>
                    {
                        // do something when ctx.Failure.Message contains "user_denied"
                        ctx.HandleResponse();
                        return Task.FromResult(0);
                    }
                } : new OAuthEvents()


Use facebook for login

Using facebook creates a new user associated with the facebook user id and :facebok provider


[#9] Integrate communication module

Context:
In order to send messages from the webapi it is needed to implement a communication module
To do:

TDD: create tests
Integrate user-created-handler in core/4.main/config/set-handlers

Codecov Report

Merging #26 (dbf5023) into main (b4474d5) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #26   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           94        94
  Lines          955       984   +29
  Branches        76        82    +6
=========================================
+ Hits           955       984   +29

Impacted Files
Coverage Δ

...mmunication/email/nodemailer/nodemailer-adapter.ts
100.00% <ø> (ø)

src/core/0.domain/events/domain-events.ts
100.00% <100.00%> (ø)

...ion/1.application/handlers/user-created-handler.ts
100.00% <100.00%> (ø)

...pplication/use-cases/authenticate-user-use-case.ts
100.00% <100.00%> (ø)

....application/use-cases/change-password-use-case.ts
100.00% <100.00%> (ø)

...er/1.application/use-cases/create-user-use-case.ts
100.00% <100.00%> (ø)

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


Understanding the correlation layer

Hey everyone,
I do not understand the impact of the stride parameter for the mxnet.sym.correlation layer. I have this simple minimal example:
import numpy as np
import mxnet as mx

# Network
data1 = mx.symbol.Variable('data1')
#data2 = mx.symbol.Variable('data2')
cor = mx.sym.Correlation(data1=data1, data2=data1, kernel_size=28, stride1=1, stride2=1, pad_size=0, max_displacement=0)
loss = mx.sym.MakeLoss(cor, normalization='batch')
group = mx.symbol.Group([mx.sym.BlockGrad(cor), loss])

# Data
datashape = (1, 1, 28, 28)  # like mnist
data = np.random.rand(1, 1, 28, 28)

#Bind, execute, get computed correlation
executor = group.simple_bind(ctx=mx.cpu(), data1=datashape)
outs = executor.forward(is_train=True, data1=data)
cor = executor.outputs[0]
grad1 = executor.outputs[1]
print(cor)

It computes the correlation between 2 identical feature maps with a kernel of the same size as the feature maps. I do not understand why the output of the correlation layer has shape 1x1x2x2. If I set the strides to anything bigger than 1, the output is a 1x1x1x1 matrix, that makes more sense to me. As the Kernel has the size of the feature maps, the output should always be a 1x1x1x1 matrix, independent from the value of the strides parameters!
The documentation notes

Given a maximum displacement :math:d, for each location :math:x_{1} it computes correlations :math:c(x_{1}, x_{2}) only in a neighborhood of size :math:D:=2d+1,
by limiting the range of :math:x_{2}. We use strides :math:s_{1}, s_{2}, to quantize :math:x_{1} globally and to quantize :math:x_{2} within the neighborhood
centered around :math:x_{1}.
The final output is defined by the following expression:

.. math::
  out[n, q, i, j] = c(x_{i, j}, x_{q})

where :math:`i` and :math:`j` enumerate spatial locations in :math:`f_{1}`, and :math:`q` denotes the :math:`q^{th}` neighborhood of :math:`x_{i,j}`.

Unfortunately I do not really understand from this the impact of the strides parameter, as s_1 and s_2 do not appear in the equation.
Furthermore, if you just run the code a couple of times you will notice that the correlation matrix sometimes contains "Infinity" values. I do not understand mathematically or conceptually how the correlation can be infinity.
Any help is much appreciated.

kernel_size must be odd number, otherwise strange things happen! It's mentioned in the docs string, but I think it would be better for this to be added as strict validation to avoid confusion like this in the future.
With regards to the stride (once a odd kernel_size is used), stride1 relates to the striding on the data1 feature map 1 and stride2 relates to the striding within the 'neighborhood' defined on feature map 2. Without a neighborhood this method would compare all patches from feature map 1 with all patches from feature map 2. With large feature maps, the number of comparisons becomes too large, so we restrict to a region in feature map 2 centered around the corresponding location of the patch in feature map 1. And stride2 strides within this neighborhood region.
I recommend taking a look the 'FlowNet: Learning Optical Flow with Convolutional Networks' paper that defined this type of layer.

@dsqx71, @sxjscience, @eric-haibin-lin it would be good to get some input validation on kernel_size here to avoid this issue in the future.

@sandeep-krishnamurthy can we now retag, thanks! I think Bug and Operator are the most appropriate tags.

@mxnet-label-bot : [Bug, Operator]


[pt-br] fix content/pt-br/docs/concepts/scheduling-eviction/pod-overhead.md

This is one of the pages I found, the contents are from the v1.18.
/assign sftim

/unassign
I'm a tech lead for SIG Docs but I'm not a reviewer for Portuguese.

439 commits? Doesn't look right.
/hold
Other contributors: please only unhold once any problems so far with this PR are all clear.

Given the status of the PR, I'd close it so that the author can open a clean one.
/close

/remove-area blog
/remove-language de en es ja ko pl zh


running from source, sqlite3 "no column named content"

Just cloned todo, installed python3, test.py got no error, but when I tried to add one todo item, it complains  "no column named content".
Do you know how should I fix this? Thanks.

WangXus-MacBook-Pro:source wangxu$ ./test.py
* Unit tests
..............
----------------------------------------------------------------------
Ran 14 tests in 0.010s

OK
WangXus-MacBook-Pro:source wangxu$ ./todo.py
WangXus-MacBook-Pro:source wangxu$ ./todo.py add "fix the stuff"
Traceback (most recent call last):
  File "./todo.py", line 5, in <module>
    main()
  File "/Users/wangxu/Documents/github/todo/source/todo/todo.py", line 128, in main
    result = dispatch(args, daccess)
  File "/Users/wangxu/Documents/github/todo/source/todo/todo.py", line 396, in dispatch
    return DISPATCHER[args['command']](args, daccess)
  File "/Users/wangxu/Documents/github/todo/source/todo/todo.py", line 173, in add_task
    id_ = daccess.add_task(title, content, context, options)
  File "/Users/wangxu/Documents/github/todo/source/todo/data_access.py", line 226, in add_task
    c.execute(query, values)
sqlite3.OperationalError: table Task has no column named content
WangXus-MacBook-Pro:source wangxu$ ls -al .toduh
total 64
drwxr-xr-x   4 wangxu  staff    128 Jul  7 12:23 .
drwxr-xr-x  10 wangxu  staff    320 Jul  6 21:40 ..
-rw-r--r--   1 wangxu  staff  28672 Jul  7 12:18 data.sqlite
-rw-r--r--   1 wangxu  staff      3 Jul  7 12:18 version
WangXus-MacBook-Pro:source wangxu$

Finally I tried
pip3 install todocli

However it was not fixed.

WangXus-MacBook-Pro:~ wangxu$ todo
WangXus-MacBook-Pro:~ wangxu$ todo add "fix the stuff"
Traceback (most recent call last):
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/bin/todo", line 10, in <module>
    sys.exit(main())
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/todo/todo.py", line 128, in main
    result = dispatch(args, daccess)
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/todo/todo.py", line 396, in dispatch
    return DISPATCHER[args['command']](args, daccess)
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/todo/todo.py", line 173, in add_task
    id_ = daccess.add_task(title, content, context, options)
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/todo/data_access.py", line 226, in add_task
    c.execute(query, values)
sqlite3.OperationalError: table Task has no column named content
WangXus-MacBook-Pro:~ wangxu$

Hello,
Thanks for reporting this issue. Could you post the output of the following commands please:

todo --version
cat .toduh/version
sqlite3 .toduh/data.sqlite '.schema task'

Thanks!

Thank for quick response and for the cli todo app. I like it.
I figured out the root cause is in init_db.py, there is one SQL statement
	INSERT INTO `Context` (path) VALUES ('')

Which fails silently during update_database. I fixed it by set isolation_level=None in my clone and made one pull request.
Anyway please find below the output of my PIP3 installation.
WangXus-MacBook-Pro:source wangxu$ todo --version
3.2
WangXus-MacBook-Pro:source wangxu$ cd
WangXus-MacBook-Pro:~ wangxu$ cat .toduh/version
3.2WangXus-MacBook-Pro:~ wangxu$ sqlite3 .toduh/data.sqlite '.schema task'
CREATE TABLE `Task` (
		`id`	INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
		`title`	TEXT NOT NULL,
		`created`	TEXT NOT NULL DEFAULT (datetime('now')),
		`deadline`	TEXT,
		`start`	TEXT NOT NULL DEFAULT (datetime('now')),
		`priority`	INTEGER NOT NULL DEFAULT 1,
		`done`	TEXT,
		`context`	INTEGER NOT NULL REFERENCES Context(id) ON DELETE CASCADE
	);
WangXus-MacBook-Pro:~ wangxu$

I have this issue too.

Also tried fresh install and just typing "todo add test" using py3.7.3 and the latest todocli on pypi.  Same error on raspbian

@xu4wang Thank you for your contribution! The fix is available in version 3.2.1.

@xu4wang Thank you for your contribution! The fix is available in version 3.2.1.

thank you!  :-)


How about adding clj-reload in :dev?

Please answer the following questions and leave the below in as part of your PR.

[ ] This PR corresponds to an issue with a clear problem statement.

No issue covers this PR.

[ ] I have updated the CHANGELOG.md file with a description of the addressed issue.

I don't think adding a library for local development warrants a CHANGELOG entry.

[ ] I have considered whether I should add more tests covering the code I've changed.

I don't think adding a library for local development warrants adding more tests.

I've become accustomed to have tonsky/clj-reload available in the development profile. I missed clj-reload yesterday specifically to unload tests that no longer exist in the source files.
What do you think, is it OK to add clj-reload in local development?

I'm fine with this only if you're not forced to use it. Is that the case?

Yes—This PR only puts the dep on the classpath, no need to use the :dev alias or use the dependency if you don't want to.
I don't think introducing a "forced way to reload Neil" is helpful; it's a small code base with no in-memory state, just being able to start a REPL and work is enough for me.


Rules breaking in 3.1.2

Something in these changes broke my eslinting. I'm using the eslint-loader for webpack as well. I'm not certain what the core issue is, but here's the error I'm seeing:
ERROR in ./app/components/index.js
Module build failed: TypeError: Cannot read property 'value' of undefined
    at EventEmitter.detectOpenSpaces (/Users/kentcdodds/Developer/alianza/atac5/node_modules/eslint/lib/rules/no-spaced-func.js:18:34)
    at emitOne (events.js:82:20)
    at EventEmitter.emit (events.js:166:7)
    at Controller.controller.traverse.enter (/Users/kentcdodds/Developer/alianza/atac5/node_modules/eslint/lib/eslint.js:726:25)
    at Controller.__execute (/Users/kentcdodds/Developer/alianza/atac5/node_modules/eslint/node_modules/estraverse/estraverse.js:393:31)
    at Controller.traverse (/Users/kentcdodds/Developer/alianza/atac5/node_modules/eslint/node_modules/estraverse/estraverse.js:491:28)
    at EventEmitter.module.exports.api.verify (/Users/kentcdodds/Developer/alianza/atac5/node_modules/eslint/lib/eslint.js:719:24)
    at processText (/Users/kentcdodds/Developer/alianza/atac5/node_modules/eslint/lib/cli-engine.js:227:23)
    at CLIEngine.executeOnText (/Users/kentcdodds/Developer/alianza/atac5/node_modules/eslint/lib/cli-engine.js:338:22)
    at lint (/Users/kentcdodds/Developer/alianza/atac5/node_modules/eslint-loader/index.js:17:20)
 @ ./app/index.js 8:0-23

And here's the code that the error is being thrown on (specific line commented):
/**
 * @fileoverview Rule to check that spaced function application
 * @author Matt DuVall <http://www.mattduvall.com>
 */

"use strict";

//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------

module.exports = function(context) {

    function detectOpenSpaces(node) {
        var lastCalleeToken = context.getLastToken(node.callee);
        var tokens = context.getTokens(node);
        var i = tokens.indexOf(lastCalleeToken), l = tokens.length;
        while (i < l && tokens[i].value !== "(") { ///////////////////////////////////////////////////////////////////////// <-- that line
            ++i;
        }
        if (i >= l) {
            return;
        }
        // look for a space between the callee and the open paren
        if (tokens[i - 1].range[1] !== tokens[i].range[0]) {
            context.report(node, "Unexpected space between function name and paren.");
        }
    }

    return {
        "CallExpression": detectOpenSpaces,
        "NewExpression": detectOpenSpaces
    };

};

I believe that if I turn off this rule, a similar error is thrown for a different rule.

Can you gist a reproducible example that produces this error in ./app/components/index.js?

I'm getting the same problem in react-bootstrap which had no linting errors or warnings prior to this release. You can see it on the latest master branch now.

Hmmm... Having difficulty reproducing a small example... I'll try to get one for you when I get more time later.

I've found the "gist" substitute.
I hope it would help.
With this file https://github.com/react-bootstrap/react-bootstrap/blob/master/webpack/strategies/docs-development.js
› eslint webpack/strategies/docs-development.js
/Users/alexkval/src/js/react-bootstrap/node_modules/eslint/lib/rules/no-empty-class.js:36
            if (token.type === "RegularExpression" && !regex.test(token.value)
                     ^
TypeError: Cannot read property 'type' of undefined
    at EventEmitter.Literal (/Users/alexkval/src/js/react-bootstrap/node_modules/eslint/lib/rules/no-empty-class.js:36:22)
    at EventEmitter.emit (events.js:129:20)
    at Controller.controller.traverse.enter (/Users/alexkval/src/js/react-bootstrap/node_modules/eslint/lib/eslint.js:726:25)
    at Controller.__execute (/Users/alexkval/src/js/react-bootstrap/node_modules/eslint/node_modules/estraverse/estraverse.js:393:31)
    at Controller.traverse (/Users/alexkval/src/js/react-bootstrap/node_modules/eslint/node_modules/estraverse/estraverse.js:491:28)
    at EventEmitter.module.exports.api.verify (/Users/alexkval/src/js/react-bootstrap/node_modules/eslint/lib/eslint.js:719:24)
    at processFile (/Users/alexkval/src/js/react-bootstrap/node_modules/eslint/lib/cli-engine.js:197:27)
    at /Users/alexkval/src/js/react-bootstrap/node_modules/eslint/lib/cli-engine.js:332:26
    at walk (/Users/alexkval/src/js/react-bootstrap/node_modules/eslint/lib/util/traverse.js:81:9)
    at /Users/alexkval/src/js/react-bootstrap/node_modules/eslint/lib/util/traverse.js:102:9

And there were no these errors before<EMAIL_ADDRESS>https://github.com/AlexKVal/react-bootstrap/blob/master/webpack/webpack.config.js#L48
› eslint webpack/webpack.config.js

webpack/webpack.config.js
  48:16  error  Empty class  no-empty-class
  48:50  error  Empty class  no-empty-class

If tokens[i] is undefined then it's probably the last commit with the Template change =(. I'l look into this.

This output is without https://github.com/babel/babel-eslint/pull/94
› eslint webpack/strategies/docs-development.js

webpack/strategies/docs-development.js
  20:14  error  Empty class  no-empty-class

✖ 1 problem (1 error, 0 warnings)

And all is clean without this https://github.com/babel/babel-eslint/pull/93
I hope it helps. :tada:

This is the simplest case I can find that triggers the exception:
export default function f1() {
  function f2(foo) {
    const bar = 3;
    return `${foo} ${bar}`;
  }
  return f2;
}

Thanks everyone - I understand the issue now.

Ok able to fix @taion's code snippet.
Running npm lint on react-bootstrap I also don't get the error anymore, except I'm getting eslint errors for no-empty-class and space-infix-ops which might be from #93?

Can we back out these changes pending further testing? Right now 3.1.2 is causing issues for users.

I've removed 3.1.2 from npm pending #97.

@hzoo @sebmck (another react-bootstrap maintainer here) Thanks guys for the quick answer!

Can everyone test on the PR in #97?

https://github.com/babel/babel-eslint/pull/97#issuecomment-102345177


Implement PKCE Auth flow

https://developer.spotify.com/documentation/general/guides/authorization-guide/#authorization-code-flow-with-proof-key-for-code-exchange-pkce

Closed via 24459453a60f0045818e528d2b6915f34a88a0ee


catch exception when no or invalid code is entered

Just a small fix that was causing unexpected login error when user submitted an empty email code.

Thanks @jakubskopal  marged!


Linkable urls

create a share button with centroid and zoom level. bonus for url shortening.

In addition, @bgranberg would like the current base map.

https://github.com/agrc/agrc.widgets/blob/master/widgets/map/BaseMap.js#L157 will help with this.


webkitgtk: 2.36.5 -> 2.36.6

Fixes #185219.
Description of changes
Changelog: https://webkitgtk.org/2022/08/07/webkitgtk2.36.6-released.html
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

Epiphany seems to work. Merging since it likely fixes not yet disclosed vulnerabilities. Thanks.


Fix use of Future as a Future

Small fix, using void as a bool.
This is unfortunately not being caught right now: https://github.com/dart-lang/sdk/issues/33629 .

I just looked at this again, and I think @leafpetersen's changes are correct. I'd confused the launch/launchSimulator methods. launchSimulator does return a bool indicating success so that we can avoid the second call if it failed (no point printing errors twice if the simulator is broken).
launch doesn't return anything (it either completes or throws).
The await launchSimulator at the bottom is also correct - we wait for it to complete but we dont' care about the return value (if it failed, the error has been printed, and we don't do anything after this, it's the end of the process).


HMS-4711: make idmsvc visible only in preview mode

https://issues.redhat.com/browse/HMS-4711

@pvoborni @frasertweedale a few things I want to point out:

After watching the attached video - I want to make it clear this change will only hide the left navigation item when preview is disabled. The behavior of hiding the All Services dropdown entry and the favorites item is another change we must already have delivered.
These changes work for me trying things out locally (the left nav item hides when I disable preview and refresh the page). However one thing to note - since the URL is already in the address bar when looking at the Directory and Domain Services UI - after I disable preview and refresh the page, I still have access to the UI - just the left nav item is removed (see screenshot below).

If you also want to disable access to the page via the URL, have a look at our chrome preview context/feature flags: https://github.com/RedHatInsights/insights-chrome/blob/master/docs/preview.md#feature-flags


Reorganize docs and setup documentation site

The Problem:
Our documentation is growing beyond what can be reasonably provided in a simple README (yay!). It's time to get a proper documentation site going (yay!)
The Fix:
This PR begins the re-organization of docs into distinct docs pages, and provides the configuration necessary to build the docs site using readthedocs.org
The Test:
A temporary documentation site is online at https://tannertest.readthedocs.io/en/latest/. This project has been configured as "Protected", which should prevent search engine indexing. When we're ready to bring these changes in, I will delete this project on RTD and create what will be the official docs project for ddev, which will be located at https://ddev.readthedocs.io
Automation Overview:

Related Issue Link(s):
#202 Re-org docs out of readme, launch docs site
Release/Deployment notes:

Ooops, looks like appveyor needs to be out of there.

I requested reviews from rfay and rickmanelius, but @beeradb @cyberswat  @TopherGopher please feel free to take a pass as well. More eyes -> likely better documentation.

@rickmanelius

When we add a domain, we'll have the option of making it the canonical url.
We still need a readme, as people will still hit the github project directly. The home page of the documentation is going to have overlap with the readme, as they both serve as potential introductory points.

I have updated the docs based on the feedback received, and the test docs site has been updated to reflect those changes. I'll leave this open for today to allow for any further feedback, otherwise I'll bring this in sometime tomorrow.


GodotContainer methods

While the type is defined, none of the strongly typed methods have been implemented.

Done


Babel-node does not execute multiple files

Babel-node does not execute multiple files 1116. So if you have more than one test, it will only execute the first test. You can use babel-tape-runner and then just run babel-tape-runner test/*.js | tspec. However, this does not work with iSparta. iSparta suffers from the same issue, but errors out with babel-tape-runner.
Will need to spend more time with iSparta and babel-node, unless anyone else has any ideas how to have coverage on more than one file using babel.
@bucaran if you want me to submit a PR for the Tape fix, let me know.

Well, how would you fix it?

I can fix this first issue with babel-tape-runner, it is the coverage that is the issue... Ill submit a pull request.

:+1:

Just a note that whatever solution you find here needs to be applied to generator-rise itself.  "test": "babel-node test/*.js | tspec", does not work, I had to change to "babel-node test/index.js | tspec",`

@Hypercubed True. The "solution" seems to be have a file index.js where you can load all your tests like @TYRONEMICHAEL described above.

Right, but also having some trouble with isparta.  I change to:
    "test": "babel-node test/index.js | tspec",
    "coverage": "babel-node node_modules/isparta/bin/isparta cover --report text test/index.js",

Ya you need to point iSparta to your single index.js file. I can confirm coverage is correct using this method.

I also needed to use node_modules/isparta/bin/isparta (a js file) rather than node_modules/.bin/isparta (a bash file), not sure if it's just me on windows.

Do you have node_modules/.bin on your Window's $PATH equivalent? @Hypercubed

I don't think I need to... it's a relative path and the file is found.  Honestly I don't undertand what the line  babel-node node_modules/.bin/isparta cover --report text test/*.js is tring to do.  node_modules/.bin/ispartais a bash file how does it ever work to open a bash file with node (or babel-node)?  Isnode_modules/.bin/ispartaa js file on *nix?  If instead I point to the js filenode_modules/isparta/bin/isparta` it works.  I've never seen this done before... could me some evn difference.

https://github.com/npm/npm/issues/3883#issuecomment-31859121

Right. You don't need to in this case. I do, because I don't install packages globally. But that has nothing to do with this issue. My bad for bringing that up.
So, .bin/isparta is a soft link to ../isparta/bin/isparta which is the node script, but it's useless and it should point to what you have.
Can you send me a PR with this bit too?

Howcome npm resolves babel-node, but wont resolve babel-node isparta...? Why do you have to explicitly point to the .bin folder if it is in the second argument?

npm run adds node_modules/.bin to the PATH (https://docs.npmjs.com/cli/run-script).  Executable is babel-node so that gets resolved.  Then if the first argument to babel-node is isparta it looks for isparta.js in the cwd.  The path is never resolved for arguments.


Invoking sass once with all files to compile instead of invoking sass once per file to compile

I was recently looking into using this plugin to run sass --watch.  I wanted to do this instead of using grunt-contrib-watch because sass --watch will use a cache to do incremental builds much faster than grunt-contrib-watch combined with this plugin (even with the update configuration option set to true).
I realized that even though getting grunt-contrib-sass to send sass the --watch option is trivial, this strategy doesn't really work because sass --watch will block and grunt-contrib-sass invokes sass once per file to compile.  Why not send all the files to sass at once?  This would make --watch a usable option for development.  It also seems that minimizing the number of shell invocations and the number of times that the sass gem needs to boot would lead to better performance, but I haven't tested that hypothesis.
I did some digging in Git to see if I could figure out why sass was invoked this way.  Here's what I found:

In the initial commit, there's no looping over sass invocations, but I also didn't find how sass was invoked at all.
Looping over this.files and invoking sass for each one was first introduced in 38320df, but this commit doesn't really explain why.
The loop was removed in 7a68a29 as part of some changes about how grunt handles this.files vs. this.file.
The subsequent commit, d6dfe52, brings the loop back and uses this.files again.  This was a result of gruntjs/grunt#606
In commit f6bef05, async.forEachLimit instead of async.forEachSeries so that if you had multiple CPUs, they would all be put to work.  This was a result of gruntjs/grunt-contrib-sass#43.  What's interesting to me is that this PR states "The sass command line parameters don't allow processing multiple files per run, which would presumably be even faster."  Maybe things have changed since that comment, or I'm misunderstanding what @altano is saying, but currently sass does let you specify multiple sources and destinations on the command line.
In commit 14fdd13, async.forEachLimit was switched to async.eachLimit.  These are synonymous functions, so this change was purely cosmetic.

tl;dr: I don't understand why this plugin invokes sass once per element in this.files rather than joining this.files into one big argument list and invoking sass once.  I couldn't find the reason for this in the git history, is there a reason?  Or can it be changed to invoking sass once so that sass --watch works and fewer processeses are spawned in general?
@jonathanpberger @geoffwa

How would you specify multiple files with different destinations using the Sass binary?

You can specify multiple inputs/output using a colon delimited format: sass file1.css.scss:file1.css file2.css.scss:file2.css
With multiple files specified this is the same as running sass --update. Alternately you can also run sass --watch to make this a permanent background process (which is fantastic for development).

@geoffwa I did not know about that. PR welcome as long as it doesn't break anything.

Awesome! I'll put together a pull request soon based on this for you to
take a peek at.
On Jan 3, 2015 10:02 AM, "Sindre Sorhus"<EMAIL_ADDRESS>wrote:

@geoffwa https://github.com/geoffwa I did not know about that. PR
welcome as long as it doesn't break anything.
—
Reply to this email directly or view it on GitHub
https://github.com/gruntjs/grunt-contrib-sass/issues/178#issuecomment-68597481
.

@sindresorhus I put together a proof of concept: https://github.com/danfinnie/grunt-contrib-sass/compare/gruntjs:master...master.  This code passes all of the tests that were included in the project, I was thinking about adding some more as well.
Upon further inspection, I saw that grunt-contrib-sass does not always pass the same command line options sass for every invocation in a specific grunt task.  For instance, you could run grunt sass:compile and it could call sass --update file1.scss file1.css and then sass --scss file1.css file1.out.css  This makes it impossible to make exactly one sass call because some calls need --update and some cannot have --update.  Instead, I group all of the files to compile based on the command line flags they need and run sass once per command line flag combination.  I plan on parallelizing this so that --watch will work well.  The combinations of flags are:

--scss if the source file is a .css file (can these just be copied into place?)
--update if options.update was specified and the file was previously compiled
--scss --update if both of the above are true
No extra arguments if none of the above is true

I ran into one issue that zapped a lot of time: sass automatically applies --update if you pass multiple files to compile, which is the entire point of this GitHub issue.  I found no documentation for this feature (bug? property?), but I found it in the source.  So, I pass the --force option which is what used to be happening implicitly.  There's a lot of complexity around this, however, and I need to come up with some real use cases to make sure I got it right.  grunt-contrib-sass does it's own handling based on if the user passed --update and if the file exists.  Sass then runs it's own logic based on how many files were passed and if --force was passed.
I want to clean up the code linked above, but what do you think overall?  I believe that I've maintained existing behavior but want your opinion :P.

Nice start, but this looks a bit convoluted. Submit a PR as it's easier to discuss there.

This makes it impossible to make exactly one sass call because some calls need --update and some cannot have --update.

Why? What calls cannot have --update?

I'm having a hard time understanding the complication here, though I'm probably missing something.

@sindresorhus I will submit a PR soon.
I was trying to maintain backwards-compatibility with the current behavior.  Currently, grunt-contrib-sass invokes sass with one SCSS file, which automatically disables --update.  This change is to invoke sass with multiple SCSS files, which automatically enables --update.  A lot of the complication is to maintain the old behavior, which is probably only necessary for a very small number of users with weird workflows that modify the CSS files after compilation.
Would you prefer cleaner code that didn't account for this?
I wrote a shell script to experiment with this behavior, because it's not really documented by SASS:
#!/usr/bin/env bash

set -e
set -x

sass -v
ruby -v

SASS_OPTS="--sourcemap=none"

rm -f *.css *.map
sass $SASS_OPTS foo.scss:foo.css bar.scss:bar.css

echo "junk" > foo.css
echo "junk" > bar.css
sass $SASS_OPTS foo.scss:foo.css bar.scss:bar.css

echo
echo "Tried to recompile both files, but both are junk:"
cat foo.css
cat bar.css

sass $SASS_OPTS foo.scss:foo.css

echo
echo "Only recompiled foo.css, and that file is updated:"
cat foo.css
cat bar.css

sass $SASS_OPTS bar.scss:bar.css

echo
echo "Only recompiled bar.css, and that file is updated:"
cat foo.css
cat bar.css

This is the output on my system:
+ sass -v
Sass 3.4.9 (Selective Steve)
+ ruby -v
ruby 2.0.0p576 (2014-09-19 revision 47628) [x86_64-linux]
+ SASS_OPTS=--sourcemap=none
+ rm -f bar.css foo.css '*.map'
+ sass --sourcemap=none foo.scss:foo.css bar.scss:bar.css
      write foo.css
      write bar.css
+ echo junk
+ echo junk
+ sass --sourcemap=none foo.scss:foo.css bar.scss:bar.css
+ echo

+ echo 'Tried to recompile both files, but both are junk:'
Tried to recompile both files, but both are junk:
+ cat foo.css
junk
+ cat bar.css
junk
+ sass --sourcemap=none foo.scss:foo.css
+ echo

+ echo 'Only recompiled foo.css, and that file is updated:'
Only recompiled foo.css, and that file is updated:
+ cat foo.css
.foo {
  content: 'foo'; }
+ cat bar.css
junk
+ sass --sourcemap=none bar.scss:bar.css
+ echo

+ echo 'Only recompiled bar.css, and that file is updated:'
Only recompiled bar.css, and that file is updated:
+ cat foo.css
.foo {
  content: 'foo'; }
+ cat bar.css
.bar {
  content: 'bar'; }

Would you prefer cleaner code that didn't account for this?

Yes

I wrote a shell script to experiment with this behavior, because it's not really documented by SASS:

Would you mind opening an issue on Sass to get it documented?

I just created the issue with sass as you mentioned, it's linked above.
I've been on vacation but want to get to this soon :)