chore: spell check

Fixes #1134
Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.

[ ] If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag.
[ ] I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code.
[ ] Every change is related to the PR description.
[ ] I have linked this pull request to relevant issues (if any exist).

Benchmark results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit a3649df0 and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
45,444
179,588
716,132

l1_rollup_calldata_gas
222,948
868,136
3,449,564

l1_rollup_execution_gas
842,035
3,595,244
22,204,933

l2_block_processing_time_in_ms
1,037
3,938
15,570

note_successful_decrypting_time_in_ms
325 (-2%)
1,018 (-1%)
3,759 (-1%)

note_trial_decrypting_time_in_ms
:warning: 26.0 (-26%)
107 (-1%)
138 (-1%)

l2_block_building_time_in_ms
9,058
36,335 (+1%)
151,420

l2_block_rollup_simulation_time_in_ms
6,731 (+1%)
27,060 (+1%)
106,651 (+1%)

l2_block_public_tx_process_time_in_ms
2,287 (-1%)
9,147 (-1%)
44,006 (-3%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
14,203 (-1%)
31,497

note_history_successful_decrypting_time_in_ms
2,319 (-2%)
4,557 (-3%)

note_history_trial_decrypting_time_in_ms
122 (+1%)
148

node_database_size_in_bytes
1,647,181
1,189,982

pxe_database_size_in_bytes
27,188
54,187

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
43.7
56,577
14,745

private-kernel-ordering
21.4
20,137
8,089

base-rollup
851
631,605
811

root-rollup
38.1 (+1%)
4,072
1,097

private-kernel-inner
36.4
72,288
14,745

public-kernel-private-input
46.9 (-1%)
37,359
14,745

public-kernel-non-first-iteration
27.9 (-1%)
37,401
14,745

merge-rollup
0.877
2,592
873


Balance pass on experiment durations and Biome

An overview of Science experiments based on Node, completion time and whether they're biome dependant.
Note, this is based on commit 5e03c99 From Standecco /ROKerbalism
Legend:
Situations
L: Landed
S: Splashed
FL: Flying Low
FH: Flying High
SL: Space Low
SH: Space High
(B) Biome for that area
+Starting node:

Supersonic Flight Analysis 1 Hour, FL/FH
Telemetry Analysis 5 Min, L(B)/S(B)/FL(B)/FH/SL/SH
Biological sample: 30 Min, L/FH/SL/SH
Pressure Scan: 10 Min, L(B)/FL(B)/FH/SL/SH
Temprature Scan: 10 Min, L(B)/FL(B)/FH(B)/SL/SH
Planetary Photography: 1 Min, SL(B)

+Early Science:

Mass Spectrometry: 60~ Min, L(B)/FH(B)/SL(B)/SH
Biological Sample 2: 60~ Min, SL/SH

+Satellite Era Science:

Photography 2: 2~Years, SL (Naming convention change?)
Cosmic Ray Science: 91 Days, L/FH/SL/SH
Magnetic Scan: 30~ Days, L(B)/SL(B)/SH
Micrometorite Detection: 91~Days, SL/SH
Visible Imaging: 20~ Min, L(B)/FH(B)/SL(B)/SH

+Early Human Spaceflight Era Science:

Infrared Radiometry: 1 Day, SL(B)/SH(B)
Orbital Perturbation Experiment: 10 Years, SL/SH

+Interplanetary Era Science:

Cosmic Ray Science 2: 91 Days, L/FH/SL/SH
Infrared Radiometry 2: 7 Days SL(B)/SH(B)
Imaging Spectrometry: 91 Days SL(B)/SH(B) (Breaks naming convention)
Magnetic Scan 2: 30~ Days L(B)/SL(B)/SH
Mass Spectometry 2: 14 Days, L(B)/FH(B)/SL(B)/SH
Scoop Surface Material: N/A
Visible imaging 2: 1 Hour, Landed/SL(B)/SH

+Lunar exploration Science era:

Mass Spectrometry 3: 91 Days,  L(B)/FH(B)/SL(B)/SH
RPWS:                    7 Days, L/SL/SH

+Surface Science:

Photography 3: 10 Years, SL

+Deep Space Science Experiments: (Note, this node contains parts with multiple same type experiments, (Photography 1,2,3 Etc) and the next nodes continue this trend)

Photography 4: 20 Years, SL
Magnetic Scan 3: 91 Days, L(B)/SL(B)/SH
Infrared Radiometry 3: 30 Days, SL(B)/SH(B)
Image Spectometry 2: 91 Days, SL(B)/SH(B)
RPWS 3 (missing number 2): 180~ Days, L/SL/SH
Visible Imaging 3: 2 Hours, L/SL(B)/SH
Mass Spectometry 4: 91 Days L(B)/FH(B)/SL(B)/SH

+Exploration Era Science

Image Spectometry 3: 91~Days SL(B)/SH(B)
Anomaly: Advanced Visible Imaging Device has no new science, but is lighter than the one in Deep space science experiments

+Sample Return Science
RPWS 3: 180~ Days, L/SL/SH
Anomaly: The Radio and Plasma Wave Science RPWS has duplicate entries for RPWS 3, this along with there being no RPWS 2 experiment.
Anomaly: Pressure Modulated Infrared Radiometer has no new science, and is worse than the corresponding one in Deep Space Science Experiments.
+Advanced Science experiments:
Anomaly: High resolution imaging device has no new science and is of the Visible imaging type, Maybe Turn it into a deep space telescope experiment?
No more science found in the science nodes after this.

95% of the work should have already been done now, thanks again for the help!


[suggestion] Make API repository

It would make it a lot easier for developers using your API to have a Jitpack repository. Then people on maven or gradle can use it and nor have to worry about it breaking between builds made on Windows or Linux.

I just published the API to the CodeMC repository.
Check the wiki to know how to use it in Maven or Gradle.


Web app: the "delete project" button doesn't match the border-radius of its container.

This is cutting corners.

Literally unusable


Set up in-repo-controlled Windows LUCI for flutter/plugins

Currently the process for standing up new Windows CI tasks (which use LUCI) in flutter/plugins require changes to recipes in a separate repo. This makes them much more cumbersome to write, test, and land than changing Linux or macOS tasks (which use Cirrus). In discussion with infra folks we can set up a short-term solution to this that can be easily migrated to the eventual long-term in-repo-management system once that's implemented, using a system like what's currently used for Cocoon:

Write one generic recipe that constructs LUCI task specifications dynamically from configuration files in flutter/plugins.
Have the steps of those tasks implemented as scripts in flutter/plugins whose paths are set in the config file.

The Cocoon version has a single config file since there's just one target; for flutter/plugins we generally want the ability to run fundamentally different tests in different targets in order to make it easier to see what is failing, so we'll add one more variable to that process that allows the builder spec (in .ci.yaml) to set the config file to use.
Once that's in place, adjusting an existing LUCI target will just be changes to local scripts and/or a local config file, and standing up a new target will just be new scripts and a new config file.
My plan is to use (extremely minimal) bash for the script files, in order to be consistent with Cirrus configuration (and because bat is substantially worse, and would add a new language). The Windows bots have bash, and we're already using it for the existing Windows plugins recipe without issue, so it shouldn't be an issue here. It will be a little more annoying than Cirrus still since we'll need to make trivial bash scripts for every step, vs. just being able to have them inline in the one file, but still a huge improvement over writing them in python in a separate repository.

This is fixed! More targets and tests will be brought up shortly, but the structure is now in place.


Cannot have multiple definitions for the same class name in TS

Please search existing issues before creating a new one.
DON'T DELETE THIS! FILL THESE SECTIONS OUT!

Consider the following folder structure:
/bye
> say.ts
/hi
> say.ts

where say.ts are 2 different declaration of class with the same class name (Say).
import { Say } from './bye/say';

function myFunction() {
    const bye = new Say();
    const str = bye.word();
    return;
}

Expected Behavior
bye.word() should return "bye"
Actual Behavior
bye.word() is returning "hi"
Steps to Reproduce the Problem
See project: https://github.com/allisonchanykei/google-clasp-issue
See GAS: https://script.google.com/d/14cRtYckxQeHwi051IT61ITxWe5V3kDlpGfjy3UsawPGdfRR4lTvbLkz-/edit?usp=sharing

Specifications

Node version (node -v): 8.11.2
Version (clasp -v): 2.1.0
OS (Mac/Linux/Windows): Windows

@allisonchanykei Google Apps Script has no support for modules (neither CommonJs nor es). All your transpiled code exists in the same context (i.e. every *.gs share the same this)
To achieve code isolation, I (strongly) suggest you look at TypeScript namespace statement.
There is some example to get you started under docs/typescript.md too


bootstrapds: Static listeners support HTTP/1.0

Please provide a description of this PR:
xref: #44889
To help us figure out who should review this PR, please put an X in all the areas that this PR affects.

[ ] Ambient
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[X] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[X] User Experience
[ ] Developer Infrastructure

@zengyuxing007: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
da1bb40a52d6a69162a50779d1fd13411fe06b23
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@zengyuxing007: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
da1bb40a52d6a69162a50779d1fd13411fe06b23
link
true
/test release-notes

lint_istio
da1bb40a52d6a69162a50779d1fd13411fe06b23
link
true
/test lint

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@zengyuxing007: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
da1bb40a52d6a69162a50779d1fd13411fe06b23
link
true
/test release-notes

lint_istio
da1bb40a52d6a69162a50779d1fd13411fe06b23
link
true
/test lint

gencheck_istio
da1bb40a52d6a69162a50779d1fd13411fe06b23
link
true
/test gencheck

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@zengyuxing007: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

gencheck_istio
7739956099af343f977a5e7db9d3bae95abad49b
link
true
/test gencheck

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@zengyuxing007: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

gencheck_istio
7739956099af343f977a5e7db9d3bae95abad49b
link
true
/test gencheck

lint_istio
7739956099af343f977a5e7db9d3bae95abad49b
link
true
/test lint

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Update to depend on official releases.

When the browser wallet is released with the updated wallet API, the libraries included in this repository should be updated to point to the official release of @concordium/browser-wallet-api-helpers.

@soerenbf this is done, right?


Cannot jump to file from Integrated Terminal

VSCode Version: 1.2
OS Version: OS X

Steps to Reproduce:

Open the terminal and make a compilation error in your favorite language
Click on the file name it won't jump to the chosen file.

--> Monitor: Files changed, Building...
go build -v -i
github.com/REDACTED/REDACTED-ms/REDACTED
REDACTED/crumb.go:223: undefined: rpcCall

When selecting and clicking on REDACTED/crumb.go:223 it won't jump to the file.
Check how iTerm2 and ACME addresses this issue.

:+1: Do want!

The latest insiders build has a command workbench.action.terminal.focus which is both available in the F1 command palette under "Focus Terminal" and available to attach to a keybinding.

@tht13 what you said does not address the issue.

Apologies, I'm not sure why I thought that was relevant

Doing this will likely be based on xterm.js' linkify addon which is currently not production ready. So this is blocked on https://github.com/sourcelair/xterm.js/issues/27

This would especially be handy for js stack traces
SyntaxError: Unexpected token )     at Object.exports.compile (/Users/daniel/Code/planuni/node_modules/jade/lib/jade.js:160:8)     at Object.exports.render (/Users/daniel/Code/planuni/node_modules/jade/lib/jade.js:199:17)     at View.exports.renderFile [as engine] (/Users/daniel/Code/planuni/node_modules/jade/lib/jade.js:227:13)     at View.render (/Users/daniel/Code/planuni/node_modules/express/lib/view.js:126:8)     at tryRender (/Users/daniel/Code/planuni/node_modules/express/lib/application.js:639:10)     at EventEmitter.render (/Users/daniel/Code/planuni/node_modules/express/lib/application.js:591:3)     at ServerResponse.render (/Users/daniel/Code/planuni/node_modules/express/lib/response.js:960:7)     at /Users/daniel/Code/planuni/design/pug.js:20:7     at Layer.handle [as handle_request] (/Users/daniel/Code/planuni/node_modules/express/lib/router/layer.js:95:5)     at next (/Users/daniel/Code/planuni/node_modules/express/lib/router/route.js:131:13)

Keeping this open to track as there will be some integration work to do once it's implemented upstream.

I gave an update to this in https://github.com/Microsoft/vscode/issues/17897#issuecomment-270182060:

My plan with linkify was to wait until it's worked out upstream either by myself or another contributor and then mold it so it works with VS Code. This may need to be put into xterm.js' core depending on how it performs. Also simply enabling addons will not just let it work as xterm.js is build for the browser, not electron. linkify adds <a> tags which will need to be handled specially within VS Code and thus will need tighter integration.


update Dockerfile used in the release pipeline

We use Louhi in our release pipeline. It underneath uses GCB.
We use this Dockerfile to build an image that contains go toolchain and node runtime so that we can use it in GCB.

The changes in this PR doesn't affect e2e tests for sure.
The e2e test failure is related to https://github.com/GoogleContainerTools/kpt/pull/3228#issuecomment-1139953207.


Allow Apache templates to be extended through template inheritance

Issue Type

Feature Idea

Summary
See https://github.com/geerlingguy/drupal-vm/issues/1254, which was the central issue under which template inheritance was added to Nginx and Varnish templates.

For the time being I think we need to postpone this. There's a bunch of weird bugs in Jinja2 that's causing issues with blocks within loops. I haven't been able to pinpoint the precise bug but here's what I found

https://github.com/ansible/ansible/pull/20014
https://github.com/pallets/jinja/issues/641
https://github.com/ansible/ansible/issues/20063
and several more that might be related.

Some notes:
The reason we haven't hit this before is because of how scoping works in Jinja2.

Blocks can be nested for more complex layouts. However, per default blocks may not access variables from outer scopes:
http://jinja.pocoo.org/docs/2.9/templates/#block-nesting-and-scope

There's a scoped modifier for blocks which should allow access to the vhost variable assigned in the for block, but this causes issues. With Jinja 2.9.6 I get

TASK [geerlingguy.apache : Add apache vhosts configuration.] *******************
fatal: [minasithil]: FAILED! => {"changed": false, "failed": true, "msg": "AnsibleUndefinedVariable: 'vhost' is undefined"}

While with 2.8.1 I get

TASK [geerlingguy.apache : Add apache vhosts configuration.] *******************
fatal: [minasithil]: FAILED! => {"changed": false, "failed": true, "msg": "KeyError: 'undefined variable: 0'"}

This occurs with both Ansible <IP_ADDRESS> and <IP_ADDRESS>


Add Regal for linting Rego

🗣 Description
This PR adds Regal the Rego linter, to lint this project on PRs. Violations against Regal rules will be presented as annotations in PRs, and the full report printed to the logs.
I took the liberty of "fixing" two uncontroversial rules:

non-raw-regex-pattern
use-assignment-operator

The rest of the violations reported have been configured to level ignore for now, and I've annotated the configuration file here with some explanations for most of them, should you want to look into having more of them enforced.
All of the rules are documented thoroughly in the Regal docs.
Finally, I've updated the OPA test job run in CI to include linting with Regal.
Fixes #559
✅ Pre-approval checklist

[x] This PR has an informative and human-readable title.
[x] Changes are limited to a single goal - eschew scope creep!
[x] All future TODOs are captured in issues, which are referenced
in code comments.
[x] All relevant type-of-change labels have been added.
[x] I have read the CONTRIBUTING document.
[x] These code changes follow cisagov code standards.
[x] Tests have been added and/or modified to cover the changes in this PR.
[x] All new and existing tests pass.

✅ Pre-merge checklist

[ ] Revert dependencies to default branches.
[ ] Finalize version.

✅ Post-merge checklist

[ ] Create a release.

If the failing smoke test is somehow related to this change, I could use some help in understand why 😊

@anderseknert The smoke test issue is not related to the Rego Linter.  Issues appears to be we need to update how a selenium web driver for chrome is found.

@anderseknert thanks so much for this.  would you mind retargeting it to the emarald branch?
Right now we're near releasing a big upgrade from that branch (including the baselines, so we temporarily stopped doing development on main) and it would be helpful if we target that branch as it will become main soon.

@gdasher doh! I had no idea 😅  Although it did seem odd that the last update to main was so long ago. I looked into rebasing but unsurprisingly, the number of conflicts to resolve there likely makes it easier to just build a new PR based off of that branch. I'll go for that.

Closing in favor of https://github.com/cisagov/ScubaGear/pull/594


Allow re-using ADC readings instead of re-reading all the time

Add the reuse_last_reading parameter to analogue reader classes to allow re-using the previous reading rather than always taking a new sample.
Adds a new experimental BufferedReader class that allows re-using the last ADC reading instead of always re-sampling every time .percent(), .choice(...), etc... gets called.

As I've described on Discord and in the MR summary, the principle benefit is that this would allow you to read e.g. the value of ain and re-use that value for multiple subsequent bits of processing without incurring the performance hit of re-sampling the ADC every time.
e.g. suppose ain is being read as a s&h input, with the raw voltage sent to cv1 and an attenuated copy sent to cv2 with some sort of a GUI being displayed to visually indicate the incoming voltage (e.g. a bar graph).
cv1.voltage(ain.read_voltage())
cv2.voltage(ain.read_voltage() * ain.percent())
oled.blit(ain.choice(voltage_icons))

In this example the adc is sampled 3 times in succession, once for each ain.*() function call, meaning (depending on the speed of the signal coming into ain the reading used for the output voltages and the reading used for choosing may be wildly different from each other (this would likely happen with noise being patched in, or a sufficiently fast LFO).
By allowing the re-use of the last-read sample you eliminate this desynchronization, and make the code faster by not making unnecessary ADC reads.
cv1.voltage(ain.read_voltage())
cv2.voltage(ain.read_voltate(reuse_last_reading=True) * ain.percent())
oled.blit(ain.choice(voltage_icons, reuse_last_reading=True))

Yes, there are ways this could be accomplished with a wrapper class, or by using local variables and additional functions. But if the argument being made is that the firmware should be user-friendly, I'd argue that both of those solutions are less user-friendly than simply exposing the ability to bypass the ADC reads when that behaviour is desirable.

Yes, there are ways this could be accomplished with a wrapper class, or by using local variables and additional functions. But if the argument being made is that the firmware should be user-friendly, I'd argue that both of those solutions are less user-friendly than simply exposing the ability to bypass the ADC reads when that behaviour is desirable.

This is the part that is my main issue, I guess. Why is it the API's responsibility to cache this value? If the client wants to use the value for two different calculations why not use a local variable?
Also the examples you provide feel like straw-men arguments. I'm not sure you would really write this code. (Perhaps including the changes to Pam's would help me understand in this respect.) In any code where I saw a client making a non trivial API call, expecting the same value returned, I would ask them to cache it in a local variable. I wouldn't ask the API to change to accommodate the need to use the value on several lines of code.
For an example that uses a different API, consider this Pams code. In the method PamsOutput.update_menu_visibility() there is a non trivial call  wave_shape = self.wave_shape.get_value() which reads the value from a Settings object. After this call, that value is used several times in the method. Would it be better for the Settings class to cache the value and provide a way to access it via something like self.wave_shape.get_value(reuse_last_reading=True)? I don't think so. I think that the existing api is perfectly reasonable as is, and expect that the caller creates a local variable in order to reuse the value, as you have done.
Again, the fact that the API of a 'similar' firmware (daisy) provides this functionality, makes me think that I'm probably wrong here, but I just don't understand the motivation.

Given the feedback I've removed the changes to the core firmware and instead added a wrapper class that accomplishes the same thing, but without impacting anything else.


add python folder and one line if else statement

sorry, I think I get it wrong. should I open another pull request?

No need :) I've got your point, I'll add a way to specify another approach instead of another tech. Added an issue here:
https://github.com/nonunicorn/onelinerhub/issues/3


Adding Trip Controls to Homescreen Quick Actions

iOS allows for quick actions that allows a user to control the app from the home screen. These actions can be dynamically added and removed as the app runs code with a limit of 4 actions at any given time.
I find when I'm about to go out for a walk or get in my car for a drive, sometimes I feels like I have to stop what I'm doing and go through a decent number of steps in order to track my activity. Open my phone, open the app. Hold down on the trip icon for a couple of seconds until the trip mode view comes up, select the type I'm doing, and then click the "Start" button.
A thought I had was that it would be great if there was always a "Start/Stop Trip" quick action. Obviously whether it was start or stop would update at the same time that the "Start/Stop" button updates.
If the user isn't in a trip, it could display the 4 most recent (but not active) trip types.
Example:
A user has recently tracked a Train Ride, a Taxi ride and a Walk. The user is currently in a Car Trip. If they open the Quick Action menu, it would display "Stop Car Trip".
If the user selects "Stop Car Trip", and then open the Quick Action menu again, it would display:

Start Car Trip
Start Train Ride
Start Taxi Ride
Start Walk

These are just some initial thoughts, I'd love to hear what you think.

New link for the Apple docs, the old one 404s
https://developer.apple.com/design/human-interface-guidelines/home-screen-quick-actions

In the sceneWillResignActive delegate, we'll need to set the actions to show
https://developer.apple.com/documentation/uikit/uiscenedelegate/3197919-scenewillresignactive?language=objc
https://developer.apple.com/documentation/uikit/menus_and_shortcuts/add_home_screen_quick_actions?language=objc
This means we'll need to keep track of the most frequently used trip modes in order to sort the list by common modes. We can store a dictionary in NSUserDefaults, keys are the trip modes, and values are the number of uses. Then we can use keysSortedByValueUsingComparator to return a list of trip modes by most frequently used.

Progress!

Need to figure out how to respond to triggered scene actions, but the sample code in the docs is not Obj-C
https://developer.apple.com/documentation/uikit/menus_and_shortcuts/add_home_screen_quick_actions#3701696


Feature/tdp 2967 dataset management

https://jira.talendforge.org/browse/TDP-2967

[x] The commit message follows Talend standard
[x] Tests for the changes have been added (for bug fixes / features)

What is the new behavior?
Add endpoints in Runtimes to create data sets based on TComp components
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Pull request test result: failure :x:

Pull request test result: failure :x:

Pull request test result: failure :x:

I'll fix the conflict and the build issue and let you know when it is ok.

I have fixed the pom resolution issues. Please merge as soon as the jenkins builds passes.
Thanks.

Pull request test result: success :star:


contactform placeholders broken

action: /form.php
placeholders: true
fields:
- name: title
  input_type: html
  placeholder:
Tell us a bit about yourself

  required: true
- name: name
  input_type: text
  placeholder: Name
  required: true

Changing the placeholder for example placeholder: Name to placeholder: John Doe changes the title of the input. This is incorrect the name: Name should set the the title of the input and the placeholder should set the placeholder text when not filled in (in grey).

We call this title a 'label'. The name is something different. But yeah... you are right. It was broken. Fixed it.


Language specification for 'select' statement does not mention the 'break' statement at all!

What version of Go are you using (go version)?
What operating system and processor architecture are you using (go env)?
go version go1.7 linux/amd64
What did you do?
I went to https://golang.org/ref/spec#Select_statements to see if break would break from select statements. Without reading the entire spec (or at least the grammar of Statements or the Break statements section), it is not easy to discern that the break statement truly breaks from a select.
Although this isn't serious, this can cause misunderstandings like the following:
What did you expect to see?
Running:
https://play.golang.org/p/YHTN69Jgnx
Expected output:
Broke free
What did you see instead?
process took too long
(because the break statement didn't break from the for loop, as it shouldn't)
TL;DR: Things work fine, but the documentation could use some slight improvement, like maybe a footnote.

At https://golang.org/ref/spec#Break_statements it says
A "break" statement terminates execution of the innermost "for", "switch", or "select" statement
within the same function.

There is no statement about break in the description of for or switch, so I don't think there needs to be one in the description of select.  That is the kind of thing that should be covered in the tour or a tutorial, not in the language spec.  Closing.


Decrement Count Problem

While you  Decrement the count, there is problem while animating the flip.
Everytime(decrement)  for single digit it is animating from 0.

Decrement count isn't possible in the head revision, though the code is clear and you can implement it yourself.
Also there is improved version of the control that supports countdown at https://github.com/vorlovsky/flipper-android.


Consider treating mf2 "category" URLs as AS objectType "person"

Per conversation in IRC http://indiewebcamp.com/irc/2015-11-17/line/1447795539069
We should consider microformats2 simple "u-category" properties as person tags if they look like a URL.
That means mf2:
{
  "properties": { "category": ["http://tantek.com"]
}

would translate to activitystreams as:
{
  "tags": [{ "objectType": "person", "url": "http://tantek.com"}]
}

Rationale: normal tags are textual, e.g. "books", rather than URLs. URLs can be people, locations, organizations, etc. Person is a reasonable fallback assumption if not otherwise specified, since that is the biggest use case for tagging with a URL, and also is nice feelgood human-centric indiewebiness

👍

the use case is to not require h-card on person tags in bridgy publish, right? the alternative would be to put this "assume person tag by default" logic in bridgy instead, and keep granary's existing conservative translation.

Right!
If "assume category url is a person" is a good general rule for interpreting mf2, then I think it should go in Granary.
If it's a hack/overload/workaround for publishing person-tags because that's what we're excited about this week, then it should go in Bridgy. :smiley:

yup. i vote the latter. default use case, yes. default schema mapping, maybe not.
also fwiw, the logic in bridgy publish would be looser: it technically wouldn't assume they're people, just that they have silo accounts. includes pages, orgs, etc.

That makes sense to me. For Granary then, we just need to add support for simple text tags (right now they are skipped when processing "category")


Work on docstrings for config

https://github.com/JDACS4C-IMPROVE/IMPROVE/tree/develop/improvelib/config

Since the code seems to support loading of YAML and JSON files, just remove or modify if file is not really YAML despite the file extension:
# print error not supported and exit
logger.error("YAML format is not supported for parsl_config_file")
sys.exit(1)

This is not part of the release and has been removed from improvelib.


--port argument doesn't report/error if port is already in use

Steps to reproduce:

start up a localhost server on a specific port, e.g. angular watch or something e.g. on port 8888
run miniflare --port 8888

Output will be
[mf:inf] Listening on :8888
[mf:inf] - http://<IP_ADDRESS>:8888
But since the port is not actually available, it will not be reachable.
I would have expected some kind of error or notification that the port is already in use.
Using miniflare 2.3.0

I'm on macOS (12.3), running node v16.13.1
On Miniflare 2.4.0 this indeed correctly throws an error.


ORM for proto <-> PostgreSQL

Adds SLQAlchemy ORM mappers for converting protos to SQL tables.
The ORM enables object-based queries, which gives us the foundation for a more comprehensive search interface.

Reviewed the parts of this commit including the ORM. Was able to inspect the DB using:
name = "testdb"
port = 5678
path = "/tmp/my_test_db"
postgres = Postgresql(name=name, port=port, base_dir=path)
engine = create_engine(postgres.url())
Base.metadata.create_all(engine)
with Session(engine) as session:
    session.add(from_proto(testprotodb))

This was accessible through a database manage using the username postgres.
The schema constructed from protobuffers seems over normalized in the current version. The mapping between different entities is not organized in a way that is intuitive for searching the database. Pressure for instance is broken into 7 different tables referencing back to reactionID. This is common for many of the instances of measurements.
I think that this could be improved through careful construction of relationships within the ORM mappers.
None of these comments affect the functionality which works seemingly in its entirety.

There are probably better words for this, but the issue is that the proto is organized from top to bottom and the DB is organized from bottom to top. The proto definition allows for abstractions that are reused in multiple message types (like Amount), whereas the relational layout requires different types for each context in order to get the relationships to work (thus the joint table inheritance for some measure of polymorphism).
I'm open to suggestions about how to make better use of abstractions in the ORM, but this seemed like the best way to be faithful to the proto abstractions at the cost of extra complexity in the ORM. If I can find a good way to use e.g. with_polymorphic, then even if the underlying DB is more complex we won't see any of that complexity at the query construction level.


Custom font family is not working in WebAssembly

Describe the bug
in desktop :

in WebAssembly:

Is there any arabic/persian support for WebAssembly?
To Reproduce
code :
im using Avalonia.Markup.Declarative
protected override object Build()
{
    return new StackPanel()
        .Orientation(Orientation.Vertical)
        .Children(
            new TextBlock()
                .Text("نام کاربری"),
            new TextBox(),

            new TextBlock()
                .Text("رمزعبور"),
            new TextBox(),

            new TextBlock()
                .Text("تکرار رمزعبور"),
            new TextBox()
        );
}

font style :
    Styles.Add(new Style()
        .Selector(selector => selector.Is<TemplatedControl>())
        .Setter(TemplatedControl.FontFamilyProperty, new FontFamily("Nahid")));

font resource loading :
    //avares://AvaloniaClient/Assets/Fonts/Nahid.ttf
    FontFamily nahidFontFamily = new FontFamily(Assets.Fonts.NahidPath);

    Resources.Add("Nahid", nahidFontFamily);

Expected behavior
No response
Avalonia version
11.0.10
OS
WebAssembly
Additional context
font family is https://github.com/rastikerdar/nahid-font

without any font:

also, with default font, some characters like 'م' are not rendering correctly.

can you try 11.1 beta? Please mind the breaking changes for browser when you do so (mentioned in 11.1 beta1 thread)

can you try 11.1 beta? Please mind the breaking changes for browser when you do so (mentioned in 11.1 beta1 thread)

for some reason its do not recognize Avalonia.Browser namespace after updating to 11.1.0-beta1 and 11.1.0-beta2. I'm not sure if its a bug or I am missing something, its working fine on 11.0.10
csproj :
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <RuntimeIdentifier>browser-wasm</RuntimeIdentifier>
    <WasmMainJSPath>AppBundle\main.js</WasmMainJSPath>
    <OutputType>Exe</OutputType>
  </PropertyGroup>

  <ItemGroup>
    <WasmExtraFilesToDeploy Include="AppBundle\**" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Avalonia.Browser" Version="11.1.0-beta1" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\AvaloniaClient\AvaloniaClient.csproj" />
  </ItemGroup>
</Project>

Error :
The type or namespace name 'Browser' does not exist in the namespace 'Avalonia' (are you missing an assembly reference?)	AvaloniaClient.Browser
'AppBuilder' does not contain a definition for 'StartBrowserAppAsync' and no accessible extension method 'StartBrowserAppAsync' accepting a first argument of type 'AppBuilder' could be found (are you missing a using directive or an assembly reference?)
so I'm referenced it manually and move  staticwebassets to my project AppBundle with Copy Always option.

  <ItemGroup>
    <Reference Include="Avalonia.Browser">
      <HintPath>C:\Users\{USER}\.nuget\packages\avalonia.browser\11.1.0-beta1\lib\net8.0-browser1.0\Avalonia.Browser.dll</HintPath>
    </Reference>
  </ItemGroup>

and for some reason when I'm start project with debug, visual studio do open browser but dose not redirect browser to localhost:5000 and after sometime its give me error and close the browser so I'm have to do all my troubleshooting again. so I'm changed to Start Without Debugging and its also has some wired problems like not finding content inside _framework folder so I'm have to copy paste content manually every time, the project do not include Avalonia.Skia and I'm added it in nuget to browser project. and now I'm have this error which I'm have no idea what is about and I'm really did not expect project to run

can you try 11.1 beta? Please mind the breaking changes for browser when you do so (mentioned in 11.1 beta1 thread)

but at least problem with character 'م' is fixed in desktop app

and for some reason when I'm start project with debug, visual studio do open browser but do not redirect browser to localhost:5000 and after sometime its give me error and close the browser so I'm have to do all my troubleshooting again.

That's probably #14570.

problem fixed.
the path of //avares://AvaloniaClient/Assets/Fonts/Nahid.ttf was wrong and changed to //avares://AvaloniaClient/Assets/Fonts#Nahid and now font can be load correctly.
it was falling back to default font instead of using nahid font so its must be the default font bug and its looks fine right now


Fix: reintroduced wrongly reverted #87

#87 got accidentally reverted in #92. This PR cherry picks the commit dc5940aa3fb9041eba5d30c7b1aa4cd8a950eed3 from #87 and update the changelog for the 0.3.2 release.

Thank you!


Lambda workers cannot not start

Running the following code causes the "lambda worker" runtime exception as described here.
import sframe as sf
print sf.SArray(range(1000)).apply(lambda x: x).sum()

The error is as follows:

RuntimeError: Runtime Exception. Cannot evaluate lambda. Lambda workers cannot not start.

According to the linked thread, this appears to be fixed in GraphLab. Do you have any guidance in fixing this with the SFrame package?
I'm running on Windows Server 2012 with SFrame 1.8.4.
Thanks!

Hello @nikhilrj,
The code in SFrame is the same as that used for graphlab, so it appears this is a new issue.  Is there a chance you could test the graphlab installation to see if that fixes it for you?
We've noticed a few errors in windows popping up with 1.8.4, and these seem mostly related to environment and configuration, and we're still getting to the bottom of these.  Windows gives us a lot less control over the runtime environment and library loading than linux or mac does, and tracking down these lambda worker issues has been a frustrating exercise of figuring out numerous corner cases.
In your case, would it be possible to attach the log file?  This is printed at the beginning, right after the first command is run -- if you run
import sframe
sframe.SArray(range(1000)).apply(lambda x:x).sum()

Then you should see the log file printed at the top, along with an error message.
In addition, could you run
import sframe
sframe.sys_util.test_pylambda_worker()

and tell me what the output is?
Thanks!
-- Hoyt

Hi @hoytak,
I don't have a GraphLab license, so I won't be able to see if it's a potential fix. I've attached the log file. The output when running your second snippet is as follows:
sframe_server_1457997251.log.0.0.txt

C:\Users\nijogl>python
Python 2.7.11 |Anaconda 2.5.0 (64-bit)| (default, Jan 29 2016, 14:26:21) [MSC v.
1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org

import sframe
sframe.sys_util.test_pylambda_worker()

Launch pylambda_worker process with simulated unity_server environment.
Lambda worker args:
C:\Users\nijogl\Desktop\Anaconda\lib\site-packages\sframe_scripts_pylambda_w
orker.pyc
PyLambda script called with no IPC information; entering diagnostic mode.
sys.path[0] = C:\Users\nijogl\Desktop\Anaconda\python27.zip.
sys.path[1] = C:\Users\nijogl\Desktop\Anaconda\DLLs.
sys.path[2] = C:\Users\nijogl\Desktop\Anaconda\lib.
sys.path[3] = C:\Users\nijogl\Desktop\Anaconda\lib\plat-win.
sys.path[4] = C:\Users\nijogl\Desktop\Anaconda\lib\lib-tk.
sys.path[5] = C:\Users\nijogl\Desktop\Anaconda.
sys.path[6] = c:\users\nijogl\desktop\anaconda\lib\site-packages\sphinx-1.3.5-
py2.7.egg.
sys.path[7] = c:\users\nijogl\desktop\anaconda\lib\site-packages\setuptools-19
.6.2-py2.7.egg.
sys.path[8] = C:\Users\nijogl\Desktop\Anaconda\lib\site-packages.
sys.path[9] = C:\Users\nijogl\Desktop\Anaconda\lib\site-packages\cryptography-
1.0.2-py2.7-win-amd64.egg.
sys.path[10] = C:\Users\nijogl\Desktop\Anaconda\lib\site-packages\win32.
sys.path[11] = C:\Users\nijogl\Desktop\Anaconda\lib\site-packages\win32\lib.
sys.path[12] = C:\Users\nijogl\Desktop\Anaconda\lib\site-packages\Pythonwin.
sys.path[13] = C:\Users\nijogl\Desktop\Anaconda\lib\site-packages\IPython\exte
nsions.
Main program directory: C:\Users\nijogl\Desktop\Anaconda\lib\site-packages\sfram
e.
←[1;33m1457997014 : DEBUG:    (operator():71): PID-17736: root_path = 'C:\Users
nijogl\Desktop\Anaconda\lib\site-packages\sframe'
←[0m←[1;33m1457997014 : DEBUG:    (operator():72): PID-17736: server_address = '
debug'
←[0m←[1;33m1457997014 : DEBUG:    (operator():73): PID-17736: parend pid = 38312
←[0m←[1;33m1457997014 : DEBUG:    (operator():77): PID-17736: Library function e
ntered successfully.
←[0m1457997014 : INFO:     (pylambda_worker_main:80): Exiting dry run.
←[0mLambda process exited with code 1.

Okay, thank you.  This is really helpful.  Could you try running the following commands as well, and letting me know what the output is?
import os
os.environ["GRAPHLAB_LAMBDA_WORKER_DEBUG_MODE"] = "1"
os.environ["OMP_NUM_THREADS"] = "1"
import sframe
sframe.SArray(range(1000)).apply(lambda x: x).sum()

This should display quite a bit more debugging info.
Thanks!
-- Hoyt

Here's the log file:
sframe_server_1457999482.log.0.0.txt
And the output:

C:\Users\nijogl>python
Python 2.7.11 |Anaconda 2.5.0 (64-bit)| (default, Jan 29 2016, 14:26:21) [MSC v.
1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org

import os
os.environ["GRAPHLAB_LAMBDA_WORKER_DEBUG_MODE"] = "1"
os.environ["OMP_NUM_THREADS"] = "1"
import sframe
sframe.SArray(range(1000)).apply(lambda x: x).sum()
2016-03-14 16:51:23,048 [INFO] sframe.cython.cy_server, 172: SFrame v1.8.4 start
ed. Logging C:\Users\nijogl\AppData\Local\Temp\15\sframe_server_1457999482.log.0

Traceback (most recent call last):
File "", line 1, in
File "C:\Users\nijogl\Desktop\Anaconda\lib\site-packages\sframe\data_structure
s\sarray.py", line 1701, in apply
return SArray(_proxy=self.proxy.transform(fn, dtype, skip_undefined, see
d))
File "C:\Users\nijogl\Desktop\Anaconda\lib\site-packages\sframe\cython\context
.py", line 49, in exit
raise exc_type(exc_value)
RuntimeError: Runtime Exception. Cannot evaluate lambda. Lambda workers cannot n
ot start.

Let me know if there's anything else you need!

Ah, okay.  Sometimes the log messages in the lambda processes come through, and sometimes they do not (windows under the hood is ... difficult).  Could you do one more thing?  Try running:
import os
os.environ["GRAPHLAB_LAMBDA_WORKER_DEBUG_MODE"] = "1"
os.environ["GRAPHLAB_LAMBDA_WORKER_LOG_FILE"] = r"C:\Users\nijogl\Desktop\lambda_log_file.txt"
os.environ["OMP_NUM_THREADS"] = "1"
import sframe
sframe.SArray(range(1000)).apply(lambda x: x).sum()

This should produce two log files on your desktop named lambda_log_file.txt and lambda_log_file.txt-init.  Could you send those to me?  Or tell me if they are not there?
Thanks so much for your help!  Really appreciate it.
-- Hoyt

No problem! Here they are:
lambda_log_file.txt-init.txt
lambda_log_file.txt

Thank you.  This is really helpful.  We're looking into it now.

Hello Nikhilrj,
You have some very strange errors.  Windows has a limited number of interprocess shared memory sockets -- what we use to communicate with the lambda workers -- and it appears that something is hanging around and locking these sockets, seemingly previously started lambda workers that were not correctly terminated (correct parent-child process management on windows is horrendously difficult compared to linux or unix).  The interprocess initialization tries to free these processes, fails to do so, and then fails, possibly as a result, causing the lambda workers to then fail.  I'm not sure what got things to this state, but there are a couple things that may help.
Two things to try:

Try setting the temporary directory to something else.  This may not fix it, but I'm curious if it does.  This code segment may help with this -- if you could run that and report back, that would be helpful.  (also, the accompanying server log would be great as well).

import os
os.environ["GRAPHLAB_LAMBDA_WORKER_DEBUG_MODE"] = "1"
os.environ["GRAPHLAB_LAMBDA_WORKER_LOG_FILE"] = r"C:\Users\nijogl\Desktop\lambda_log_file_2.txt"
os.environ["GRAPHLAB_CACHE_FILE_LOCATIONS"] = r"C:\Users\nijogl\Desktop\sframe-temp-dir"
os.environ["OMP_NUM_THREADS"] = "1"
import sframe
sframe.SArray(range(1000)).apply(lambda x: x).sum()

Rebooting the machine.  This may fix things by cleaning up these crashed processes and their locks on the shared memory sockets.  But if you can't do that, we'll keep looking at this.

Thanks so much!
-- Hoyt

Hello @hoytak,
We scheduled a restart for the machine and it did solve the problem! The lambda workers appear to be  working now.
However, I'm running into another blocking issue using lambdas now. I'm trying to run the following code:
import sframe as sf
data = sf.load_sframe('my_data')
result = data.apply(lambda x: x+=1)
len(result)

It's worth mentioning the issues I've talked about in this thread are running on a 32 core, 512gb ram Windows Server 2012 machine. When I try to run the code above, I see some CPU and memory activity, but the len(result) operation never finishes. I know this code works, as I've executed it on a local machine (4 core, 8gb ram laptop) and it runs without hitch in ~1 minute. The data loaded is about ~500mb (10551564 rows x 7 columns) in the SFrame binary format.
Do you have any guidance on this issue? Thanks again for the support!

There is a large perf regression with Lambda's in 1.8.4 (See #226). This has been fixed. We will be putting up 1.8.5 shortly to resolve this. Thanks!

Hello @nikhilrj,
Thanks for the information.
Hmm.  Glad to hear the lambda worker issue was (partially) resolved.  We are releasing an updated version

Thanks @ylow @hoytak!

@hoytak I appreciate your input but non of these suggestions has helped me in any way. I have been held back with this problem for over 2 weeks. I have a windows 10 system with 8gb ram 64 bit. Does it have anything to do with the problem?
"Lambda workers cannot not start"
Please advise
Thanks

I am also having the same issue. Even I am not able to resolve this issue. I tried all possible ways suggested above. Can anyone please help me

@niteshnitgupta - The readme for this repository says:
THIS REPOSITORY IS DEPRECATED.

THE FUNCTIONALITY HAS MOVED TO Turi Create.

See the Turi Create Repository. Turi Create contains all the functionality of this repository and should not have this issue.


Add an option to render more context around lines.

When you have a diagnostic and a couple of single labels explaining context, it is sort of confusing to see where the error actually is in the code at a glance. It would be great if there was a "put these many source lines around each label. And ideally a "include this span in the diagnostic too, but without a label.

#257 adressed the configurability of how many lines of context should be shown around labels.

For your other point, why don't you just put a (secondary) label on the context that you want to explain?

That is what i did, but i ended up scrapping it because:
The diagnostic references two nodes in a statement, i just want 3 - 5 lines around each label's location to tell the user "this is where the wrong stuff is" without having them have to go to the line. But this gets very cluttered in real world code. For example a try statement in js code (which is what i am doing) is usually decently large. And i reference something in the try {} block and the finally {} block, both of which may be large.
Overall, having another colored line adds clutter to the diagnostic, Your eyes should drift straight to the two places which are labelled, and you should instantly know where that code is. Having more things for the user to consider is ugly.

I think i will use the pre-release version for now with the context lines option for now. Then i will just update once it is released 👍

Ah yes, its more of context inside labels. Mistake on my part 😓

@RDambrosio016 Any chance you could post an example of such a case where either what you're trying to achieve or how it looks using secondary labels?

Sure, this is what it normally looks like . You cant really tell where exactly in the code it is unless you go back and look at the line numbers. This is how it is with a secondary label, i personally dont like it, and if the catch for example had a ton of stuff in it it would end up looking horrid.
Ideally i would just be able to say "3 lines of context around each label".

If you took the approach with a secondary label, you could adjust how many lines of context within the secondary label are shown (as I mentioned above). This would resolve the case of "if the catch had a ton of stuff in it". Your personal preference aside, I think this is a good alternative. Here is an example of how it would look using the current version:

from this source code
while(true){
    try{
        foo();
        foo();
        foo();
        foo();
        foo();
        foo();
        foo();
        foo();
        foo();
        foo();
        foo();
        if(condition()){
            continue;
        }
    }catch{
        bar();
        bar();
        bar();
        bar();
        bar();
        bar();
    }finally{
        break;
    }
}

This example shows me some other problems though:

Something got lost on the way of resolving #259 with #260 and the locus is at the earliest label again (notice the error is supposedly on line 2 instead of line 25).
What you mentioned already: The context should work for secondary labels too. But I think it would be enough to enable this feature only if the label is inside another multiline label.
Another thing that might make sense is to add something like tertiary labels which would look better than my "This is the finally block." label. They should not be rendered but just force the specific line to be shown.

Another thing that might make sense is to add something like tertiary labels which would look better than my "This is the finally block." label. They should not be rendered but just force the specific line to be shown.

I disagree with doing it like this, it should be something separate, maybe Context, a diagnostic would have a Vec<Context>. A context basically just holds a range and lines in those ranges will be rendered but without a label or coloring.

I found that there already is #29, which is I think more close to what you were trying to get at. In that light I think suggestion № 3 is not necessary.
№ 1 has already been solved in #282.

I'd really love a solution that allows me to both specify a range of lines to display without requiring a label around it (i.e. the proposed "context" field on a diagnostic), as well as allowing me to specify a default amount of lines of context for any label.
That latter option should imo just be part of the config struct, such that one can set
config.context_before = 2 and config.context_after = 2 so specify "show at least 2 lines before and two lines after my label as context.
I'd assume that implementing that latter half at least should be pretty trivial - I might try myself at a PR for that!


[#162539056] Adds User model

What does this PR do?
Creates a user model
What are the relevant pivotal tracker stories?
#162539056

good use OOP


change module-import-guard angular guard style 04-12 link

PR Checklist
Please check if your PR fulfills the following requirements:

[ ] The commit message follows our guidelines: https://github.com/cipchk/ng-alain/blob/master/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[x] Documentation content changes
[ ] Application (the showcase website) / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?

module-import-guard.ts have wrong link in the comment
What is the new behavior?
fixed new link
Does this PR introduce a breaking change?
[ ] Yes
[x ] No

Other information

thx.


Support SQL UDF

Motivation
Reusability
e.g.,

user may have a very complex function parameter and need to call it multiple times.
a reusable, parameterized subquery, like a logical view with parameters. e.g., select * from orders where id = $1 and deleted = false and create_date > $2

Easier to migrate from other SQL dialects to RisingWave
Different SQL dialects (Flink/Hive/Clickhouse) have different syntax sugars. Usually there are equivalent functions, but rewriting SQL can be error-prone. If we allow them to define a SQL UDF as an alias, they don't need to modify their SQLs at all.
Users are very familiar with their original SQL, and the less changes made to the SQL logic, the lower the migration cost will be.
This is one example https://github.com/risingwavelabs/risingwave/pull/10145
Feature subset we can support
LANGUAGE SQL is also quite complex, as it allows multiple statements (DMLs are allowed). We won't want to support this now (and don't support multi-statement).

SQL functions execute an arbitrary list of SQL statements, returning the result of the last query in the list. In the simple (non-set) case, the first row of the last query's result will be returned. (Bear in mind that “the first row” of a multirow result is not well-defined unless you use ORDER BY.) If the last query happens to return no rows at all, the null value will be returned.

But a subset of SQL UDF won't be hard to implement. Specifically, we can support those can be inlined as a subquery. And we can implement the features one by one. Even we only support the simplest forms, it's still useful.
CREATE FUNCTION name ( args ) RETURNS type
LANGUAGE SQL
    | AS 'definition'
    | sql_body
  } ...

sql_body is like
RETURN expression

A note from PG doc about this form:

This form is parsed at function definition time, the string constant form is parsed at execution time; therefore this form cannot support polymorphic argument types and other constructs that are not resolvable at function definition time. This form tracks dependencies between the function and objects used in the function body, so DROP ... CASCADE will work correctly, whereas the form using string literals may leave dangling functions. Finally, this form is more compatible with the SQL standard and other SQL implementations.

definition is a SQL string
1 returns a value (1 row 1 col)
1.1 RETURN expression
This should be trivial.
1.2 SELECT an expression
SELECT $1+$2;

1.3 SELECT multiple expressions
e.g.,
create function f(out a int, out b int)  language sql as 'select 1,2';

This needs to change multiple cols to a struct. Cannot simply convert select f(), ... to select (select 1,2), ...  (more than 1 cols).
1.4 polymorphic arguments
e.g.,
CREATE FUNCTION is_greater(anyelement, anyelement) RETURNS boolean AS $$
    SELECT $1 > $2;
$$ LANGUAGE SQL;

CREATE FUNCTION dup (f1 anyelement, OUT f2 anyelement, OUT f3 anyarray)
AS 'select $1, array[$1,$1]' LANGUAGE SQL;

1.5 SELECT with FROM
e.g., agg and point-get query. might consider together with 2.
2. returns a table (setof) (n rows 1 col)
This includes: table functions and more general SELECT subquery.
Postgres executes the SQL UDF in ProjectSet. It might be possible to convert it to a JOIN. Consider it later.
e.g.,
create function f() returns setof int language sql as 'select * from t';

Cannot simply convert to select (select * from t), ... (more than 1 rows).
Some points might need to take care of

determinism
overloading

name conflict with built-in functions?

the syntax has many variants. need to read the reference carefully. (e.g., OUT parameter vs RETURNS type)

Reference

https://www.postgresql.org/docs/current/sql-createfunction.html (doc for CREATE FUNCTION)
https://www.postgresql.org/docs/current/xfunc-sql.html (doc for LANGUAGE SQL)

Some offline discussions:

@st1page proposed that for setof UDTF, we also directly inline it to subquery. This behaviour is different from PG, and I prefer not implementing it to doing it differently with PG. So at least we need further discussion for this.
@fuyufjh thinks this is not useful enough to cover complex UDF cases and thus the motivation isn't strong enough. (see also https://github.com/risingwavelabs/risingwave/issues/10268#issuecomment-1591048145) For simple cases like function aliases, it's also not significantly better than global string substitution.

Not very familiar with DBT. I'm wondering is it easy to adopt for users unfamiliar with it? Will it require users to change their workflow? Or can be used as a handy Swiss Army Knife? 🤔
Complexity is definitely the concern, and also Eric's reason for opposing. But maybe the simplist expression case is most useful and has very low complexity.
e.g.,

Yes -- say I need to parse jsonb to handle missing values and casting, I don't necessarily want extra piece of infrastructure (python server) when a sql expression could be enough

https://risingwave-community.slack.com/archives/C02T3F7UYM6/p1689610339419499?thread_ts=1689610181.827109&cid=C02T3F7UYM6
For such use case, maybe users don't want extra DBT neither.

is it done? Can we close the issue?

is it done? Can we close the issue?

Not yet for some specific syntax, see details here.
I can pick this up when I have time.

is it done? Can we close the issue?

Not yet for some specific syntax, see details here.
I can pick this up when I have time.

Oh, I just thought we had already finished it. Thanks ❤


python3Packages.ipykernel: fix build on darwin

Motivation for this change
Closes: #76197
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @

@GrahamcOfBorg build python3Packages.ipykernel

although, i want to stabilize the python package set more, but kinda blocked on #76059


support Mirage 3.7 and mirage-nat 2.0.0

The main improvement is fragmentation and reassembly support in mirage-nat 2.0.0, which fixes #73 //cc @xaki23.
Other changes include:

update to mirage-xen 5.0.0 (which reverted the split OS -> OS & Os_xen, back to OS),
upgrade to mirage-qubes 0.8.0 (where GUI.listen signature changed),
fix deprecation warnings (Mirage_clock_lwt is deprecated, using Mirage_clock instead),
remove Fw_utils.return and fail, use Lwt.return_unit across the codebase (instead of Lwt.return () or return ()).

Fragmentation and reassembly: each network interface now has a reassembly cache, a LRU, its size is hardcoded to 256 * 1024 bytes. I am not sure whether this should instead (a) be user-configurable (b) default to a smaller size. Maybe the individual client networks (Client_net) should have a smaller cache, and the Uplink a slightly larger?

this is very confusing. i just built this...

from a clean buildvm (so no old ocaml/opam anything),
with qubes-builder https://github.com/QubesOS/qubes-builder/blob/master/example-configs/mirage.conf
swapped out the repo/branch for roburio/mirage-3.7
swapped mirage pin in Makefile.builder to 3.7.4 (as in Dockerfile)
build finished within <10 min including "have to install opam + ocaml + a lot of modules first"
didnt spew the usual bulk text about actualy building firewall itself (that looks very different from opam-is-installing-modules)
got a reasonable looking ~5-6MB mirage-firewall.xen
templated + installed + set it to be used for my backup sync process ...

... and it just seems to work.
this is actualy so smooth i am not sure i am looking at the right thing.
could we get some versions in the during-startup debugprints or so?
(yes, no timestamps because reprobuilds, but versions should be ok for that)
will deploy it to some more roles tomorrow and watch it for a few days.
i dont have strong active testing for this, but things tend to blow up quickly for me during use.

@hannesm : looks great - thanks!
@xaki23 : the mirage tool now does a "quiet" build by default (https://github.com/mirage/mirage/pull/999)


Feature/calling server v3 events

events added with serialization methods
abstract participants related events into internal events and public facing events
added EventParser class to help parse calling server call back events

@yyw-msft could you update the description with a code sample of how a developer would use these enhancements? Also, in one of the branches for handling the publishing of events we have a struct called AcsCallData which wraps the three main properties we always give back. Here is an example:
    public class CallConnectedEvent : AcsCallbackEvent
    {
        public CallConnectedEvent(AcsCallData acsCallData)
            : base(acsCallData)
        {
        }
    }

The AcsCallbackEvent in this case consumes the immutable  AcsCallData and assigns the properties to the base class. Give me a ring if you want to discuss.

@yyw-msft could you update the description with a code sample of how a developer would use these enhancements? Also, in one of the branches for handling the publishing of events we have a struct called AcsCallData which wraps the three main properties we always give back. Here is an example:
  public class CallConnectedEvent : AcsCallbackEvent
  {
      public CallConnectedEvent(AcsCallData acsCallData)
          : base(acsCallData)
      {
      }
  }

The AcsCallbackEvent in this case consumes the immutable AcsCallData and assigns the properties to the base class. Give me a ring if you want to discuss.

@jasonshave Per our conversation offline, I have removed "event" from all the event classes name and added string manipulation on CloudEvent.Type.


Commands not installed

I just tried to install shell-functools through pipsi and some commands were not installed.
I only have access to filter, foldl, ft-functions, and map.
I also tried with a regular virtualenv (python 3.5.5) and a pip install, with the same result.
I suspect the Python scripts in the ft folder not to be picked while creating the dist/wheel.

take_while, sort_by and foldl1 have been added after the latest release. I should create a new one.

Hmmmm that's why :smile: ! Thanks for the info :)

New version has been released: https://pypi.org/project/shell-functools/


Help...

I used IMCUnlock with the 0MB option, tried to launch eno_ex, and remembered that i had my plugins enabled. FUCK.
So i reboot, and no apps show up whether the memory card is in (where it tells me to update the system) or it's not in.
I was on 3.60 with enso_ex 4.1
is my vita screwed?

Restoring without the sony MC in and unlinking the memory card with normal HENkaku, then installing enso_ex fixed everything, but reset my home screeen layout. Oh well.


Add awesome dat

Dat is a data tool atop distributed p2p data replication Hypercore and then the Hyperdrive distributed FS atop Hypercore. It is indeed awesome, using some of the data storage techniques with a somewhat similar protocol set as the well known Peer to Peer Streaming Protocol (ppsp). This PR adds a link to https://github.com/clkao/awesome-dat .

Awesomesauce! Thanks for the PR!

Ty.


youtube-dl not agnostic to where it is placed.

$ cat  pkg_youtube-dl
LOCALBIN=$HOME/bin
curl -L https://yt-dl.org/downloads/latest/youtube-dl -o $LOCALBIN/youtube-dl
chmod u+rx $LOCALBIN/youtube-dl
$  . pkg_youtube-dl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     3    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     3    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   582    0   582    0     0    399      0 --:--:--  0:00:01 --:--:--  284k
100 1380k  100 1380k    0     0   404k      0  0:00:03  0:00:03 --:--:-- 1398k
$ youtube-dl -x --audio-format mp3 https://www.youtube.com/watch?v=PrOYkHjdpdM
bash: /usr/bin/youtube-dl: No such file or directory
$ youtube-dl --version
bash: /usr/bin/youtube-dl: No such file or directory
$ ls -l `which youtube-dl`
-rwxrw-r-- 1 hannu hannu 1413239 dec 18 15:54 /home/hannu/bin/youtube-dl
$ sha1sum `which youtube-dl`
fb1daf7808888757d95bd3902846d5623ecd8122  /home/hannu/bin/youtube-dl

## Please follow the guide below

- You will be asked some questions and requested to provide some information, please read them **carefully** and answer honestly
- Put an `x` into all the boxes [ ] relevant to your *issue* (like that [x])
- Use *Preview* tab to see how your issue will actually look like

---

### Make sure you are using the *latest* version: run `youtube-dl --version` and ensure your version is *2016.12.18*. If it's not read [this FAQ entry](https://github.com/rg3/youtube-dl/blob/master/README.md#how-do-i-update-youtube-dl) and update. Issues with outdated version will be rejected.
- [x] I've **verified** and **I assure** that I'm running youtube-dl **2016.12.18**

### Before submitting an *issue* make sure you have:
- [ ] At least skimmed through [README](https://github.com/rg3/youtube-dl/blob/master/README.md) and **most notably** [FAQ](https://github.com/rg3/youtube-dl#faq) and [BUGS](https://github.com/rg3/youtube-dl#bugs) sections
- [x] [Searched](https://github.com/rg3/youtube-dl/search?type=Issues) the bugtracker for similar issues including closed ones

### What is the purpose of your *issue*?
- [x] Bug report (encountered problems with youtube-dl)
- [ ] Site support request (request for adding support for a new site)
- [ ] Feature request (request for a new functionality)
- [ ] Question
- [ ] Other

---

### The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your *issue*

I believe the above will be reproducible anywhere;
 please make youtube-dl be agnostic to where it resides.

---

### If the purpose of this *issue* is a *bug report*, *site support request* or you are not completely sure provide the full verbose output as follows:

Add `-v` flag to **your command line** you run youtube-dl with, copy the **whole** output and insert it here. It should look similar to one below (replace it with **your** log inserted between triple ```):
```
$ youtube-dl -v
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2016.12.18
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
[debug] Proxy map: {}
...

```

---

### If the purpose of this *issue* is a *site support request* please provide all kinds of example URLs support for which should be included (replace following example URLs by **yours**):
- Single video: https://www.youtube.com/watch?v=BaW_jenozKc
- Single video: https://youtu.be/BaW_jenozKc
- Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

---

### Description of your *issue*, suggested solution and other information

Explanation of your *issue* in arbitrary form goes here. Please make sure the [description is worded well enough to be understood](https://github.com/rg3/youtube-dl#is-the-description-of-the-issue-itself-sufficient). Provide as much context and examples as possible.
If work on your *issue* requires account credentials please provide them or explain how one can obtain them.

Apparently the problem is in your bash rather than youtube-dl
$ bash
yen@NEWSLAB-PC12574:~$ . pkg_youtube-dl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     3    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
  0     3    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0
100   582    0   582    0     0    183      0 --:--:--  0:00:03 --:--:--  2445
100 1380k  100 1380k    0     0   189k      0  0:00:07  0:00:07 --:--:--  422k
yen@NEWSLAB-PC12574:~$ export PATH=$LOCALBIN:$PATH
yen@NEWSLAB-PC12574:~$ youtube-dl
Usage: youtube-dl [OPTIONS] URL [URL...]

youtube-dl: error: You must provide at least one URL.
Type youtube-dl --help to see a list of all options.
yen@NEWSLAB-PC12574:~$ youtube-dl --version
2016.12.18
yen@NEWSLAB-PC12574:~$ which youtube-dl
/home/yen/bin/youtube-dl
yen@NEWSLAB-PC12574:~$ ls -l `which youtube-dl`
-rwxr--r-- 1 yen yen 1413239 Dec 19 00:11 /home/yen/bin/youtube-dl
yen@NEWSLAB-PC12574:~$ sha1sum `which youtube-dl`
fb1daf7808888757d95bd3902846d5623ecd8122  /home/yen/bin/youtube-dl

Most likely you didn't set $PATH correctly.

$ echo $PATH | tr ':' '\n' | head -n 1
/home/hannu/bin
$ echo $HOME/bin
/home/hannu/bin

In what way would you say that is "incorrect", causing the effect?

That $PATH looks correct. I don't know the actual cause of the problem. Maybe there are aliases or functions called "youtube-dl"? Check it with type youtube-dl in bash.

I have verified it to be working now - with "export path=..." in .bash_aliases - it seems that was the culprit.

I guess you mean "export PATH=..."? That's strange to have such a statement in .bash_aliases. This file should contain aliases only.
Please close this issue if everything is working fine.


implement ConnectionProvider

https://jira.mongodb.org/browse/HIBERNATE-27

Why was the branch for this PR created in the mongodb/mongo-hibernate repository, as opposed to be created in a forked repository, as we do in other projects?

Why was the branch for this PR created in the mongodb/mongo-hibernate repository, as opposed to be created in a forked repository, as we do in other projects?

My next PR will be hosted in my forked repo: https://github.com/mongodb/mongo-hibernate/pull/10


feat(Admin): add email async validation

Issue:
What I did
How to test

Deploy preview ready!
Built with commit 5ab934e2d8946af613f3a9314aadba197cea8c5a
https://deploy-preview-452--mcslite.netlify.com

Deploy preview ready!
Built with commit 5ab934e2d8946af613f3a9314aadba197cea8c5a
https://deploy-preview-452--mcs-lite-ui.netlify.com

Deploy preview ready!
Built with commit 5ab934e2d8946af613f3a9314aadba197cea8c5a
https://deploy-preview-452--mcs-lite-introduction.netlify.com

Deploy preview ready!
Built with commit f3eb47a57290114cd2389f3cd224ef933866d9e2
https://deploy-preview-452--mcs-lite-introduction.netlify.com

Deploy preview ready!
Built with commit b4974e06b05da893230739dada037768426f1407
https://deploy-preview-452--mcs-lite-ui.netlify.com

Deploy preview ready!
Built with commit b4974e06b05da893230739dada037768426f1407
https://deploy-preview-452--mcslite.netlify.com

Deploy preview ready!
Built with commit f3eb47a57290114cd2389f3cd224ef933866d9e2
https://deploy-preview-452--mcs-lite-ui.netlify.com

Deploy preview ready!
Built with commit f3eb47a57290114cd2389f3cd224ef933866d9e2
https://deploy-preview-452--mcslite.netlify.com


Returning result as Json causes it to be wrapper

When obtaining an object using this method and the Dapper.Json.Json<T> wrapper the result in our API's will also have this wrapping. It will all be placed one level down under the key "Value".
Maybe the source generator could also generate that for a JsonConverter to unwrap these objects before serialization?

Well that's why I use dapper. I'm not exposing my database model, I curate a query which I map to a custom DTO which is what I expose. If I exposed my database model I would just expose my EF model right out in the API, which isn't what I do, and it something different from what do. Change in query doesn't change API since I'm mapping it to a static model. A change to my DTO model would cause a change to the API model, but it's clearly the intention at that point.
But we can even put all this aside. Since that isn't the only reason for serializing to json. And this is still an unintentional side-effect I would assume?

Looks like there is no need to add any source generator. You can just create your own JsonConveterFactory like that:

public class Program
{
    public static void Main()
    {
        var user = new UserData()
        {
            Emails = new Json<string[]>(Enumerable.Range(0, 10).Select(i => i.ToString()).ToArray())
        };

        var jsonSettings = new JsonSerializerOptions()
        {
            PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
            WriteIndented = true,
            Converters = { new JsonTConverterFactory() }
        };
        var json = JsonSerializer.Serialize(user, jsonSettings);
        Console.WriteLine(json);
    }
}

public class UserData
{
    public Json<string[]> Emails { get; set; }
}

public class JsonTConverterFactory : JsonConverterFactory
{
    public override bool CanConvert(Type typeToConvert)
    {
        return typeToConvert.IsGenericType && typeToConvert.GetGenericTypeDefinition() == typeof(Json<>);
    }

    public override JsonConverter? CreateConverter(Type typeToConvert, JsonSerializerOptions options)
    {
        return Activator
            .CreateInstance(typeof(JsonTConverter<>)
                .MakeGenericType(typeToConvert.GetGenericArguments()[0])) as JsonConverter;
    }
}

public class JsonTConverter<T> : JsonConverter<Json<T>>
{
    public override Json<T> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
    {
        var value = JsonSerializer.Deserialize<T>(ref reader, options);
        return new Json<T>(value);
    }

    public override void Write(Utf8JsonWriter writer, Json<T> value, JsonSerializerOptions options)
    {
        JsonSerializer.Serialize(writer, value.Value, options);
    }
}


K2 preparation

Working towards fixing https://github.com/Kotlin/dataframe/issues/649.
This branch does not yet bump the version to Kotlin 2.0, as that will require our bootstrapping to be updated, but it further readies the project for the update by fixing some bugs and tests that occur when setting the project to 2.0.

Thank you!


Fix npm test if os.cpus().length == 1

Currently it complains
[09:10:20] > node built/local/run.js

TypeScript/src/testRunner/runner.ts:232
        beforeEach(() => {
        ^
ReferenceError: beforeEach is not defined

This change synchronizes ~scripts/build/tests.js~Gulpfile.js with the logic in src/testRunner/runner.ts.

Is the problem that runtests-parallel doesn't work on systems with only 1 CPU? I think runtests should work in this case -- is there some automated context where switching between the two is difficult?
(Having to ask these questions now is one reason why we like to have bugs for every PR, even housekeeping ones.)

Sorry, npm test doesn't work on systems with only one CPU. This change effectively makes it use runtests if workers == 1, instead of erroring.

Ah, I didn't see that it was npm test. That's a common entry point for first-time contributors, so it's important for it to work.


KEP-2238 probe-level grace period changes for beta/1.22

See https://github.com/kubernetes/enhancements/issues/2238#issuecomment-879178450

I haven't looked at how well this matches the code etc, but it's looking very good in terms of explaining things to a reader. Nice work.

/approve

anything else to add here or can we merge this?

/lgtm


Add ERC: Fractional Reserve Token

An interface for fractional reserve tokens.

The html proofer (in the CI) does approve relative links, while the EIP walidator does not approve links that are not relative. is there anything i should do from my side?


Incorrect information about setActive method in Redux devtools

I'm submitting a...

[x] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request
[ ] Other... Please describe:

Current behavior
Now when i use entityStore.setActive({ next: true }) method and look in Redux devtools I have got message "[Steps] - Set Active (ids: [object Object])"
Expected behavior
On previous version i had "[Steps] - Set Active (ids: 4)" message.
Minimal reproduction of the problem with instructions

Use method entityStore.setActive() with params { next: true } or { prev: true }
Look in Redux devtools

Info
It's only a visual bug, active entities changes right.

Thanks for the report.


[SPARK-27204]SHS: Background caching for completed applications, when the disk store enabled

What changes were proposed in this pull request?
First time AppUI loading time will take time from the History server page, if the event log size is huge.
(Eg: 47 minutes for a 18GB eventlog file). Majority of time is consumed for replaying the event log.
In this pr, I'm proposing a background caching for disk store, where history provider will replay the event log once the application completed and creates a store cache. So, when the user try to access the application, they can directly get from the cache or, provider will wait till the time caching is completed.
Either case, the loading time will be lesser than or equal to the current one. Also, it is configurable and by default enabled. If disabled, behaviour will be same as before.
How was this patch tested?
Manually tested and existing UT.
Event log size : 1.7 GB
Before:
First time UI loading time = 391 sec
After:
First time UI loading time =  6 sec ( Best case: Already cached)
First time UI loading time  =  344 sec (worst case: Immedietly after background caching started)

Test build #103779 has started for PR 24171 at commit c64e554.

Can one of the admins verify this patch?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9162/
Test PASSed.

cc @vanzin , kindly give the feedback about the idea.
(code might need refactoring)

Test build #103779 has finished for PR 24171 at commit c64e554.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103779/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/9439/
Test PASSed.

Test build #104092 has started for PR 24171 at commit ce17af0.

Test build #104092 has finished for PR 24171 at commit ce17af0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/104092/
Test PASSed.


CI: Update to Solana v2.1 crates

Problem
The Solana v2.1 crates were recently published, but SPL is still on the v2.0 release.
Summary of changes

0d2bf9d5c2eda1a74505f639d446bce17938b2ee: Update the Solana and curve25519-dalek crates, and rust versions
79572ba76e5ac4c382e4da001007a8053235daf4: Run clippy --fix and rustfmt
f23917a83ad8212b95acf1dcb46657c5965c9d9b: Use workspace-level lints, fix some clippy suggestions
4b190a16a6a90d89184dffc389fc5e1f4f0053d9: Update doc comments for clippy::doc_lazy_continuation -- note, this excludes spl-governance
9e864a43c649edae3e4122c80ed33bda4d1ced84: Update all cargo build-sbf and test-sbf commands to specify --tools-version v1.43 by hand, since the v2.1 tarball is not available yet

Looks like --tools-version isn't working for CI. I'll step away from this and wait until the v2.1 tools are released


Fix accessibility issues on home page

This fixes #146
I didn't want to modify the original design, so I just darkened the colors a little where needed.

Solid again @andregamma!
Closes #146


Backup old note on rename

openSUSE Leap 15.1 (x86_64)
KDE
tomboy-ng 0.30 (GTK2)
The lack of an undo (Ctrl+z) is a pretty big omission, in my opinion, and as a result (due to a set of contributing factors) I have, on multiple occasions, lost an entire note's worth of contents.  Since I keep track of my day's work in a note, that's a problem depending on when it happens; today it happened at the very end of my work day (the last time was just an hour into the day).
This happens when I cannot tell where I am currently (blame Citrix doing really stupid things with my open windows) and my attempting to change "screens" (screen command) using Ctrl+a followed by a number, or something like that.  Ctrl+a in tomboy-ng, of course, tells the UI to select all, thus the next keystroke causes all data to be removed.  The new note now takes on the name of this new thing, and all data are gone forever due to the lack of an undo.  Since my client does not let me stop using Citrix in order to do work for them, I am stuck with the likely problem of losing my data due to Citrix putting my cursor in tomboy-ng when I thin kit is actually in a Putty window.
To work around this, I would like anytime a note is renamed (meaning the first line is changed, happening after my Ctrl+a-anything catastrophe) for the old note to be backed up, as if it had been deleted, because it has just been effectively deleted.  This is probably a pretty small change, but it would be a huge benefit for me since I cannot jut Ctrl+z and undo the mess easily.
Please?  For 0.31?  My alternative to losing a day's worth of data is to not use the tool, and other than this one feature I think it's a great utility, and I know that adding the undo feature is something you have described as a major overhaul.

Yeah, I would really like an Undo but its just too hard to do a conventional layered Ctrl-Z.  But maybe you have a good idea there, create a backup file if the title changes.  Not too hard, not too obtrusive.
I have also been thinking about a 'revert' command, it would just reverse the last change if the last change involved replacing a block of selected text.  I have found myself in that position, selected a large section of a note, hit Ctrl-C to copy, missed the ctrl key and replaced all the text with 'c'. No fun.
So, I will look into both approaches.
Thanks...
Davo

I've always felt the risk of this even with the original tomboy... for myself it would be sufficient to back up the note when it is opened for editing, so that it could be reverted to the state it was when it was opened (as per :e! in VI), but for the issue referred to by OP, I guess it could be time based while the note is open?

Because notes are auto saved, the vi like model would not work, one particular note may well be saved every 10 seconds while its being actively edited.
I understand dakoker's suggestion is to use the existing backup mechanism if the title changes.
Its actually a pretty good idea, low impact.  Backups are normally only made when a note is deleted or overwritten by the sync process. Importantly, I don't have to intercept keystrokes, auto save is timer driven, at the next autosave, I can see if title changed and if so, do it differently.
That won't help if you have selected everything except the title before hitting that errant key.
But the snapshot mechanism will give you an earlier version of the current file of of course.
Hmm...

OK, so further thinking about this says that dajoker and netlore's ideas are more practical than mine.  I understand netlore's idea as "make a new backup of a note at opening". The approaches are compatible and relatively low impact.
While making the backup's are relatively easy alerting the user to the fact they have been made, and allowing him/her to recover them is harder.   So, thinking out loud -
I will add a button to the editnote window "revert", it will popup a dialog with -
This note has unsaved content, please choose

Cancel, continue with this note.
Revert to "On Opening" backup.
Revert to "On Title Change" backup.  (may not be available)

This will not solve all cases, if you have a note open for weeks on end (I do) its "On Opening" backup is grossly out of date and if you select all of a note except its Title and overwrite that, sorry, its gone. But between the two paths, we may cover a significant proportion of the likely problems ?
I will save both types of backup notes in the same place as existing Delete/Overwrite notes but with slightly mangled file names. So they will be also accessible via the existing recover lost notes pathway. Only downside I see is even more (probably unused) content in the Backup directory. But diskspace is mostly cheap. In both cases, overwrite an existing  similar backup, its not a stack. You can only go back one level. I think I can make a reversion reversible, that is, you can keep reverting, toggling between two copies. That may allow copying content from one to another.
Would appreciate your thoughts ....
Davo

Are you sure that "This note has unsaved content," is what you mean... obviously you mentioned that notes are saved every 10 seconds... perhaps the options should be something like "This note can be reverted", or something similar?

I think overall the plan sounds good.  I do not (and I doubt many disagree) worry about the space of notes generally; years and years of notes of mine, and now with 5000+ built up I'm only  using 50 MiB of space.  If I have space issues because of infrequent backups, then I have bigger problems.
Just as a side note, in the past I've nearly lost entire notes for this same reason, but happily found (by accident) that if I deleted the entire note's contents before it saved, then it would not save at all.  I'm just telling you this as an odd case that may or may not be known/expected, but which has saved me a couple times when I lost the entire note via Ctrl+a + something.
Other possible thing to consider: Generally I do not modify many of my notes, though I open them every day (they have information I need for filling out this form or that document), so if I get a copy of one of those each time it's going to create a lot of identical copies.  That's okay with me, but then again maybe something you could do for these backups is have them keep their original UUID/GUID-based name, but append a checksum of the file, e.g. ff0e50c3-69ed-46ae-92e7-f3107156f26.note becomes ff0e50c3-69ed-46ae-92e7-f3107156f26f-md5-d0fceefffdc4013be501c495951c37fe.note or something like that.  The result is that, if you open the same note and close it again, you end up with the exact same checksum, and either you can opt to skip the backup (already there) or write it again (no worries, it's the same exact data).  I realize metadata may cause a change when there is no substantial change (e.g. cursor position, selection, x/y positioning on screen, etc.) but that's fine with me.
While investigating the possibility of that above it looks like even opening/closing a note causes its timestamp to change in the filesystem, which is interesting/odd, but the checksum does not change unless you change something more substantial than just opening/closing.
Thanks for your thoughts on this; it is very encouraging.

Are you sure that "This note has unsaved content," is what you mean... obviously you mentioned that notes are saved every 10 seconds... perhaps the options should be something like "This note can be reverted", or something similar?

You are correct. My first draft of that message had an option to close the note without saving. However, if on reopening, it was found to be missing important content, it would be too late to revert back to the "on open backup". I could workaround that but UI stuff that is too complicated is worse than useless. So, I dropped that option.
(I did warn I was thinking out loud :-)  )
dajoker - thats a clever trick, yes, it would work that way but entirely unintentional on my part. Just good luck.
Using checksum would work but I don't think its that important, as you say, disk is cheap, I think I'd rather save the processing time.
Thanks for the input.
Davo

Ok, here it is working, In this example, its currently 14:20 or twenty minutes past two. I have loaded a note, made some changes and then, decided to copy its content. So, I pressed Ctrl-A, C - yep, 'C' not Ctrl-C, so, the single letter c overwrote my whole note.  I clicked the Roll Back button, and this screen is shown.

If I now click 'Opening Backup' I will get the note from before I opened it, I did make some changes earlier in the day, seven minutes past midday.  The 'Title Change Backup' on the other hand, with a very recent time, will give me back the note that existed immediately before my Ctrl-A, C sequence.
You can toggle backwards and forwards between versions although I strongly recommend against mixed toggling between the two backups, the outcome is quite predictable but not immediately obvious IHMO.  I cannot prevent a user doing so, I cannot determine their intentions !
Comments welcome.
Incidentally, this may help a little but does not resolve the following  #107  #97  #96 and #35
Davo

OK, this is provided in the just released v0.31
Thanks for the report.
Davo

Upgraded and exactly one test tried so far and it works as advertised where a Ctrl+a followed by Ctrl+x or any other character renames the note and a backup is now allowed.  Once reverting, re-reverting is also functional.  This will save me from the worst kinds of problems at least, so thank-you very much for implementing it.


no audio on Acer Chrombook CB514-1H EPAULETTE

Hi, unfortunately I cannot get audio to work when I run
sudo apl-sof-setup-audio
I'll get
Error: 'restricted' invalid

OK, got disable this line in apl-sof-setup-audio does the job
sudo add-apt-repository restricted


Implement Hot Frog

From Brendan Chan's blog:

Starting at level 3, you can pick up speed bonuses by making matches quickly, and the speed of your balls will increase after each match once you’ve maxed out your speed bonus.

Done! https://github.com/ShamblesSM/OpenSMCE/commit/fd493a5a7ada54995daffa3fd2a415d12f9119ea
The values have been quite precisely nailed down based on available footage.

Done! https://github.com/ShamblesSM/OpenSMCE/commit/fd493a5a7ada54995daffa3fd2a415d12f9119ea
The values have been quite precisely nailed down based on available footage.


[Proposal] Mesos Deploy Support

Add the functionality to deploy Ballerina apps directly to Apache Mesos in the same way as is available to Docker and Kuberners.

Hi @Bera,
thank you very much for reaching out to us. We don't have built-in support for Mesos as of now. But this can easily implement it by writing a compiler extension. Since Ballerina is open source, you can write this and send a PR to Ballerina if you like as well.
Please refer following links where you can get an idea about how to implement a compiler extension.
https://ballerina.io/learn/how-to-extend-ballerina/#create-custom-annotations-builder-extensions
Refer kubernetes and docker extensions as well.
https://github.com/ballerinax/kubernetes
https://github.com/ballerinax/docker
Also please refer the contributing guide as well.
Please join our Slack channels so you can ask any question you have from Ballerina developers.


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/77693

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/91774

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/95636

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/104236


Dynamic optionsets and re3data

Add OPTIONSET_PROVIDERS as new plugin type to enhance OptionSet
Add additional api action projects/project/<id>/options/?optionset_id=<optionset_id> to fetch options *which depend on the already given Values.
Add additional ajax request to project_question to fetch dynamic optionsets.

Coverage increased (+0.02%) to 92.175% when pulling f1e18b6f3e3d478d3b38f6218ecb4c6a72628740 on optionset_providers into d6cc1917b33cdaf9fa3920df122da49c05f2f58a on master.


Improve code quality for LabResult and Lab

Codecov Report

Merging #424 (8061b64) into master (a5f1eee) will increase coverage by 1.17%.
The diff coverage is 59.82%.

@@             Coverage Diff              @@
##             master     #424      +/-   ##
============================================
+ Coverage     59.88%   61.06%   +1.17%
- Complexity      541      573      +32
============================================
  Files           100      103       +3
  Lines          2064     2147      +83
  Branches        222      234      +12
============================================
+ Hits           1236     1311      +75
- Misses          736      743       +7
- Partials         92       93       +1

Impacted Files
Coverage Δ

...seedu/programmer/logic/commands/AddLabCommand.java
62.50% <0.00%> (ø)

...grammer/logic/commands/DashboardCommandResult.java
100.00% <ø> (+100.00%)
:arrow_up:

...u/programmer/logic/commands/ShowCommandResult.java
36.36% <ø> (+3.03%)
:arrow_up:

...edu/programmer/logic/parser/EditCommandParser.java
61.11% <0.00%> (-3.60%)
:arrow_down:

...du/programmer/model/student/UniqueStudentList.java
84.21% <ø> (ø)

src/main/java/seedu/programmer/ui/CommandBox.java
0.00% <0.00%> (ø)

.../main/java/seedu/programmer/ui/CommandHistory.java
78.57% <0.00%> (+3.57%)
:arrow_up:

...main/java/seedu/programmer/ui/DashboardWindow.java
0.00% <0.00%> (ø)

...c/main/java/seedu/programmer/ui/LabResultCard.java
0.00% <0.00%> (ø)

src/main/java/seedu/programmer/ui/MainWindow.java
0.00% <0.00%> (ø)

... and 32 more

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 89e92e3...8061b64. Read the comment docs.


Move dry_run logic to the task

The purpose of this is two-fold:

Simplify dry_run logic by moving it to the task directly.
Make it clearer which tasks support "dry_run" or not

By removing the dry_run logic from the core and transferring it to the tasks we basically get rid of code which only purpose is to move things around and we also make it clearer which tasks support it as now to override argument is part of the task signature.

It's not really related to this PR, but we were talking about merging functions and tasks

Yeah, I haven't gotten there.


Move developer related docs into a separate file

README is shown in the marketplace and the audience there doesn't care
about any of this.

I prefer 'DEVELOPMENT.md' rather than 'HACKING.md', but I'm good with it. Feel free to squash/rebase and merge.


use query model in disk_usage.

move query model to nwpc_hpc_model.base.

move query_*.py into base directory.
import all objects from base module in original query_*.py files.


I'm getting an error with AutoFitColumns=$true

Export-Excel : A parameter cannot be found that matches parameter name 'AutoFitColumns'.
At line:1 char:24

$vmlist | Export-Excel @p -IncludePivotTable

                   ~~

CategoryInfo          : InvalidArgument: (:) [Export-Excel], ParameterBindingException
FullyQualifiedErrorId : NamedParameterNotFound,Export-Excel

forget it I found it in the ImportExcel.psm1:  It should be AutoSize :)
[Switch]$AutoSize
New hash for splat:
$p = @{
Path = $OUTFILE
#doesn't work with Excel 2007
NoClobber = $true
AutoSize = $true
Show = $true
}

Love it when issues get opened an closed and I didn't see any of it till it was over :)

Thanks for the cool PSM.  I’m working through it J
From: Doug Finke<EMAIL_ADDRESS>Sent: Tuesday, April 28, 2015 7:14 PM
To: dfinke/ImportExcel
Cc: marthektheman
Subject: Re: [ImportExcel] I'm getting an error with AutoFitColumns=$true (#12)
Love it when issues get opened an closed and I didn't see any of it till it was over :)
—
Reply to this email directly or view it on GitHub https://github.com/dfinke/ImportExcel/issues/12#issuecomment-97284348 .  https://github.com/notifications/beacon/ALlYcEQ9vpIZPig-Pq2e8aNMxOIHJGHZks5oEDYFgaJpZM4ELNa7.gif

Much appreciated. The feedback is awesome. Looking forward to more.