[feature request] blocking internet access for some apps entirely using tracking protection

A bit of background
I have been using the tracking protection for few days now jut to see what app try to send what to where, but due to how Android VPN works, the DDG tracking protection "replaced" the NetGuard (I know "replaced" is not accurate). NetGuard let the user to add apps to black-list and white-list for WiFi and GSM internet access.
Suggestion
It would be super useful to, similar to NetGuard, let the user to completely cut off internet access to certain apps. This would bring much better control to user and subsequently provides the possibility of a safer experience for the user.

Hello @mmahmoudian, thanks for reporting this.
If I understand correctly, you're suggesting a feature where if an app is not "protected" then it won't have internet access to avoid leaking.
We don't offer that feature at the minute, because it's problematic in some levels. You can always do that using Android VPN settings directly, ie. Android VPN settings -> Advanced -> VPN -> Gear button for DuckDuckGo -> enable both always on AND "block connections without VPN"
Although we encourage users to enable "always on", we discourage enabling "block connections without VPN" along with it. Because its effects can be missinterpreted as breakage.

@aitorvs Thanks for your reply. But no, that's not what I meant. Perhaps the easiest way is to explore how NetGuard (which is FLOSS under GPLv3) works.
But for the sake of argument I try to explain with an example:
I have some applications that I don't use frequently or their operations does not depend on internet access. In this situation, there is not point is letting them access internet either when they are not in use, or when they should operate regardless of internet access. For instance, a calculator app does not need to access internet to operate, therefore, logically it would be safe to completely cut their internet access.
By this feature that I suggested, user will be able to toggle a button in DDG tracking protection settings and tell DDG to drop all packages to and from this app. This would give more control to user and would drastically improve safety and privacy.

Thanks @mmahmoudian, makes sense.
We don't have plans to support that at the minute.
Closing this issue for now. If you want to keep this open and continue a discussion about it, feel free to open a Discussion.

One can't open a discussion anymore. I'd still love to see this


Oracle module: set batch underlying asset price

This PR add the function setBatchUnderlyingPrice() to set a batch underlying price at a specific timestamp.
Should be reviewed/merged after #58 .

Going to add dispute related function in another PR, will increase coverage also.

Would it also be helpful to expose a function getBatchId(address _otoken) pure external returns (bytes32 batchId) in the Oracle contract? Because now both Controller and Calculator need to hash by themselves.

Where do we need this getBatchId() in the Oracle ?

Where do we need this getBatchId() in the Oracle ?

The isPriceFinalized function in Controller and getExpiredCashValue function in the calculator will need to call getBatchPrice(), so we may need that hashing logic in both contract.
But let's just keep the oracle module simple for now, because now Oracle don't need to have Otoken as dependency.

Remember to review the PR Template before merging! https://github.com/opynfinance/GammaProtocol/blob/master/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md


[FYI] Heatmap

See: http://jrvis.com/red-dwarf/?user=ghacksuserjs&repo=ghacks-user.js
Repo: https://github.com/rviscomi/red-dwarf

it just says "loading ..." and never finishes

I had it loaded with K-Meleon, it needs JS...  a quick recap follows:
Biggest centers of interest: Germany and USA, then UK and Russia follow.
Other hotspots are Indonesia, Brazil, Australia and a few others are scattered in indochina, like Philippines and Thailand.  There are some followers in South Africa, too.


Stream Enrich: add support for Kafka sink

See https://github.com/snowplow/snowplow/commits/feature/kafka for some initial code

Duplicate of #2939


Update page.js

This pull request includes several changes to the Sprint_4/App/app/evaluate/[team]/[student]/page.js file, aimed at improving the code structure and user interface by adding new components and removing redundant code.
Code structure improvements:

Removed the AnimatedSphere and AnimatedBackground component definitions from page.js and replaced them with imports for AnimatedBackground, NavBar, and Footer components. (Sprint_4/App/app/evaluate/[team]/[student]/page.jsL7-R10, Sprint_4/App/app/evaluate/[team]/[student]/page.jsL32-L117)

User interface enhancements:

Added the NavBar and Footer components to the page layout to improve navigation and footer content. (Sprint_4/App/app/evaluate/[team]/[student]/page.jsL7-R10, Sprint_4/App/app/evaluate/[team]/[student]/page.jsR338)

the improved structure greatly benefits code understandability and code maintenance by reusing components instead of redefining them and duplicating code in the page.js file


[GraphRAG] FalkorDB graph rag integration

Why are these changes needed?
This PR integrates FalkorDB. It wraps FalkorDB as a GraphQueryEngine and could be added to an AG2 agent through GraphRagCapability.
I also include a notebook example to show how to use this feature.

Related issue number
part of #68

Checks

[ ] I've included any doc changes needed for https://ag2ai.github.io/ag2/. See https://ag2ai.github.io/ag2/docs/Contribute#documentation to build and test documentation locally.
[X] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[X] I've made sure all auto checks have passed.

Thanks @AgentGenie, updates:

Text in notebook
Updated version support of GraphRAG SDK to 0.3.3 - this version has a chat session inbuilt that can keep track of its own query history, so utilising that.
Default OpenAI model now GPT-4o (as recommended by GraphRAG SDK)
Tests have been updated to support v0.3.3

In the future I'll add another example. I'm thinking it would be good if we could use the auto-detect ontology capability. Do you think this could be incorporated? Would make it easy for users to load data and query it without having to create a schema/ontology.

@marklysze Two main changes:

Use GenerativeModel as arg type and use OpenAI model as default. This would not limit the user to use other LLM models.
Update the code that auto generate ontology if not defined by user.


[zh] Sync feature-gates/h*.md

Related to issue #44410. Only updated the front matters:

honor-pv-reclaim-policy.md
hpa-container-metrics.md
hpa-scale-to-zero.md
huge-page-storage-medium-size.md
huge-pages.md
hyper-v-container.md
identify-pod-os.md
immutable-ephemeral-volumes.md
in-place-pod-vertical-scaling.md

/approve

/lgtm


Java extractor fails when compiling javac with Bazel

I'd like to use CodeQL on the bazel-buildfarm repo. I have a WIP PR with a GitHub Action here: https://github.com/bazelbuild/bazel-buildfarm/pull/1688
As this is built with Bazel, I understand I cannot use the autobuilder functionality for compiled languages, as that only supports Maven and Gradle.
I get the following error after github/codeql-action/init@v3 and during Bazel building:
[WARN] Failed to create log file in /home/runner/work/_temp/codeql_databases/java/log

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
[ODASA Javac] Failed to execute ODASA javac builder: java.lang.RuntimeException: Failed to create a unique file in /home/runner/work/_temp/codeql_databases/java/log/ext
Error: Exception in thread "main" java.lang.Error: Fatal extractor error detected. Attempting to abort build commands.
	at com.semmle.extractor.java.interceptors.JavacMainInterceptor.javacMainResult(JavacMainInterceptor.java:53)
	at jdk.compiler/com.sun.tools.javac.main.Main.SEMMLE_INTERCEPT$9(Main.java)
	at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:329)
	at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176)
	at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:64)
	at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50)

from https://github.com/bazelbuild/bazel-buildfarm/actions/runs/8462955332/job/23185088050?pr=1688
I'm not really sure where to go next. Any advice would be terrific! Thank you in advance!

Hi @jasonschroeder-sfdc,
Thanks for your question. Note that there are some specific instructions you'll need to follow when building with Bazel. Go to here and scroll down a bit.

Hi @jketema , thanks so much for a reply so quickly!
That fixed it! 🎉
Would it be possible to copy the Bazel parts to this webpage? I was looking in the wrong place and missed these Bazel-specific instructions.
https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#building-java--and-kotlin

Great to hear to it is fixed. I agree that the webpages could be better organised here. The best thing to do is opening an issue in https://github.com/github/docs and explaining the issue. That is, that the section on specifying build commands is also relevant when creating an advanced setup, and that's not clear from the documentation that this is actually the case.

To add: note that a copy of the linked pages lives in https://github.com/github/docs.

Closing this issue, as this seems resolved now.


Add command to filter contacts by a tag

The existing tagging system is under-developed, as users cannot do
anything else, besides adding and removing a set of tags.
To provide users a better user experience, users will be able to filter
contacts by a tag, just like Instagram tag filtering system, with the
command #TAG. Example: #friends will filter those contacts that are
tagged with friends.
Let's,

Add an alternate path in parseCommand to return HashtagCommand
Add HashtagCommand for the execution of the filtering by Tag
Add HashtagCommandParser to parse user input to a Tag object
Add case-insensitive hasTagIgnoreCase(Tag) to check if Person has Tag
Add PersonContainsTagPredicate to test if a Person is tagged to a Tag
Add case-insensitive equality check isSameTagIgnoreCase(Tag) in Tag

This commit mainly uses the existing abstraction only.
Test cases are added to ensure that the application has no regression
after the previous commit that resolve https://github.com/AY2122S2-CS2103T-T17-3/tp/issues/34.
Let's,

Add test method parseCommand_hashtag to AddressBookParserTest
Add HashtagCommandParserTest

Add parse_emptyArg_throwsParseException()
Add parse_notAlphanumeric_throwsParseException()
Add parse_validArgs_returnsHashtagCommand()

Add HashtagCommandTest

Add isHashTag_hashTag_returnsTrue()
Add isHashTag_notHashTag_returnFalse()
Add execute_noMatchingTag_noPersonFound()
Add execute_matchingTag_multiplePersonsFound()
Add equals()

Add PersonContainsTagPredicateTest

Add constructor_null_throwsNullPointerException()
Add test_personContainsTag_returnsTrue()
Add test_personDoesNotContainsTag_returnsFalse()
Add equals()

Update PersonTest

Add hasTagIgnoreCase_hasTagIgnoreCase_returnsTrue()
Add hasTagIgnoreCase_noTagOrNull_returnsFalse()

Update TagTest

Add isSameTagIgnoreCase_notSameTagOrNull_returnsFalse()
Add isSameTagIgnoreCase_sameTag_returnsTrue()

Codecov Report

Merging #43 (e8676d7) into master (2d161ef) will increase coverage by 0.81%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master      #43      +/-   ##
============================================
+ Coverage     72.44%   73.26%   +0.81%
- Complexity      403      432      +29
============================================
  Files            71       74       +3
  Lines          1245     1279      +34
  Branches        125      131       +6
============================================
+ Hits            902      937      +35
  Misses          311      311
+ Partials         32       31       -1

Impacted Files
Coverage Δ

...a/seedu/address/logic/commands/HashtagCommand.java
100.00% <100.00%> (ø)

.../seedu/address/logic/parser/AddressBookParser.java
100.00% <100.00%> (ø)

...edu/address/logic/parser/HashtagCommandParser.java
100.00% <100.00%> (ø)

...c/main/java/seedu/address/model/person/Person.java
97.72% <100.00%> (+0.10%)
:arrow_up:

...dress/model/person/PersonContainsTagPredicate.java
100.00% <100.00%> (ø)

src/main/java/seedu/address/model/tag/Tag.java
92.85% <100.00%> (+12.85%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2d161ef...e8676d7. Read the comment docs.


Move from webpack to esbuild for faster builds

Required a clear-cache redeploy for the first cypress test to run properly... That's a little weird, but I'm going to merge anyways


pull request for e2e test at 11/12/2016 12:45:10

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

Details

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


online search / in file search

Provide a description of the new feature / enhancement
not just adding http:// before the text. google it in the deafault browser (like in spotlight)

Tracked in #3245


How to compile with python3?

Hello,
Could you tell me how compile this library for python3 please?
Thank you very much.

Hi @juanmiguelRuaDev,
It's very similar to the Python 2 instructions:
Install pip for Python 3:
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py

Install nxppy for Python 3:
sudo pip3 install nxppy

Thanks,


Update Network Policy Server events with

Informations below are provided in GPO AD DS settings :

Network Policy Server
This policy setting allows you to audit events generated by RADIUS (IAS) and Network Access Protection (NAP) user access requests. These requests can be Grant, Deny, Discard, Quarantine, Lock, and Unlock.
If you configure this policy setting, an audit event is generated for each IAS and NAP user access request. Success audits record successful user access requests and Failure audits record unsuccessful attempts.
If you do not configure this policy settings, IAS and NAP user access requests are not audited.
Volume: Medium or High on NPS and IAS server. No volume on other computers.
Default: Success, Failure.

Volume was already configured.
Check are needed for Available settings (Success and/or Failure)


Help

An error occurred: ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
I dont know what to do

Me too. I tried many things, but nothing happens.
Thank you.

Why not actually read the pinned issue, find the issue that deals with your problem, and apply your preferred fix?


[MINT-2650]/model by solution bug fix

MINT-2650
Description
Duplicate model plans were being returned to the front end for models that use a solution multiple times. To fix this the type needed to be updated.
As part of the work, a data loader for the operational solution by key was needed. Discussing with the front end team, it was determined we should return the possible operational solution instead of multiple solution instances.
Note, this dataloader has deviated somewhat from previous data loader implementations. This is to facilitate the eventual migration of the dataloaders to a different library.

How to test this change

Bring up MINT.
Make a model plan
For multiple model plans, select the same solution for multiple needs.
For your homepage customization, ensure you only see one instance of that model plan

(you can also achieve this by logging in as MINT, seeding the database, and updating a model plan that is already using 4 innovation to use it again).
PR Author Checklist

[ ] I have provided a detailed description of the changes in this PR.
[ ] I have provided clear instructions on how to test the changes in this PR.
[ ] I have updated tests or written new tests as appropriate in this PR.
[ ] Updated the Postman Collection if necessary.

PR Reviewer Guidelines

It's best to pull the branch locally and test it, rather than just looking at the code online!
When approving a PR, provide a reason why you're approving it

e.g. "Approving because I tested it locally and all functionality works as expected"
e.g. "Approving because the change is simple and matches the Figma design"

Don't be afraid to leave comments or ask questions, especially if you don't understand why something was done! (This is often a great time to suggest code comments or documentation updates)
Check that all code is adequately covered by tests - if it isn't feel free to suggest the addition of tests.

Thanks Steven!
My understanding on this makes is: if a model plan used the same operational solution multiple times, the join (Previously) would return multiple copies of the plan -- but now since it's joining on possible solutions (which there's never duplicates of) that isn't a problem
Is that right?

Thanks Steven!
My understanding on this makes is: if a model plan used the same operational solution multiple times, the join (Previously) would return multiple copies of the plan -- but now since it's joining on possible solutions (which there's never duplicates of) that isn't a problem
Is that right?

Thanks @ClayBenson94 ! That's 💯 % correct. We could have taken another approach and returned a list of solutions etc, but the solution data is not actually being used on the frontend at all. The group by clause no results in no duplicate models.
This seemed a truer way to handle it than, returning only a representative solution.


cloud-early-config detects unknown hypervisor type "xen-domU"

ISSUE TYPE

Bug Report

COMPONENT NAME
systemVM image 4.11 for XenServer

CLOUDSTACK VERSION
4.11.0 as well as 4.11.1 git from today.
SystemVM: 4.11.0 Sun Jan 14 15:37:28 UTC 2018

CONFIGURATION
XenServer 6.5 SP1
OS / ENVIRONMENT
Management Server on CentOS 7.
SystemVMs running as "Debian 9.3" in HVM mode.
SUMMARY
Newly created system VMs are not configured, cloud.log reports "systemvm type=" (nothing else).
the /opt/cloud/bin/setup/cloud-early-config script tries to detect the hypervisor type, there are cases for "xen-pv" and "xen-hvm". But it uses "virt-what", which returns the unknown type "xen-domU".
After applying these fixes...

add "xen-domU" to the "xen-hvm" case
changing the path to xenstore-read from /usr/sbin to /usr/bin

and rebooting, the SystemVM comes up correctly.

@MartinEmrich the <IP_ADDRESS> systemvmtemplate cannot be used with <IP_ADDRESS>-SNAPSHOT. There was a commit from @khos2ow that changed the xenserver pv vs hvm detection, this happens in cloud-early-config script that cannot be simply patched. I'll update <IP_ADDRESS> systemvmtemplate in next few weeks.

@rhtyd Thanks for the hint, a new systemvm image is building, too, right now (No KVM in VirtualBox, so I removed "accelerator":"kvm" from the packer config and it will probably take ages...

I built the new systemvm, but I have issues installing it:
During a previous update from <IP_ADDRESS> to 4.11.0, I installed the new systemvm via UI as "systemvm-xenserver-4.11". This maps to /secondary/templates/tmpl/2/204.
Using cloud-install-sys-tmplt installs it into /secondary/templates/1/204.
Newly created system vms use "systemvm-xenserver-4.11" (still the old one), which cannot be deleted. What's the safe way to replace a current systemvm template with the same version?

@MartinEmrich You register a template like you normally do, give it a name and change bunch of global settings, such as router.template.xenserver to the new template's name, in the db in the vm_template details set type=SYSTEM. Btw I've the new 4.11 templates here: https://lab.yadav.cloud/systemvmtemplates/4.11/

@rhtyd does it work for SSVM and console proxy?  I was under the impression that this would only change the template for routers.
There is this PR to enable customizing system VMs template here: https://github.com/apache/cloudstack/pull/2275

@rhtyd this specific change doesn't require a new systemvm template and will be deployed on systemvms using systemvm.iso.
@MartinEmrich the file /opt/cloud/bin/setup/cloud-early-config is the source file and you need to check if it's actually correctly updated in /etc/init.d/cloud-early-config.
I'll have to look to see what's going on with /usr/bin and /usr/sbin.

@MartinEmrich afaik you should never use cloud-install-sys-tmplt after the first installation was done, it will mess up ssh key inside systemvm template and result management server cannot talk to system vms.
@rafaelweingartner yes it does, SSVM, CPVM work as is (with the process @rhtyd  mentioned above) and VR gets to use the same new template through router.template.xenserver setting.

I am pretty sure it does not.... they get the systemvm.iso injected (if this is the only thing that matter to you), but I think the execution flow is different when it comes on selecting the hypervisor.

@khos2ow ah... that might work because you change the type to system in the database. However, that might not be a sure thing. If you take a look into com.cloud.consoleproxy.ConsoleProxyManagerImpl.startNew(long)  and org.apache.cloudstack.secondarystorage.SecondaryStorageManagerImpl.startNew(long, Role). You will see that it does not look into that router parameter.
Those methods simply use the method com.cloud.storage.dao.VMTemplateDaoImpl.findSystemVMReadyTemplate(long, HypervisorType) , which only looks for the first template it find.
That is one of the reason for PR: #2275

@rafaelweingartner yes, as others has pointed out we use the router.xxx to specify the systemvmtemplate name which gets used for all the systemvms (cpvm, ssvm, routers etc)

I've found a rather interesting, potential problem, on this. Hypervisor detection has been changed in bb96564, virt-what executed prior to check from /proc/xen or in my change at 535e615 to read from dmesg.
I just tested executing virt-what on both PV and HVM vms on my environment (Xen 7.1.1 and 7.1.0) and I'm getting conflicting results from virt-what (needs more investigation) but I believe we need to read from /proc/xen and dmesg prior to virt-what.

@rhtyd Thanks for the updated systemvm templates, I'd like to try them out.
But @khos2ow pointed out that cloud-install-sys-tmplt is not a good idea. But I cannot download it via UI either, as there's no working SSVM now.
So there's a chicken-and-egg problem...
I did the ugly thing, as this is just a test system: disabled all hosts and the zone, deleted all system VMs, removed all references from vm_instance, template_store_ref, template_spool_ref and the entry from vm_template.
I then installed your template via cloud-install-sys-tmplt, it installed to /1/1 this time.
after restarting and reenabling everything, two CPVM/SSVM pairs came up, only one was referenced in the DB. I deleted the orphaned pair from XenCenter.
The remaining pair is Debian 7, ACS 4.6.0 (the original installed during the first ACS setup with <IP_ADDRESS>).
Looks like it was cached somewhere?

I wiped everything and started over: Install <IP_ADDRESS> with some test VMs, Upgrade to 4.11.0-SNAPSHOT with the systemvm template from @rhtyd. I registered the System VM template as Debian 7, with no checkboxes except "HVM" (the default selection).
After clicking "Update", the new systemVMs this time come up as paravirtualized, but the UI still shows them as 4.6.0 in state "Starting"....

@MartinEmrich @rhtyd should this be marked for 4.11.1 milestone? You're referring a PR marked for 4.12 a couple of times.

this will be blocker if systemvms don't start/run properly on xenserver, therefore let's aim to fix this in <IP_ADDRESS>

@borisstoyanov  that would be awesome, as we're stuck on 4.9 with XenServer <= 6.5 now.
Just trigger me when there's something new to test, maybe I can squeeze in an hour or two to try out new versions...

I've found the issue and testing the fix as part of https://github.com/apache/cloudstack/pull/2616 /cc @MartinEmrich @khos2ow

Tested and validated the fix. @MartinEmrich you may help with testing the issue using #2616, I'll publish newer 4.11.1 systemvmtemplate later this week. /cc @khos2ow
I'll mark this issue as closed.

@rhtyd Sorry for the delay... Lots of other stuff going on, and had issues with a circuit breaker on my Cloudstack test rig... Building git 4.11 now, I hope to get around to do some testing this week.

Finally got my automated test bench working, and it is a success:
Installed <IP_ADDRESS>, and upgraded to self-built 4.11.1 snapshot including system VM. the upgrade runs smooth, and my VMs still have connectivity with the 4.11.1 systemvm.

Thanks for sharing your results @MartinEmrich


Dynamically imported get's preloaded

Environment

Operating System: Linux
Node Version:     v16.14.2
Nuxt Version:     3.1.1
Nitro Version:    2.1.1
Package Manager<EMAIL_ADDRESS>
Reproduction
https://stackblitz.com/edit/github-mwmwdh?file=app.vue
Describe the bug
When dynamically importing a module (dayjs as an example) it get's added to the head of the page with rel="prefetch".

Code:
<template>
  <div>
    <button @click="loadScriptDynamically">Load</button>
  </div>
</template>

<script setup>
async function loadScriptDynamically() {
  await import('dayjs');
}
</script>

This only happens when running: npx nuxi build and not with npx nuxi dev
This can cause trouble when done a lot or when using a relatively large module.
Is this behavior intended or is it possible to mitigate?
Additional context
No response
Logs
No response

Let's track in https://github.com/nuxt/nuxt/issues/18376


[#25417][go] copy env details to dataflow images

Handle #25417 but in the Go SDK.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @chamikaramj

Run Go PostCommit

Definitely making it to dataflow now:
     "sdkHarnessContainerImages": [
14:43:16           {
14:43:16             "capabilities": [
14:43:16               "beam:protocol:progress_reporting:v1",
14:43:16               "beam:protocol:multi_core_bundle_processing:v1",
14:43:16               "beam:transform:sdf_truncate_sized_restrictions:v1",
14:43:16               "beam:protocol:worker_status:v1",
14:43:16               "beam:protocol:monitoring_info_short_ids:v1",
14:43:16               "beam:version:sdk_base:go:apache/beam_go_sdk:2.46.0.dev",
14:43:16               "beam:coder:bytes:v1",
14:43:16               "beam:coder:bool:v1",
14:43:16               "beam:coder:varint:v1",
14:43:16               "beam:coder:double:v1",
14:43:16               "beam:coder:string_utf8:v1",
14:43:16               "beam:coder:length_prefix:v1",
14:43:16               "beam:coder:kv:v1",
14:43:16               "beam:coder:iterable:v1",
14:43:16               "beam:coder:state_backed_iterable:v1",
14:43:16               "beam:coder:windowed_value:v1",
14:43:16               "beam:coder:global_window:v1",
14:43:16               "beam:coder:interval_window:v1",
14:43:16               "beam:coder:row:v1",
14:43:16               "beam:coder:nullable:v1"
14:43:16             ],
14:43:16             "containerImage": "us.gcr.io/apache-beam-testing/jenkins/beam_go_sdk:20230210-201800",
14:43:16             "environmentId": "go"


Move away from Poetry and Pipenv

Move away from the use of Poetry and Pipenv as part of the development workflow.
Such solutions are great, but the choice of a development work-belt should be that of the developer and not opinionated.
Instead, move to vanilla Python.

[ ] Replace Poetry in pyproject.toml
[ ] Replace Poetry in readme
[ ] Migrate Pipenv into pyproject.toml
[ ] Update CI workflows

Up until now I didn't even realize I left both pyproject.toml and Pipfile in :sweat_smile:


Sample pulse dunder methods

What is the expected enhancement?
The base output command for pulse is the SamplePulse and all other terra output pulses are eventually compiled to the SamplePulse. Internally the SamplePulse is a complex numpy array of samples. The SamplePulse should support being treated as a numpy array by implementing the proper numpy interface. See NEP 22 — Duck typing for NumPy arrays for more information on what must be implemented. This should also extend to DiscreteFunctionalPulses and AnalyticFunctionalPulses with delayed evaluation.
As a consequence pulse composition should be supported AnalyticFunctionPulses and DiscreteFunctionPulses.

Closing as the need for this is no longer clear.


Design intent of setup.sh vs setup.bash

Hello!
I'm working with the ROS open-embedded working group. The group is developing openembedded layers for use with ROS.
Colcon-core generates multiple scripts in the install directory such as:

install.bash
install.sh

Normally, on Linux, ROS humble runs on Ubuntu 22, which comes with many packages by default. Developers can easily make assumptions that certain commands are always available, such as head. We've run into some issues by not knowing what is required as seen here.
Can the maintainers assist me in documenting the required packages that colcon-core relies on, and if there is any design intent that the install.sh script would be intended for a more minimal OS like poky or alpine Linux that doesn't have bash  and other tools available by default?
If setup.sh is intended for minimal systems

Consider a change to to use cut instead of head
meta-ros should distribute a fully featured head command with ros-image-core and leave it out for ros-image-minimal

If setup.sh is not intended for minimal systems

Document the design intent here and perhaps some dependencies
meta-ros will need to add more tools to the minimal OS layer.

Colcon-core generates multiple scripts in the install directory such as:
install.bash
install.sh

The install.bash is generated by colcon-bash, not colcon-core. The only "native" shells that colcon supports are "sh" and "bat". There are extensions to enable Powershell, Bash and Zsh. All three of the additional shells are part of colcon-common-extensions.

Developers can easily make assumptions that certain commands are always available, such as head.

This might be nitpicky, but I'm not sure what this particular example has to do with the shell. head and cut are both standalone executables provided by coreutils on both Fedora and Debian. What and how busybox chooses to implement these "core" executables doesn't seem like something we should be concerned with here, no?
We can't declare dependencies on system packages from pure python packages, but we could probably add the dependency to the debs. From the sounds of it, that won't help the other (minimalistic) Linux distros you're discussing though.
For this specific case, if there's a clean way to switch from head to cut to appease busybox without regressing other platforms, I'd love to see a PR.

Tangent: If your intent is truly to generate a minimal build environment, you should consider dropping colcon-common-extensions in favor of the specific colcon extensions you need to complete the build.
For example, this is the set of extensions present on ci.ros2.org builds: https://github.com/ros2/ci/blob/403b3445ee7e7253dd6c24b042feb3ae584dce76/ros2_batch_job/main.py#L86-L109

Great information! Thank you for the speedy feedback.
I understand colcon is intended to be more portable than ROS which is focused mainly on the tier 1 distributions.
Would it be OK to request that colcon-core be modified to work better on busybox that does not come with the same form of coreutils as long as functionality to other distros is not impacted? We can do the PR's as needed.
For long term maintenance, the OE working group doesn't have CI for anything yet, but this is something that could be contributed to colcon-core to support longer-term maintenance on busybox systems once we figure out how to do it.
Rob hinted he found a clean for the head to cut issue. We're not sure how many more changes there would be, but this kind of support to colcon would help it be used in more minimal OS's.

Would it be OK to request that colcon-core be modified to work better on busybox that does not come with the same form of coreutils as long as functionality to other distros is not impacted?

I see no reason to reject a change that doesn't regress existing platforms and doesn't unnecessarily increase maintenance burden.

... the OE working group doesn't have CI for anything yet, but this is something that could be contributed to colcon-core ...

I think we could consider adding another platform if it integrates cleanly into GitHub Actions. All colcon extensions in this org use https://github.com/colcon/ci.

Rob hinted he found a clean for the head to cut issue.

Great, looking forward to it.


Login screen is not responsive

Report

Expected behavior
On smaller screens, I expect the login page to show only the login panel with the fields rather than the art. This can be fixed in the LoginPage.tsx component, and is using TailwindCSS.
Steps to reproduce the problem

Run the platform
Go to http://localhost:4200/login

Logs (if applicable)
No response
Pezzo version
0.6.1
How do you use Pezzo?
None

@0x00zer0day Done. Let me know if you need help!

@arielweinberger Sure, thanks!

@arielweinberger I have opened up a PR, please take a look.

Reopening this as apparently the issue wasn't fixed.


⚠ Bofrost.at has degraded performance

In a1f126f, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1376 ms

Resolved: Bofrost.at performance has improved in 7875764.


Prep for v0.5.0

Hi @cowboyd, I'm in a bit of a bind, so it looks like https://github.com/Everapps/stripe-rails/pull/66 is quite the breaking change, so I'm not sure how I want to version the new release.

It seems wrong to go from v0.4.1 -> v0.5.0 because this is a non backwards compatible change
It also seems wrong to go from v0.4.1 -> v1.0.0 because it hasn't had that many updates to merit a 1.0 release.

what do you think?

I have 'solved' this dilemma by adding a bunch of other breaking changes to this update. Making it more of a 1.0 release. All the breaking changes are meant to keep it to the current relevant standards though I am happy to hear about it if anyone thinks the changes are unreasonable.


Publish the v0.1.0 under org.http4s

Since #105 is merged, I think we can move on and publish v0.1.0. Any objections? cc @http4s/grpc

can we do that without https://github.com/http4s/http4s-grpc/issues/98 ?

Yeah, I don't think we must change the license. If we're doing the license transition properly, we should get the consent of the original authors.

Actually, I somehow forget about this issue https://github.com/http4s/http4s-grpc/issues/70. It seems somewhat crucial to fix before releasing.

I think we should release this as is, then fix #70 . There are number of improvements in the library as is.


Readme, gitignore, and first scripts

Hi
I added a readme file that introduces the project and provides a brief background. It also has an installation section for future users. Furthermore, I added our team logo.
Also, I added a .gitignore file to ignore most of the files we don't need to push.
Finally, I added the first script file for downloading GOES data to the 01.script folder.
Thanks

Love the logo.


CodeChecker analyze and parse fails for non ascii.

Describe the bug
CodeChecker analyze and parse fails for non ascii.
* Hash code for filename generation fails if filename (or path, e.g., see bug report #2435)) contains non ascii letters.
* Hash code generation fails when the source file contains non ascii letters.
In python 2.7 string.encode() is defaulted to "Default encoding is the current default string encoding", i.e, ascii.
Note!
string.encode() is defaulted to  str.encode(encoding="utf-8", errors="strict") in python 3.x
CodeChecker version
Base package version | 6.10.1
To Reproduce
Build a compile_commands.json for attached case.cpp.txt
CodeChecker analyze  compile_commands.json  -o out -e extreme
CodeChecker parse outExpected behavior
What you expected to happen.
How to fix:
The hashlib.md5(somestring.encode()) str.encode(...) calls in codechecker_common/parse.py  and  analyzers/result_handler_base.py should probably use  utf-8  encodings.
case.cpp.txt
Desktop (please complete the following information)

OS: linux

Additional context

Wrong filename in error report,  codechecker_common/parse.py  should have been  codechecker_common/report.py

@josod Thank you for catching this bug. I can reproduce this on the following source code:
void foo(int z) {
  if (z == 0)
    int x = 1 / z; // °
}

int main() {
}

with the following command: CodeChecker analyze -o ~/reports/ ~/build.json.
There was multiple places where we forgot to encode the string to utf-8. I created a patch which will solve this problem: #2457.


added name to li

Thnx for contributing @pharannjames  make sure you follow me and star this repo so that you don't miss the updates and contribute during Hacktoberfest 2020.
Also resolve the conflicts.

@pharannjames thnx for contributing make sure that you follow me and Star this repo so that you don't miss the updates about this repo and contribute during October for hacktoberfest 2020


Update Composer dependencies (2021-01-19-00-11)

Visual regression test passed!
View the visual regression test report

Visual regression test passed!
View the visual regression test report


Update Reference Hardware Specs

Updating to the new hardware specs. CPU got slower but disk faster. This was the trade-off for chosing Cloud VM machines.
The new numbers were generated on a Cloud reference server with:
./target/production/substrate benchmark machine --dev --memory-duration 60 --verify-duration 60 --hash-duration 60 --disk-duration 60

Value changes:

Bench
Old
New
Relative Change
Unit

Blake2256
1029.0
783.27
-23.88 %
MiBs

Sr25519Verify
666
560.67
-15.82 %
MiBs

Memcopy
14.323
11.49
-19.78 %
GiBs

Disk Seq Write
450
950
+111.11 %
MiBs

Disk Rnd Write
200
420
+110.0 %
MiBs

I rounded the new disk speed down a bit (971->950, 445->420) since the disk benches are known to not be as consistent as the CPU ones.
Closes https://github.com/paritytech/substrate/issues/13308. Marking as noteworthy so this is mentioned in the change log.

@ggwpez  Disk Seq Write and Disk Rnd Write values mainly affect which part of the function, my current Disk Seq Write's Disk Rnd Write values are 290.10 MiBs and 125.07 MiBs respectively, can I go run polkadot's verifier node.

Disk Seq Write and Disk Rnd Write values mainly affect which part of the function, my current Disk Seq Write's Disk Rnd Write values are 290.10 MiBs and 125.07 MiBs respectively, can I go run polkadot's verifier node.

You are probably using a network drive and not a NVMe SSD disk as mentioned in the wiki. In AWS it is probably possible to use multiple disks like in GCP. We should extend the explanations in the wiki for that. In GCP I used 4 network disks to archive performance close to a local disk.
Polkadot will update to use the same stats as soon as this merges.

Why do we need faster disks? Instead of a faster CPU?

Why do we need faster disks? Instead of a faster CPU?

It would be nice to have faster CPU as well, but the most widely available cloud hosters only offer server CPUs, like Xeon and EPYC. These are mostly inferior in single-thread speed when compared to consumer hardware like Intel i7 or i9.
That is the trade-off for allowing machines to be virtual instead of bare metal.
Most validators used VMs anyway despite the old bare-metal recommendation, so this should help them to pick good VMs.

Okay, ty for the explanation!

@ggwpez Disk Seq Write's Disk Rnd Write values are 290.10 MiBs and 125.07 MiBs.
My main confusion is, can I use this configuration to run polkadot/kusama verifier nodes. I mainly want to avoid slashing my assets, which should be related to the outgoing blocks of the node, so as long as I have the CPU and Mem up to par, is it possible to run the node. (And then I don't have to worry about my assets getting slashed?

My main confusion is, can I use this configuration to run polkadot/kusama validator-node. I mainly want to avoid slashing my assets, which should be related to the outgoing blocks of the node, so as long as I have the CPU and Mem up to par, is it possible to run the node. (And then I don't have to worry about my assets getting slashed?

I cannot tell you that on a case-by-case basis. These are just recommendations; they are not hard requirements nor exhaustive.
It allows for quickly sorting out bad hosters and VM types. That is mostly the indented use-case.
For more concrete advice you can ask in the 1KV Program matrix/discord chat, they often talk about their server hardware.

What is the sTPS after this chance?

@ggwpez  I can't find the matrix/discord link you mentioned. I would like to confirm that the machines running kusama are not also of this standard. Aren't there many parallel chains on the kusama network. Compared to polkadot, does kusama require the same machine performance as polkadot?

@99Kies if this PR goes in, you should probably assume that both Polkadot and Kusama are updated to the same standard. Generally speaking, Kusama will always be as close to Polkadot as possible in these kinds of things, as that is the purpose of the canary network.

BTW the discussion around this change continues in the issue: https://github.com/paritytech/substrate/issues/13308
We will not merge this before we have not solved the weight noise issue.

@99Kies see https://thousand-validators.kusama.network/#/getting-started the matrix channel is #KusamaValidatorLounge:polkadot.builders.

What is the sTPS after this change? (as compared to 1,500)

Currently getting a build error in the VM ref hardware image :man_facepalming:. Will need to update the DB weights first.

Not sure if the aforementioned issues are solved, but seems like something that we want to see merged.

@oleg-plakida just to check: Substrate and Polkadot is updated? Now just Cumulus, or?

@oleg-plakida just to check: Substrate and Polkadot is updated? Now just Cumulus, or?

Rococo and cumulus remain.

bot rebase

bot merge

bot merge


Roll Plugins from 852051aff103 to d755126dc082 (2 revisions)

https://github.com/flutter/plugins/compare/852051aff103...d755126dc082
2021-06-11<EMAIL_ADDRESS>[flutter_plugin_tools] Migrate publish and version checks to NNBD (flutter/plugins#4037)
2021-06-11<EMAIL_ADDRESS>Standardize example bundle ID domain (flutter/plugins#4040)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-plugins-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


Closure renames static Promise polyfill functions in advanced mode

Compiler used: closure-compiler-v20170423.jar
System: Windows 10
Using advanced mode in combination with Promise polyfills breaks certain Promise functions. In my case Promise.all, but Promise.race is also affected.
compiler command:
java -jar closure-compiler-v20170423.jar --js="./test.js" --compilation_level="ADVANCED" --language_in="ECMASCRIPT6" --language_out="ECMASCRIPT5" --formatting="pretty_print" --js_output_file="./test.min.js"
input file (test.js):
Promise.all([1, 2, 3])
  .then(
    result => console.log(result),
    error => console.log(error)
  );

output file (test.min.js):
var h = "function" == typeof Object.defineProperties ? Object.defineProperty : function(a, c, g) {
  a != Array.prototype && a != Object.prototype && (a[c] = g.value);
}, k = "undefined" != typeof window && window === this ? this : "undefined" != typeof global && null != global ? global : this;
function l() {
  l = function() {
  };
  k.Symbol || (k.Symbol = m);
}
var n = 0;
function m(a) {
  return "jscomp_symbol_" + (a || "") + n++;
}
function p() {
  l();
  var a = k.Symbol.iterator;
  a || (a = k.Symbol.iterator = k.Symbol("iterator"));
  "function" != typeof Array.prototype[a] && h(Array.prototype, a, {configurable:!0, writable:!0, value:function() {
    return q(this);
  }});
  p = function() {
  };
}
function q(a) {
  var c = 0;
  return t(function() {
    return c < a.length ? {done:!1, value:a[c++]} : {done:!0};
  });
}
function t(a) {
  p();
  a = {next:a};
  a[k.Symbol.iterator] = function() {
    return this;
  };
  return a;
}
function u(a) {
  p();
  var c = a[Symbol.iterator];
  return c ? c.call(a) : q(a);
}
for (var v = k, w = ["Promise"], x = 0; x < w.length - 1; x++) {
  var y = w[x];
  y in v || (v[y] = {});
  v = v[y];
}
var A = w[w.length - 1], B = v[A], C = function() {
  function a(b) {
    this.b = 0;
    this.h = void 0;
    this.a = [];
    var a = this.f();
    try {
      b(a.resolve, a.reject);
    } catch (e) {
      a.reject(e);
    }
  }
  function c() {
    this.a = null;
  }
  if (B) {
    return B;
  }
  c.prototype.b = function(a) {
    this.a || (this.a = [], this.f());
    this.a.push(a);
  };
  c.prototype.f = function() {
    var a = this;
    this.c(function() {
      a.h();
    });
  };
  var g = k.setTimeout;
  c.prototype.c = function(a) {
    g(a, 0);
  };
  c.prototype.h = function() {
    for (; this.a && this.a.length;) {
      var a = this.a;
      this.a = [];
      for (var d = 0; d < a.length; ++d) {
        var e = a[d];
        delete a[d];
        try {
          e();
        } catch (f) {
          this.g(f);
        }
      }
    }
    this.a = null;
  };
  c.prototype.g = function(a) {
    this.c(function() {
      throw a;
    });
  };
  a.prototype.f = function() {
    function a(a) {
      return function(b) {
        e || (e = !0, a.call(d, b));
      };
    }
    var d = this, e = !1;
    return {resolve:a(this.o), reject:a(this.g)};
  };
  a.prototype.o = function(b) {
    if (b === this) {
      this.g(new TypeError("A Promise cannot resolve to itself"));
    } else {
      if (b instanceof a) {
        this.s(b);
      } else {
        a: {
          switch(typeof b) {
            case "object":
              var d = null != b;
              break a;
            case "function":
              d = !0;
              break a;
            default:
              d = !1;
          }
        }
        d ? this.m(b) : this.i(b);
      }
    }
  };
  a.prototype.m = function(a) {
    var b = void 0;
    try {
      b = a.then;
    } catch (e) {
      this.g(e);
      return;
    }
    "function" == typeof b ? this.u(b, a) : this.i(a);
  };
  a.prototype.g = function(a) {
    this.j(2, a);
  };
  a.prototype.i = function(a) {
    this.j(1, a);
  };
  a.prototype.j = function(a, d) {
    if (0 != this.b) {
      throw Error("Cannot settle(" + a + ", " + d | "): Promise already settled in state" + this.b);
    }
    this.b = a;
    this.h = d;
    this.l();
  };
  a.prototype.l = function() {
    if (this.a) {
      for (var a = this.a, d = 0; d < a.length; ++d) {
        a[d].call(), a[d] = null;
      }
      this.a = null;
    }
  };
  var z = new c;
  a.prototype.s = function(a) {
    var d = this.f();
    a.c(d.resolve, d.reject);
  };
  a.prototype.u = function(a, d) {
    var b = this.f();
    try {
      a.call(d, b.resolve, b.reject);
    } catch (f) {
      b.reject(f);
    }
  };
  a.prototype.then = function(b, d) {
    function e(a, b) {
      return "function" == typeof a ? function(b) {
        try {
          f(a(b));
        } catch (D) {
          c(D);
        }
      } : b;
    }
    var f, c, g = new a(function(a, b) {
      f = a;
      c = b;
    });
    this.c(e(b, f), e(d, c));
    return g;
  };
  a.prototype.catch = function(a) {
    return this.then(void 0, a);
  };
  a.prototype.c = function(a, d) {
    function b() {
      switch(c.b) {
        case 1:
          a(c.h);
          break;
        case 2:
          d(c.h);
          break;
        default:
          throw Error("Unexpected state: " + c.b);
      }
    }
    var c = this;
    this.a ? this.a.push(function() {
      z.b(b);
    }) : z.b(b);
  };
  a.resolve = function(b) {
    return b instanceof a ? b : new a(function(a) {
      a(b);
    });
  };
  a.reject = function(b) {
    return new a(function(a, c) {
      c(b);
    });
  };
  a.b = function(b) {
    return new a(function(d, c) {
      for (var e = u(b), g = e.next(); !g.done; g = e.next()) {
        a.resolve(g.value).c(d, c);
      }
    });
  };
  a.a = function(b) {
    var d = u(b), c = d.next();
    return c.done ? a.resolve([]) : new a(function(b, e) {
      function g(a) {
        return function(c) {
          f[a] = c;
          r--;
          r || b(f);
        };
      }
      var f = [], r = 0;
      do {
        f.push(void 0), r++, a.resolve(c.value).c(g(f.length - 1), e), c = d.next();
      } while (!c.done);
    });
  };
  a.$jscomp$new$AsyncExecutor = function() {
    return new c;
  };
  return a;
}();
C != B && null != C && h(v, A, {configurable:!0, writable:!0, value:C});
Promise.all([1, 2, 3]).then(function(a) {
  return console.log(a);
}, function(a) {
  return console.log(a);
});

Notice the functions near the end of the file called a.b and a.a. These should be race and all.
They are correctly included in simple mode:
java -jar closure-compiler-v20170423.jar --js="./test.js" --compilation_level="SIMPLE" --language_in="ECMASCRIPT6" --language_out="ECMASCRIPT5" --formatting="pretty_print" --js_output_file="./test.min.js"
var $jscomp = $jscomp || {};
$jscomp.scope = {};
$jscomp.defineProperty = "function" == typeof Object.defineProperties ? Object.defineProperty : function(a, d, e) {
  a != Array.prototype && a != Object.prototype && (a[d] = e.value);
};
$jscomp.getGlobal = function(a) {
  return "undefined" != typeof window && window === a ? a : "undefined" != typeof global && null != global ? global : a;
};
$jscomp.global = $jscomp.getGlobal(this);
$jscomp.SYMBOL_PREFIX = "jscomp_symbol_";
$jscomp.initSymbol = function() {
  $jscomp.initSymbol = function() {
  };
  $jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol);
};
$jscomp.symbolCounter_ = 0;
$jscomp.Symbol = function(a) {
  return $jscomp.SYMBOL_PREFIX + (a || "") + $jscomp.symbolCounter_++;
};
$jscomp.initSymbolIterator = function() {
  $jscomp.initSymbol();
  var a = $jscomp.global.Symbol.iterator;
  a || (a = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol("iterator"));
  "function" != typeof Array.prototype[a] && $jscomp.defineProperty(Array.prototype, a, {configurable:!0, writable:!0, value:function() {
    return $jscomp.arrayIterator(this);
  }});
  $jscomp.initSymbolIterator = function() {
  };
};
$jscomp.arrayIterator = function(a) {
  var d = 0;
  return $jscomp.iteratorPrototype(function() {
    return d < a.length ? {done:!1, value:a[d++]} : {done:!0};
  });
};
$jscomp.iteratorPrototype = function(a) {
  $jscomp.initSymbolIterator();
  a = {next:a};
  a[$jscomp.global.Symbol.iterator] = function() {
    return this;
  };
  return a;
};
$jscomp.makeIterator = function(a) {
  $jscomp.initSymbolIterator();
  var d = a[Symbol.iterator];
  return d ? d.call(a) : $jscomp.arrayIterator(a);
};
$jscomp.polyfill = function(a, d, e, b) {
  if (d) {
    e = $jscomp.global;
    a = a.split(".");
    for (b = 0; b < a.length - 1; b++) {
      var g = a[b];
      g in e || (e[g] = {});
      e = e[g];
    }
    a = a[a.length - 1];
    b = e[a];
    d = d(b);
    d != b && null != d && $jscomp.defineProperty(e, a, {configurable:!0, writable:!0, value:d});
  }
};
$jscomp.EXPOSE_ASYNC_EXECUTOR = !0;
$jscomp.FORCE_POLYFILL_PROMISE = !1;
$jscomp.polyfill("Promise", function(a) {
  function d() {
    this.batch_ = null;
  }
  if (a && !$jscomp.FORCE_POLYFILL_PROMISE) {
    return a;
  }
  d.prototype.asyncExecute = function(c) {
    null == this.batch_ && (this.batch_ = [], this.asyncExecuteBatch_());
    this.batch_.push(c);
    return this;
  };
  d.prototype.asyncExecuteBatch_ = function() {
    var c = this;
    this.asyncExecuteFunction(function() {
      c.executeBatch_();
    });
  };
  var e = $jscomp.global.setTimeout;
  d.prototype.asyncExecuteFunction = function(c) {
    e(c, 0);
  };
  d.prototype.executeBatch_ = function() {
    for (; this.batch_ && this.batch_.length;) {
      var c = this.batch_;
      this.batch_ = [];
      for (var a = 0; a < c.length; ++a) {
        var b = c[a];
        delete c[a];
        try {
          b();
        } catch (f) {
          this.asyncThrow_(f);
        }
      }
    }
    this.batch_ = null;
  };
  d.prototype.asyncThrow_ = function(c) {
    this.asyncExecuteFunction(function() {
      throw c;
    });
  };
  var b = function(c) {
    this.state_ = 0;
    this.result_ = void 0;
    this.onSettledCallbacks_ = [];
    var a = this.createResolveAndReject_();
    try {
      c(a.resolve, a.reject);
    } catch (h) {
      a.reject(h);
    }
  };
  b.prototype.createResolveAndReject_ = function() {
    function c(c) {
      return function(k) {
        b || (b = !0, c.call(a, k));
      };
    }
    var a = this, b = !1;
    return {resolve:c(this.resolveTo_), reject:c(this.reject_)};
  };
  b.prototype.resolveTo_ = function(c) {
    if (c === this) {
      this.reject_(new TypeError("A Promise cannot resolve to itself"));
    } else {
      if (c instanceof b) {
        this.settleSameAsPromise_(c);
      } else {
        a: {
          switch(typeof c) {
            case "object":
              var a = null != c;
              break a;
            case "function":
              a = !0;
              break a;
            default:
              a = !1;
          }
        }
        a ? this.resolveToNonPromiseObj_(c) : this.fulfill_(c);
      }
    }
  };
  b.prototype.resolveToNonPromiseObj_ = function(c) {
    var a = void 0;
    try {
      a = c.then;
    } catch (h) {
      this.reject_(h);
      return;
    }
    "function" == typeof a ? this.settleSameAsThenable_(a, c) : this.fulfill_(c);
  };
  b.prototype.reject_ = function(a) {
    this.settle_(2, a);
  };
  b.prototype.fulfill_ = function(a) {
    this.settle_(1, a);
  };
  b.prototype.settle_ = function(a, b) {
    if (0 != this.state_) {
      throw Error("Cannot settle(" + a + ", " + b | "): Promise already settled in state" + this.state_);
    }
    this.state_ = a;
    this.result_ = b;
    this.executeOnSettledCallbacks_();
  };
  b.prototype.executeOnSettledCallbacks_ = function() {
    if (null != this.onSettledCallbacks_) {
      for (var a = this.onSettledCallbacks_, b = 0; b < a.length; ++b) {
        a[b].call(), a[b] = null;
      }
      this.onSettledCallbacks_ = null;
    }
  };
  var g = new d;
  b.prototype.settleSameAsPromise_ = function(a) {
    var b = this.createResolveAndReject_();
    a.callWhenSettled_(b.resolve, b.reject);
  };
  b.prototype.settleSameAsThenable_ = function(a, b) {
    var c = this.createResolveAndReject_();
    try {
      a.call(b, c.resolve, c.reject);
    } catch (f) {
      c.reject(f);
    }
  };
  b.prototype.then = function(a, d) {
    function c(a, b) {
      return "function" == typeof a ? function(b) {
        try {
          f(a(b));
        } catch (l) {
          e(l);
        }
      } : b;
    }
    var f, e, k = new b(function(a, b) {
      f = a;
      e = b;
    });
    this.callWhenSettled_(c(a, f), c(d, e));
    return k;
  };
  b.prototype.catch = function(a) {
    return this.then(void 0, a);
  };
  b.prototype.callWhenSettled_ = function(a, b) {
    function c() {
      switch(d.state_) {
        case 1:
          a(d.result_);
          break;
        case 2:
          b(d.result_);
          break;
        default:
          throw Error("Unexpected state: " + d.state_);
      }
    }
    var d = this;
    null == this.onSettledCallbacks_ ? g.asyncExecute(c) : this.onSettledCallbacks_.push(function() {
      g.asyncExecute(c);
    });
  };
  b.resolve = function(a) {
    return a instanceof b ? a : new b(function(b, c) {
      b(a);
    });
  };
  b.reject = function(a) {
    return new b(function(b, c) {
      c(a);
    });
  };
  b.race = function(a) {
    return new b(function(c, d) {
      for (var e = $jscomp.makeIterator(a), h = e.next(); !h.done; h = e.next()) {
        b.resolve(h.value).callWhenSettled_(c, d);
      }
    });
  };
  b.all = function(a) {
    var c = $jscomp.makeIterator(a), d = c.next();
    return d.done ? b.resolve([]) : new b(function(a, e) {
      function h(b) {
        return function(c) {
          f[b] = c;
          g--;
          0 == g && a(f);
        };
      }
      var f = [], g = 0;
      do {
        f.push(void 0), g++, b.resolve(d.value).callWhenSettled_(h(f.length - 1), e), d = c.next();
      } while (!d.done);
    });
  };
  $jscomp.EXPOSE_ASYNC_EXECUTOR && (b.$jscomp$new$AsyncExecutor = function() {
    return new d;
  });
  return b;
}, "es6-impl", "es3");
Promise.all([1, 2, 3]).then(function(a) {
  return console.log(a);
}, function(a) {
  return console.log(a);
});

This might have something to do with how Promise is defined in the
polyfill: it's a local variable, so maybe the compiler thinks it's
properties are eligible for renaming? In general, static methods are tricky
since the compiler really wants to collapse and rename them, and I think in
this case it has an especially hard time tracking the fact that it's
called. Certainly if we had a "no rename" annotation that could help here,
but maybe there's a better approach already available.

Do you have an advice on how to work around this issue?
I see a few options:

use goog.Promise
use simple mode (not really an option)
use third party Promise polyfill

I think option three might be the better solution until this is fixed.

@brad4d
Maybe we should just use quoted properties here?

@shicks I fear that would break type checking.
Could we put @export on the declarations?
@dimvar Since PolyfillPromise is declared to extend Promise, shouldn't its static methods be protected?

@brad4d We don't model static inheritance in our type system. It's becoming a bigger problem each day.
@export only works if we add a polyfill and autoinject it for the export functions - we can't have a closure-library dependence. You can however manually export them: Promise['race'] = Promise.race; That's a proper export that will work everywhere and not break type checking.
You also might be able to add them with Object.defineProperties, but that won't work for ES3.

OK, thanks.
I'll do a change to explicitly export as @ChadKillingsworth described.

This isn't really a type system issue.  The issue, if I understand correctly, is collapse properties is aggressive about collapse static properties.  Specifically, it always collapses properties for type annotated constructors even if they otherwise escape.  In general, constructors always escape as they are always available as the "constructor" property, so escape analysis by itself is too loose to be useful.  To do this safely, we would need to do a type based analysis of the possible property references.  Even with that were available we would still need to link the Promise type and internal polyfill declared type: it might be necessary to directly assign to the global "Promise" but this is pure speculations at this point.

Even with that were available we would still need to link the Promise type and internal polyfill declared type

Isn't that a type system issue? Namely that Promise.race isn't inheritable?

The problem isn't in CollapseProperties.
From the output of this repro, one can see that DisambiguateProperites renames race and all, but not resolve and reject.
build.sh
#!/bin/bash
closure-compiler \
  --compilation_level ADVANCED \
  --print_source_after_each_pass \
  --formatting PRETTY_PRINT \
  --js main.js

main.js
function f() {
  return Promise.resolve(1);
}
f().then(console.log('done'));

We didn't catch this in our internal testing, because it seems we don't have DisambiguateProperties enabled for our runtime tests.

We should probably enable DisambiguateProperties, no?

Yes, I think we should.

At @MatrixFrog 's suggestion I added this bit of code to the runner and recompiled my repro to find out why DisambiguateProperties did not rename 'reject' and 'resolve'.
ImmutableMap.Builder<String, CheckLevel> builder = ImmutableMap.builder();
builder.put("race", CheckLevel.ERROR);
builder.put("all", CheckLevel.ERROR);
builder.put("reject", CheckLevel.ERROR);
builder.put("resolve", CheckLevel.ERROR);
options.setPropertyInvalidationErrors(builder.build());

I got this:
 [synthetic:es6/promise] :194: ERROR - Property disambiguator skipping all instances of property resolve because of type {reject: function (*=): ?, resolve: function ((IThenable<TYPE>|TYPE|null|{then: ?})=): ?} node GETPROP 194 [length: 24] [source_file:  [synthetic:es6/promise] ] : function ((IThenable<TYPE>|TYPE|null|{then: ?})=): ?.
      executor(resolveAndReject.resolve, resolveAndReject.reject);
               ^^^^^^^^^^^^^^^^^^^^^^^^

 [synthetic:es6/promise] :194: ERROR - Property disambiguator skipping all instances of property reject because of type {reject: function (*=): ?, resolve: function ((IThenable<TYPE>|TYPE|null|{then: ?})=): ?} node GETPROP 194 [length: 23] [source_file:  [synthetic:es6/promise] ] : function (*=): ?.
      executor(resolveAndReject.resolve, resolveAndReject.reject);
                                         ^^^^^^^^^^^^^^^^^^^^^^^

Which refers to this definition in our promise.js file.
https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/js/es6/promise.js#L194
So, it seems we just got lucky with those.

I propose to enable DisambiguateProperties in our runtime tests and see what shakes loose.

I support that plan - especially since type based optimizations are enabled by default externally.

runtime_tests with --disambiguage_properties failed only for tests in the runtime_tests/polyfill_tests/promise subdirectory, so that's good news.

Fix for this submitted internally. Should get autoclosed by Monday's github push.
Also enabled --disambiguage_properties for runtime_tests internally, so we won't have this happen with future polyfills.


ls --color=never

Please add --color=never param to ls,
otherwise file names contain color codes:
.[1;34m..[0m
.[1;34m...[0m
.[1;34macct.[0m
.[1;34mcache.[0m
.[1;34mdata.[0m
.[1;34mdev.[0m
.[1;34mmnt.[0m
.[1;34mproc.[0m
etc

What kind of *box are you happen to have on your device? On my device, starting from CM 13 busybox was replaced by toolbox.

Yes, you're right I have toolbox too (It's android TV device). It seems like that happened because I installed a full version of busybox with all links, so now it uses ls from busybox by default.
It may be a good idea to have a parameter in the plugin config for ls

Yup, I can provide another config option for that. Stay tuned :)

Done with latest commit.


I can no longer see the email address attached to a project in the AdminBro on production

Hey team!
I need to do some outreach to projects regarding qf rounds here soon.
I used to be able to see the email address attached to the project in the project tab.
But I can no longer see this :(
I no longer see it on the project tab or the project 'view' page.

https://mainnet.serve.giveth.io/admin/resources/Project/records/3007/show
Is there a way we can bring that back? I suppose I could try to copy the admin ID and then filter on the user page and get the email there. However, it It will make the process super tedious to fetch all of the email addresses that I need to do the outreach.
@divine-comedian - not sure who to assign this to.

@RamRamez - can you investigate this and make the required changes, I've marked this bug as P0 as we need to carry out the prep for the QF Round and Ashley is blocked.

@WhyldWanderer It's fixed on production
@maryjaf @LatifatAbdullahi please test and verify on production

@WhyldWanderer - can you test to see if your issue is fixed

@divine-comedian it's on adminUserId column, just like before

yes! Its fixed... you guys are the best!


Fix/change some messaging attributes to match conventions

I used opentelemetry-semantic_conventions in one of my projects and noticed that some attributes are different from the docs on following pages:

https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/#messaging-attributes
https://opentelemetry.io/docs/specs/semconv/messaging/kafka/

All kafka attributes described in docs are present in opentelemetry-semantic_conventions gem now.
Messaging batch count is added because I wat to use it in my code and it was missing before.

👋 Hi @s22su! Thank you for your contribution!
I'm not sure about the exact status of the semantic conventions gem right now. The approvers/maintainers spoke in January about wanting to rework it. I'll bring your PR up during the SIG meeting tomorrow and try to get some next steps.

Hi @s22su, I'm sorry for taking so long to get back to you on this.
Our approach to semantic conventions is in flux. Our current approach is brittle for a number of reasons, including we don't have a great way to handle removals of constants without potentially breaking things for users upstream.
We're grateful that you pointed out the changes in the messaging conventions and opened this PR. Your PR reinvigorated our discussion about #1567, opened by @robbkidd. This PR presents an alternate approach for the semantic conventions gem.
As an alternative to your PR, we'd like to update the messaging conventions portion of #1567 to include the latest content.
Would you be willing to test out that PR, once we've updated it, to see if it works in your environment?

@kaylareopelle it seems to me like the intended usage of the gem after linked PR is merged, will be to update opentelemetry-semantic_conventions gem version (I believe it will be a major version bump) and use OpenTelemetry::SemanticConventions_1_20_0::Trace::MESSAGING_KAFKA_MESSAGE_KEY instead of OpenTelemetry::SemanticConventions::Trace::MESSAGING_KAFKA_MESSAGE_KEY so not sure what is there is to test.
When next version will be released I'll happily use it in our internal library. Feel free to close this PR, I'll keep an eye on #1567 to know when I can update.

Thanks for your understanding, @s22su.


Julia functionality and fixes for pymc3_turing_comparison

Hi Valerio,
I've implemented the canonical way to access the inner-scope trace on your sampler loop. There may be better ways to do this like overwriting a non-global variable one layer above, but for now I've left it as is.
There's also a fix to the way symbols were defined and accessed in the csv reader.
I've added inline docstrings for all the functions other than main(0 but you'll find that it doesn't take any advantage of Julia's documentation maker. It doesn't really matter for us because this is not a real package but I thought I'd mention it. The convention for docstrings (and other things) can be found at https://github.com/invenia/BlueStyle.
I'll get around to writing the times and traces outputs to a csv when I find time to work on this again, or you can do it yourself if you have time.
-mt

Hi @mtaung
thank you for the PR this is amazing!


Normalize line endings

We don't need to merge this before we ship 0.7 (#327), but this will close #334.
There is a good chance GitHub will refuse to merge the remaining open PRs. To resolve, we will want to set git config --global merge.renormalize true, ensure master is up-to-date, and then either:

git rebase master to replay changes after the normalization
git merge master to bring in these changes

There is a good chance GitHub will refuse to merge the remaining open PRs

That's good incentive to accept / reject as PRs as makes sense for 0.7.0.  :-)

We can also include #341 in this PR, when the time comes.

Well crap, should have waited for build to run: https://ci.appveyor.com/project/dahlbyk/posh-git/build/0.7.158. Tests aren't happy about the line ending normalization.

I can fix that tonight, if you want.


Podium demo - Use document template

Podium has a concept of a document template. A document template is normally the markup which encapsulates a podlet and a layout and looks something like this:
<html>
  <head><title>My title</title></head>
  <body>
    <!-- Podlet / layout content goes here -->
  </body>
</html>

This concept is there to help development of Podlets withing the same constraints as it will be included in in a Layout.
Lets say that in an organization all pages should have a CSS class on the <body> tag. Then all Layouts should have this and one would also like to have this in development when developing Podlets.
With this document template concept one can then make a node.js module which contains a such a document where the  <body> tag has such a CSS class. All Layouts and Podlets in an organization can then include this module as a dependency to their project and they will all be withing the constraints of this document template.
Podium does ship with a basic document template. This PR makes use of this default document template.

Hi Trygve, I've reworked the Podium example. Could you have another look at them?

Closing this PR because I already updated the examples earlier.


[Tracking] Interaction tests for Files

With #7234 , we are adding interaction tests to Files. This issue is for tracking the changes that still need to be done:

[ ] Move Files, Files.Package ... into a src folder and the test projects into a tests folder
[ ] Add running interaction tests to CI
[ ] Improve interaction test coverage (optional)
[ ] Anything else?

@yaichenbaum FYI

@chingucoding support for testing in different languages?

@chingucoding support for testing in different languages?

Do you mean to write the tests language agnostic? If so, the current PR solves this through automation IDs.
Or do you mean to write tests that actively test the app with different languages?

Do you mean to write the tests language agnostic? If so, the current PR solves this through automation IDs.

That's what I meant 👍