gradle plugin: $ref to schema using relative path generates no results

I have this schema contained in src/main/resources/schemas/json/things.json in a  gradle project:
{
   "$schema": "http://json-schema.org/draft-04/schema#",

   "definitions": {
     "Namespace": {
       "type": "string",
       "pattern": "^[a-zA-Z_]([0-9a-zA-Z-_.])+[a-zA-Z0-9_]$"
     },
     "Name": {
       "type": "string",
       "pattern": "^[a-zA-Z_]([0-9a-zA-Z-_])+[a-zA-Z0-9_]$"
     },
     "Version": {
       "type": "string",
       "pattern": "^\\d+\\.\\d+\\.\\d+(-([0-9A-Za-z-.]*[0-9a-zA-Z])+)*$"
     },
     "Thing": {
       "properties": {
         "namespace": { "$ref": "#/definitions/Namespace" },
         "name": { "$ref": "#/definitions/Name" },
         "version": { "$ref": "#/definitions/Version"}
       },
       "required": ["namespace", "name", "version"]
     }
   }
}

...and I have a second schema file located in src/main/resources/schemas/json/thingList.json where I'm trying to use $ref with a relative path reference to this other schema:
{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "type": "array",
   "items": { "$ref": "things.json#/definitions/Thing" },
   "minItems": 1
}

I arrived at this path expression via this answer on Stack Overflow.
But, when I use the gradle plugin to run the generateJsonSchema2Pojo task, nothing is generated.
Are relative paths supported? If so, am I using the correct syntax for expressing this relative path? If not, what alternatives do I have? I need for the ref path to work on multiple developers' systems where the absolute paths to these files are completely different.

Could you provide the config you're using when invoking the gradle plugin?

Sure - here is the config:
jsonSchema2Pojo {
  generateBuilders = true

  usePrimitives = false

  source = files( "${sourceSets.main.output.resourcesDir}/schemas/json/thingList.json" )

  targetDirectory = file("${project.buildDir}/generated-sources/js2p")

  targetPackage = 'com.biz.serialization'

  propertyWordDelimiters = [] as char[]

  useLongIntegers = false

  useDoubleNumbers = true

  includeHashcodeAndEquals = true

  includeToString = true

  annotationStyle = 'jackson2'

  customAnnotator = 'org.jsonschema2pojo.NoopAnnotator'

  includeJsr303Annotations = true

  sourceType = 'jsonschema'

  removeOldOutput = true

  outputEncoding = 'UTF-8'

  useJodaDates = false

  useCommonsLang3 = true

  initializeCollections = true
}

Whoops - this is not an issue. I am getting generated classes. Simple synchronization problem on the file system.
Sorry!

Thanks for reporting back :+1:


[BUG] - No information is displayed.

Description
No data will display. I have tried old and new a1111 images, many different comfyui generations from many different sources, nothing.
Reproduction steps
No response
Image file

Please press the Queue Prompt button to trigger this node.


Site not reachable with EADDRINUSE error

Hi
I'm deploying to a Linux server Ubuntu14.04.3 running Node 0.10.40, am using Meteor 1.2.1 and deploying using mup. Mup.json specifies port 80
After deploy the site isn't reachable. The 'mup logs' give me this:
Error: listen EADDRINUSE
at errnoException (net.js:905:11)
at Server._listen2 (net.js:1043:14)
at listen (net.js:1065:10)
at net.js:1147:9
at dns.js:72:18
at process._tickCallback (node.js:448:13)
error: Forever detected script exited with code: 8
error: Script restart attempt #7
The EADDRINUSE error suggests that the port is already taken for another site or app. However there is definitely no other web server or meteor application running. Changing the port to (say) 8000 has the desired effect, ie. all is well. But of course the site then isn't reachable for the public. A reboot, redeploy, reconfigure etc all hasn't helped.
Any advice is welcome!
E.g. How can I check the mup/meteor settings on the server? Are there any other library dependencies I need to be aware of?
Thanks
Mark

If you SSH into the target machine and wget or curl that conflicting port (locslhost) it might reveal that in fact there is something already running there? Before and after deploy?
Im also thinking maybe trying mupx will make a difference for you.


Cleanup/clippy and update pass

Quick dep upgrade/cleanup + a missed requested cleanup fro. #335.
What was run:
cargo update
cargo upgade --incompatible --recursive
cargo machete --fix

You may want to run cargo udeps as well, I believe some dependencies are unused

Forgot about udeps. These were not false positives, and I added them to the PR.

Side note, I wonder if we want to leave dependency updates ad-hoc or on a more regular schedule / pegged to releases, etc... But non-blocking.

Yeah I agree. Lets plan on doing these runs before every release.

I just noticed that github bot didn't add the smt_trie tag. It's missing a labeler update from https://github.com/0xPolygonZero/zk_evm/commit/e76f6d4152afc824f38ab36c842973d7071ce751 when we merged this crate into develop. Would you mind cherry-picking it in this cleanup PR? Should be good to go after

Yeah I'll get this!


protojson: AllowDuplicate unmarshal option

Is your feature request related to a problem? Please describe.
Mapping proto to an existing JSON API where the top level field returns a duplicate field fails with the error:
"proto: (line 17562:5): duplicate field \"num_found\""

This is defiantly a bug in the API, (that I suspect is due to a dev not wanting to scroll to the top to see how many items there are in the list 🙃) but can't currently be ingested by protojson.
Describe the solution you'd like
Opposite of https://github.com/golang/go/issues/48298 for protojson.
Describe alternatives you've considered
Considered using encoding/json to map[string]json.RawMessage re-encoding and then decoding with protojson. This doesn't solve the issue when the field name conflicts to a json name. i.e. numFound and num_found.

I can't speak on behalf of the protobuf owners today, but I can imagine the following future.
There's a prototype for a new JSON implementation that we'll be more widely discussing in the near future on the golang/go repository. There's a decent chance that it (or something like it) may be adopted as the "encoding/json/v2" package.
If that future arrives, I can imagine that the protojson package add the following functions:
func MarshalEncode(e *jsontext.Encoder, m proto.Message, o json.Option) error
func MarshalDecode(d *jsontext.Decoder, m proto.Message, o json.Option) error

where the existing Marshal and Unmarshal functions are implemented in terms of MarshalEncode and UnmarshalDecode.
These functions could now respect the jsontext.AllowDuplicateNames option.
As a fun historical note: The protojson package does not use the "encoding/json" package at all since it targets a stricter standard of JSON (RFC 7493). Consequently, it implements it's own JSON tokenizer. The v2 JSON prototype can be thought of as a spiritual successor to the tokenizer that's implemented internally in the protobuf module. In that possible future, we should be able to entirely delete google.golang.org/protobuf/internal/encoding/json in favor of encoding/json/jsontext, which would be better supported and much more performant.

It seems the C++ implement doesn't support such an option right now (https://protobuf.dev/reference/cpp/api-docs/google.protobuf.util.json_util/#JsonParseOptions).
We would only consider supporting this if it is supported by all other major languages. This means, I suggest filing a request to generally support this and add it to the proto spec.
If such a request is accepted we can revisit this issue.
Sorry if this is not the answer you were hoping for but language inconsistencies caused some trouble in the past and we are careful with adding features that are not enforced by the spec.

Thanks both. Happy to close, I think the default should be to error and understand not wanting to have options for it. Will fix my original issue another way.

@lfolger does the C++ implementation check for duplicate fields?

I think it does but I didn't double check, so don't take my word for it.
I didn't have time to dig through the implementation or write a test.

When I implemented protojson, I did so by following an Google-internal "specification" that called for compliance with RFC 7493, which clearly rejects duplicate names. I strongly recommend against changing the default behavior of duplicate name handling as allowing for it can result in a privilege escalation attacks (e.g., CVE-2017-12635), especially in an ecosystem like protobuf where you have multiple different JSON implementations.

This is consistent with proto encoding. Maybe protojson should do the same for consistency?

For proto encoding, there is a well-specified semantic for how "duplicate" names work. This is not the case for JSON, which leaves it as undefined behavior. Technically, JSON for protobuf specifically, could define a semantic for duplicate names, but that's a poor precedence to set since many JSON-only libraries do not faithfully expose this.
That said, it is an argument for potentially allowing you to configure the behavior, and I think my proposal above would be the cleanest way to expose it (but will take a while before the API appears).

Excited for the new json lib and thanks for the clarification. Agree the best solution is for the new API's to be available.


Compatibility w/ South

Please consider making the app compatible with South http://south.aeracode.org/
Thanks,
Alex

Sorry, I know this issue was closed 6 months ago, but I've recently installed version 0.6beta5 and when I tried to migrate my apps that had CategoryM2MFields on them I got an error. I had to add an introspection rule to each app that used categories for migrations to work.
Surely if it's to be fully compatible with south, shouldn't the introspection rules be in categories.models? Or am I missing something?

Well, the latest version is 0.8.5 and fields.py contains all the introspection rules. Is there a reason you are using 0.6beta5?

Ah yes, sorry, I had it in my head the version I was using was the latest version... should have looked at the version numbers before posting!


added mp district data

issue 147, I am still working on how should arrange the data, by District or Municipality

Just a reminder @henkhodryza


Scam/phish site: transive[.]top

There are numerous scams on Facebook advertising "amazon mystery boxes" that come with a variety of items included. You can only buy one with a credit card number, of course, no paypal or similar. Upon ordering one, you're sent a text message in broken English with a shortened link like "t.ly/USSCxxxx" and told to update your contact info.
This link resolves to "transive.top" which was created less than a month ago and is currently hosted by Aceville PTE, a high-risk scam ISP. I'd like to propose we include transive.top in the blacklist as either a scam or phishing site. It's kind of both.

Thank you Devon @hyder365, I have added both of these.  Those will go live in the next release.
Closing.


Ford-Fulkerson Algorithm

Description
In this, I will explain this graph-based algorithm Ford-Fulkerson algorithm which is a greedy approach for calculating the maximum possible flow in a network or a graph.

Well explained code with useful comments.
Well explained readme file,

Domain
Algorithm
Type of Contribution
Addition
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

/assign


sqlparse 0.4.4

Changelog: https://github.com/andialbrecht/sqlparse/blob/0.4.4/CHANGELOG
License: https://github.com/andialbrecht/sqlparse/blob/0.4.4/LICENSE
Requirements: https://github.com/andialbrecht/sqlparse/blob/0.4.4/pyproject.toml
Actions:

Clean up and improve the recipe:

Add jinja2 variable name
Add the flag --no-build-isolation to script
Remove setuptools and wheel from host as flit-core has its own wheel builder https://github.com/pypa/flit/blob/f7496a50debdfa393e39f8e51d328deabcd7ae7e/flit_core/flit_core/wheel.py#L61. So we can ignore the linter warning

Add sqlformat --help to test/commands as we have entry_points in the recipe

Notes:

We update the package because sqlparse <0.4.4 is affected by CVE-2023-30608 with a score of 7.5

Linter check found the following problems:
The following problems have been found:
ERROR: clone/recipe/meta.yaml:23: missing_wheel: For pypi packages, wheel should be present in the host section
Errors were found

Linter check found the following problems:
The following problems have been found:
ERROR: clone/recipe/meta.yaml:23: missing_wheel: For pypi packages, wheel should be present in the host section
Errors were found


fix: check nil in isSingleNode func

What type of PR is this?
fix
What this PR does / why we need it (en: English/zh: Chinese):

en: fix: check nil in isSingleNode func
zh: fix: 在 isSingleNode 中判断指针是否为 nil
Which issue(s) this PR fixes:

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Apply defaults to config inside adapter, without the config provider involved

It won't be invoked when old node-debug dispatches to pwa-node, or for the VS case

And always activate when node-debug activates
And add "request" back for tests

Actually, should I remove the code from the debug config providers that does the same thing?

The default configs have some portions that reference the workspace folder that vs code needs to resolve. I think it's fine as a stepping stone here but it might not always be safe to fill in the defaults outside of the config provider.

I realized that after some debugging, we won't resolve ${workspaceFolder} here. I think I should still merge this for the VS scenario but they should know if they need to pass rootPath. Also I think we should merge rootPath/outFiles.

Sounds good.
In addition to the breakpoint predictor, rootPath is used as a fallback for some other scenarios but I don't think it's ever needed/hit there with our fulfilled defaults. I agree we should probably coalesce it into something more specific such as outFiles.

I'm not sure what you're referring to

assignWorkspaceFolder in attachProcess is a special-case equivalent of resolveVariablesInConfig. I guess not entirely remove the fact that we need it, but deduplicate it at least.


Invalid MultiSend contract address

I can access this page by adding some of the safe contract I know into watchlist but having error as per this screen capture

You need add your chain info in https://github.com/safe-global/safe-deployments/ and then update the safe-deployment version in the safe-wallet-web

@Pana

You need add your chain info in https://github.com/safe-global/safe-deployments/

It's already added:
https://github.com/safe-global/safe-deployments/pull/652
https://github.com/safe-global/safe-deployments/pull/663

then update the safe-deployment version in the safe-wallet-web

What do you mean? In ui.env:
NEXT_PUBLIC_SAFE_VERSION=1.4.1

Is it because the safe-wallet-web haven't update their package.json?
"@safe-global/safe-deployments": "^1.36.0",

It is using the older version of safe-deployments

If the official safe-wallet-web code still use the old version safe-deployments, you need fork the safe-wallet-web code, and use your own version safe-deployments, then build and deploy

@Pana btw, I tried to rebuild the safe-wallet-web with below, unfortunately the issue persists.
"@safe-global/safe-deployments": "^1.37.1",

fixed after update components to later version


db:create errors

PG::ConnectionBad: FATAL:  database "dpul_development" does not exist
Had to run createdb dpul_development
This is probably setup-specific and I'm not sure why my homebrew-installed postgres couldn't/didn't do this for me. But if others run into it it might be useful to add to the readme.

I have encountered this when attempting to invoke db:drop and db:setup, but for https://github.com/pulibrary/figgy. Prior to today (04/23), this was never required in my macOS environment (10.14.5).

we have lando now; I don't think this is an issue anymore


Solax - grid status not correctly reported

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Not recognizing grid status of Solax correctly. Solax entity sensor.solax_grid_status returns "OnGrid" string and sunsynk-power-flow-card accept "On Grid" string.
I use Solax X3 G4 with modbus integration Solax.
Steps To Reproduce
No response
Expected behaviour
Accept "OnGrid", "OffGrid" strings.
Card Version
V4.10.1
Home Assistant Version
2024.1.3
Configuration
grid_connected_status_194: sensor.solax_grid_status

Relevant log output
No response

I will add those for you


[feat] Support async callback

I need to call some sync c functions in a callback, but those functions would trigger some predefine callback, so directly calling them would cause deadlock. Though func.async could help, but the callback itself isn't async. Thus, is it possible to support callback return a Promise, or add sth. like registerAsync which pass a callback function to the callback?
koffi.register(() => {
  return new Promise(resolve => {
    func.async((err, res) => resolve(res));
  })
})
koffi.registerAsync((cb) => {
  func.async((err, res) => cb(res));
})

Do you guys think this is a complex issue to solve? I didn't want to change technology at all 🥲

Do you guys think this is a complex issue to solve? I didn't want to change technology at all 🥲

You still need to understand the knowledge points of C++ a little bit to facilitate troubleshooting😂

Keeping this open, but no ETA.

After some inspection, it seems that what we need is to add a sync promise waiting logic on the returning NApi::Value inside the CallData::Relay. But this action should only be perform if the callback isn't being called on main thread, otherwise deadlock would occur.
while (value is promise) {
    value = block_wait_resolve(value)
}

    // Make the call
    napi_value ret;
    if (switch_stack) {
        ret = CallSwitchStack(&func, (size_t)arguments.len, arguments.data, old_sp, &mem->stack,
                              [](Napi::Function *func, size_t argc, napi_value *argv) { return (napi_value)func->Call(argv[0], argc - 1, argv + 1); });
    } else {
        ret = (napi_value)func.Call(arguments[0], arguments.len - 1, arguments.data + 1);
    }
    Napi::Value value(env, ret);

    if (env.IsExceptionPending()) [[unlikely]]
        return;

https://github.com/Koromix/rygel/blob/2a988f283a8d3b1ddd984db2c24c462a85687a5c/src/koffi/src/abi_x64_win.cc#L545-L556


As an external user, I want to see a stepper, so that I know where I am in the application process

Description:
There are two different steppers in the wireframes, this is about figuring out which one we're using/how they fit into edit/view modes:

Full wireframes: https://www.figma.com/file/84BpebYIR1iYetxJThLsW6/CIF---External-User-Portal?type=design&node-id=585-547&t=1hn0xVWUh18HoIV0-0
Acceptance Criteria:
Given
When
Then
Development Checklist:

[ ] Checklist item
[ ] Checklist item
[ ] Checklist item
[ ] Meets the DOD

Definition of Ready (Note: If any of these points are not applicable, mark N/A)

[ ] User story is included
[ ] User role and type are identified
[ ] Acceptance criteria are included
[ ] Wireframes are included (if required)
[ ] Design / Solution is accepted by Product Owner
[ ] Dependencies are identified (technical, business, regulatory/policy)
[ ] Story has been estimated (under 13 pts)

·Definition of Done (Note: If any of these points are not applicable, mark N/A)

[ ] Acceptance criteria are tested by the CI pipeline
[ ] UI meets accessibility requirements
[ ] Configuration changes are documented, documentation and designs are updated
[ ] Passes code peer-review
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Ticket is ready to be merged to main branch
[ ] Can be demoed in Sprint Review
[ ] Bugs or future work cards are identified and created
[ ] Reviewed and approved by Product Owner

Notes:

'

Is there anything we need to put in the "declarations" section at this point? I think we can skip that part if it makes sense


Update and search for connected devices

Hi, I'm running your custom component with 3 Deco P9 connect and detect the device_trackers.
But when a device disconnects and then reconnects, the state of the device does not change until I open the HA app.
It's normal?
Version
HA 2022.3.3
ha-tplink-deco 2.0.2
Configuration, I also waited for the time indicated in the configuration.

Ping work

But state is not_home

The app should not affect it, but there is an expected delay in update since this is a polling integration. It depends on how often it updates. e.g. the "Seconds between updates" setting. So it may take 30s + how long it takes to make the requests to update.


Entity API not retrieving all folders

Hi James,
I'm having trouble accessing certain folders using pyPreservica and the Entity API.
Using client.folder gives me a Reference Not Found exception, saying the reference is not found in the repository.  It also provides the link it says returned a 404, but when I test the link manually, it is valid.
I've also tried getting a list of all top-level folders using the following, but I only get back a partial listing.
for entity in client.descendants():
     print(entity.title)

Is there a reason I can access some folders and not others? I can't quite discern a patten between the folders I can/can't access.
Thanks in advance!
Courtney

Never mind, I figured it out! (It had to do with roles I had set up for our API Service account)


Add Support for Anko Layouts

Fixes #1320
Changes: Converted Item Card Event to Anko DSL
Screenshots for the change:

@iamareebjamal review this you might have to run this on an actual device to see the difference in results and also how can i test it with actual result currently i was able to test with sample data only

Thanks for pointing it out but i already know that and i am waiting for it review first and PR is incomplete as of now

@iamareebjamal please review this

Yeah I don't think it looks good or maintainable. Plus, I'm planning on using data binding later which we can't do here

We can use databinding as well checkout this video https://youtu.be/dYskPdOSvo4

You can see the example in the video itself how verbose and unpleasant it is. People won't want to use databinding if they had to use it like that. Also, you can't mix anko layouts with normal layouts AFAIK. I want to include a layout and bind parameters in the XML, I can't do that

We can use include as well but nm I'll close this PR

I vote against anko layouts because where anko layouts shine is when you have heavy dynamic layouts or want to remove overhead of layout inflation in case of simple layouts, etc. We don't have dynamic layouts, nor is layout inflation a bottleneck for us

You can add anko layouts in new layouts we add for simple layouts but I don't think we should convert existing layouts


Trip and stages finished

Indexes, aggregations, complete CRUD

@JuanCarlosAlonsoValenzuela remove all the TODO or comments you don't need.

format the code running in the terminal npm run format


feat: Add value for clusterDomain

Description
Add a new parameter global. clusterDomain to be able to overwrite the Kubernetes clusterDomain in Helm context.
PR fixes following issue(s)
Fixes # (issue number)
Media
Type of change

New feature (non-breaking change which adds functionality)
This change requires a documentation update

Testing
How Has This Been Tested?

[x] Manual

Test Plan
Issues raised during DP testing
Checklist:
Dev activity

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

@sharat87 @pratapaprasanna
Please review :-)

Thanks for your review!
I implemented the requested changes. :+1:

@pratapaprasanna, can you review this when you get a chance please? Thanks!

@pratapaprasanna @sharat87 Would be great if a review could be done before the PR is closed. Thanks in advance!

@alexalex89  can you rebase and push the changes ?

@alexalex89 can you rebase and push the changes ?

Hey, I did a rebase on release :-)

@pratapaprasanna Could you please merge my PR? Thanks!

@pratapaprasanna What's the current status here? Anything I could do?


Installing from store Ubuntu 22.04.1 install got error ls -l /tmp/.X11-unix failed.

Version
21H2
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
No response
Distro Version
No response
Other Software
No response
Repro Steps
Installing from store Ubuntu 22.04.1 install got in show more info while installing an error
ls -l /tmp/.X11-unix failed.
But still all worked and works.

Expected Behavior
Shouldnt have to have error
Actual Behavior
Got error.
But all works.
Diagnostic Logs
No response

Could you please follow up with Canonical? They own this installer and should take a first look at this. Thanks!


Fix regression in display of actions on vehicle sheet

This required a bit of a refactor due to shared styling. The action markup is now in a separate, shared partial template.

borken


Create rdk-jenkins

sample test code do not merge

Can one of the admins verify this patch?

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


ConfigManager::begin() changes value of int in struct

Below is a simple ino that reproduces the issue.
I have a struct that defines my configuration - it has an array of a struct of char * and a single int. Both the struct and ConfigManager are members of a class I'm writing.  However, after calling ConfigManager::begin() the value of the int becomes -1.
I have tried erasing my flash in case there was previous data being read, but that didn't change anything. I would appreciate any help and/or advice you have on this.
For testing purposes I am using Arduino 1.8.13 and ConfigManager 2.1.0. My device is an esp32 wroom 32D.
#include <ConfigManager.h>

const int CALENDARS = 8;

typedef struct configuration_calendar_t {
  char color[8];
  char name[100];
  char url[255];
} config_cal_t;

typedef struct configuration_t {
  config_cal_t * calendar[CALENDARS];
  int calendars;
} config_t;

class Config {
  public:
  Config(): manager(new ConfigManager()) {}

  void begin() {
    Serial.printf("Config::begin(): config.calendars = %d\n", config.calendars);
    manager->begin(config);
    Serial.printf("Config::begin(): config.calendars = %d\n", config.calendars);
  }

  private:
  config_t config{};
  ConfigManager * manager;
};

void setup() {
  Serial.begin(115200);

  Config * config = new Config();
  config->begin();
}

void loop() {
}

are you adding parameters like the example?
In your setup function start the manager

configManager.setAPName("Demo");
configManager.setAPFilename("/index.html");
configManager.addParameter("name", config.name, 20);
configManager.addParameter("enabled", &config.enabled);
configManager.addParameter("hour", &config.hour);
configManager.addParameter("password", config.password, 20, set);
configManager.addParameter("version", &meta.version, get);
configManager.begin(config);

@cgmckeever In my haste I didn't add the config initialization to my demo code. I've updated it now to reflect calling addParameter.
Weird thing is, when I add meta.version it initializes to zero, and stays zero. So it's only affecting my config_t struct.
16:24:27.263 -> Config::begin(): config.calendars = 0
16:24:27.263 -> Config::begin(): meta.version = 0
16:24:28.357 -> Config::begin(): config.calendars = -1
16:24:28.357 -> Config::begin(): meta.version = 0

FWIW meta isnt save to the EEPROM, so it not getting clobbered the same way as the config makes sense -- although why the config is being set to -1 is baffling me. Im trying to parse back into the code ;)

meta isnt save to the EEPROM, so it not getting clobbered the same way as the config makes sense

Agreed. I had the same thought, but I wanted to share the result nonetheless. Thanks for taking a look!

Have you tried to update the value AFTER you do the begin, and then restart the device to see if the value is preserved - or if it is getting clobbered? I faintly remember something about the initialized value like this, but I may be making this up

ok, I seem to now think ints are set to -1 ... at least that is what my code for setting defaults is telling me
https://github.com/cgmckeever/arduino-sketch/blob/master/esp-alexa-relay/relay-a/v2/main/main.ino#L71 .. see L:80

If I save the values to eeprom, it reads them fine after a reset. This at least gets me moving forward again.

I think .. not sure .. its because NULL is treated as -1 .. this is the only hint I have
https://github.com/nrwiersma/ConfigManager#clearsettingsbool-reboot

I thought NULL is the same as zero.

yeah .. Im all confused myself right now .. my code seems to indicate that default ints are -1 and resetting the EEPROM sets things to null .. but ... I have no conclusive evidence outside of that

talking more out my butt, BUT .. NULL for the EEPROM may be \xff
https://stackoverflow.com/questions/28737829/whats-the-diffrence-between-xff-and-0xff

Looking at some EEPROM related discussions, it sounds like -1 (signed char) and 255 (unsigned char) - or 0xFF - is considered unwritten data. So it seems to be part of the EEPROM standard, which is what the emulated EEPROM follows, and your suggestion of checking the values of ints and saving the sane default may be the appropriate approach to handling things. I could be wrong.
At the very least, a warning in the documentation may be warranted.

One question? When you see the issue, do you have WiFi credentials set in EEPROM? We should never read the config from EEPROM without the magic bytes set, which can only happen once you have actually saved your config before. This can be seen when enabling the debug log, it should print "Reading saved configuration".
Could you perhaps enable the debug logging and post the logs here? This would give us a really good idea of how this is happening.

When you see the issue, do you have WiFi credentials set in EEPROM?

Yes, I haven't tried this in AP mode.

Could you perhaps enable the debug logging and post the logs here?

MAC: 7C:9E:BD:ED:28:5C
Checking for magic initialization
Reading saved configuration
SSID: "nebakanezer"

Wifi connection attempt 1
Waiting for WiFi to connect
...
Connected to nebakanezer with <IP_ADDRESS>
Station Mode
Webserver enabled on port: 80
Index page registered
Scan page registered

Ok, i see the issue. When the initial wifi settings are written, the default config should also be written, but it no longer is.

Can you give this branch a go: https://github.com/nrwiersma/ConfigManager/tree/store-init-config. You will need to start from a clean EEPROM.

I went through the nuclear option and erased my flash and reuploaded everything. It is doing the Right Thing. It appears the settings are written/read correctly - even in AP mode:
MAC: 7C:9E:BD:ED:28:5C
Checking for magic initialization
MagicBytes mismatch
Starting Access Point
AP Name: Desk Buddy Setup
AP IP address: <IP_ADDRESS>
AP Api Mode
Webserver enabled on port: 80
Index page registered
Scan page registered
Config::begin(): config.calendars = 0 // A debug statement directly after calling ConfigManager::begin()
...
[E][WebServer.cpp:632] _handleRequest(): request handler not found
Unknown URL: captive.apple.com
Index Page: /wifi.html.gz
[E][WebServer.cpp:632] _handleRequest(): request handler not found
Unknown URL: captive.apple.com
Index Page: /wifi.html.gz
[E][WebServer.cpp:632] _handleRequest(): request handler not found
Unknown URL: captive.apple.com
Index Page: /wifi.html.gz
Storing WiFi Settings for SSID: "nebakanezer"
EEPROM committed: true

What about on second boot, which i think is where you have the initial problem? Is that now fixed as well?

It comes back up as zero as expected.
MAC: 7C:9E:BD:ED:28:5C
Checking for magic initialization
Reading saved configuration
SSID: "nebakanezer"

Wifi connection attempt 1
Waiting for WiFi to connect
.......
Connected to nebakanezer with <IP_ADDRESS>
Station Mode
Webserver enabled on port: 80
Index page registered
Scan page registered
Config::begin(): config.calendars = 0

Awesome, then I will commit this tonight and cut a bug fix version.

@nrwiersma Should that initial save be doen at the cold start
https://github.com/nrwiersma/ConfigManager/blob/master/src/ConfigManager.cpp#L64

@cgmckeever I am reluctant to as normally nothing is written to EEPROM until the WiFI is setup. It seems simpler to add the config at the same time as the Wifi.


Helpful Tips List

if you want to use windows Dynamic drives,  just share them with a new drive letter, than PSChiaPlotter will recognize it in the temp selection

if you have 1TB SSD/NVME drive, you can only plot 3 limit, and the ignore Max PLot button does not appear,
what i did to fix this was to create a windows span drive and add a older 120GB to the end of your 1TB SSD.
then share & map the drive as mentioned above.
that way  PSChiaPlotter see's the drive as 1.12 TB and allows 4 plots Max!

If you still cannot see your Raid drives after all the updates, just create a folder on any other drive and symlink your Raid drive to this folder :)

I have also added an "Basic Plotting" setting so you can now enter the file path manually instead of using the drop down. :)


Support for node.js versions below 12

Great work, first of all !
I tried running corona-cli in my machine which has Node.js 10.16.3 (which isn't that old !! ) and found this error.
× Node version issue!

You are running Node version: 10.16.3
Required version of Node is: 12 or higher.

i Please update your version of Node.js to run this program.

Is there any reason why corona-cli supports only Node.js versions 12 and higher?
Is it possible to support lower versions?

Not sure what would that accomplish. Currently 12.16.2 LTS is the long term support version behind that version are old versions not supported anymore, I don't want to maintain or support an old version of Node.js that's not active at all. You should probably upgrade to atleast v12.

In all fairness, the CLI should work fine above v8 but I don't test features for anything below v12 so it's a hard bet.

You could contribute a flag that would overrite this hard requirement at your own risk. Something like --dangerous -d command to signify it's unsafe to use old version and that flag would remove this check.

@ahmadawais : Makes sense.

@ahmadawais : Created a PR for an optional dangerous mode. Pls check.


Improve selfhost testing experience

Make it possible to run extension tests using our running

This probably entails making a generic VS Code extension test runner (neat!)

@ulugbekna is passionate about Jest!

We probably cannot readily copy-paste jest into core tests, but we should see if there's features we miss in Jest that we can bring over
Any inspiration we can take from the Jest extension to improve UX in core?

Personally I am hoping greater use by the team of the native testing UI will lead to the coverage API getting some attention. In particular, until its results get surfaced in the UI there's not a lot of incentive for us extension developers to invest in it. See #123713

I’m a big fan of snapshot testing that Jest supports and think we could benefit greatly from adopting it.
Snapshot testing
Snapshot tests (aka "expect tests) are tests that capture the string representation of a given object and compare to the expected string. The important aspect of these tests is that those snapshots

can be hand-written or "captured" on the first run. Note how I write toMatchInlineSnapshot() and the test runner runs the test, get the expected output and updates the test with the expected snapshot. This allows writing tests a lot faster

https://github.com/microsoft/vscode/assets/16353531/f5550aed-b47c-4769-85ab-442524f33715

if the actual snapshot doesn't match the expected snapshot, one can update the latter automatically with various granularity - test, suite, file. Henning contributed a code action that allows updating a single assertion failure in our tests, but  it is limited to a single assertion at a time

Snapshots also allow for more visual tests because one doesn't need to write those by hand:
		test('returns the positions of all functions in the source code', async () => {
			const source = outdent`
				function add(a, b) {
					return a + b;
				}

				function subtract(a, b) {
					return a - b;
				}
				`;
			expect(await jsSourceWithFunPos(source)).toMatchInlineSnapshot(`
			"<start-0>function add(a, b) {
				return a + b;
			}<end-0>

			<start-1>function subtract(a, b) {
				return a - b;
			}<end-1>"
		`);
		});

Some things that could be improved with Jest & Jest extension:

Updating the snapshot requires a re-run of tests (possibly reuses the cached test runs, but still not instantaneous update as is the case with the OCaml language test runner), while we could store the expected outputs and update the file as required (this's the problem with Jest rather than the extension)
It uses diagnostics to show the diff between test mismatches instead of a diff viewzone

Each diff viewzone could have a button to accept the proposed snapshot

I like this blog post describing how snapshot tests can be nice - https://blog.janestreet.com/the-joy-of-expect-tests/
Jane Street is big on snapshot testing and have their own framework. Their way of creating snapshots is a bit different because they don't compare the snapshot against an object but they capture stdout from a test as a snapshot.

Happy to jump on a call to discuss this more and, in general, help with implementation some of the things, if time permits.

Followup items from discussion:

A way to view/peek the snapshot expected results

Syntax highlighting for peek expectations would be nice

Test Results should reflect retired state so we can see what snapshots have been applied
isPeekVisible context key does not seem to behave correctly 🤔
Make electron messages in the output terminal dimmed out / less prominent

I finished the big themes I wanted to implement for this issues with the test CLI and its adoption in core. Copying the notice I sent for posterity

This week I've been working on a new way to run extension tests. It includes a configuration-driven command-line runner, as well as an extension that runs extensions tests in the VS Code UI.
:point_right: For people who own built-in extensions:  You can now use this for built-in extensions in VS Code! To onboard your extension: (example)

Add your extension to the extensions array in .vscode-test.js
Update test-integration.sh and test-integration.bat to run using the runner
If the tests don't run in the web, you can remove your old test .ts runner script. The runner does not yet support web tests (but it will soon) so this is still needed.
You can now run your extension tests in two ways:
a. Via yarn test-extension -l <label> on the command line. Do this to validate your config is set up correctly!
b. With the ms-vscode.extension-test-runner extension installed, you can run and debug tests using the VS Code UI, as in the image below

:point_right: For people who write extensions: pretty similar to the above! You can use the above as guidelines as well as the documentation and an example.


Creating CHANGELOG.md.

Hello!
I've been using this library for a while and think it's great! I've been waiting on an upstream release for a while and so have been keeping an eye on your changelog. Today I was checking in again and thought about the changelog being part of the Readme file. A lot of projects tend to have the changelog in a separate file to keep the main Readme a little less cluttered. What do you think? Would that be helpful?
Thanks again for all your work getting Ruby and SassC to play nice together!

Thanks for the PR, but i'm going to keep the changelog as part of the readme for now.  I think it's more visible, and it's not that large yet.


Beautiful template!

Beautiful template! I'm tinkering around with doing a revealjs template as well so just wanted to let you know (if you don't already) that I wasn't able install yours:
(base) Andrews-MacBook-Pro:slide-demo andrewbray$ quarto install extension mcanouil/quarto-revealjs-coeos

Quarto extensions may execute code when documents are rendered. If you do not
trust the authors of the extension, we recommend that you do not install or
use the extension.
 ? Do you trust the authors of this extension (Y/n) › Yes
[✓] Downloading
[✓] Unzipping
    Found 0 extensions.
ERROR: Invalid extension
The extension staged at /var/folders/5q/lhhrhbyd2ygdptqypqt2mb4c0000gn/T/quarto-session77d9e5a3/f91c51c8/20e7c366/archive/staged does not provide any valid extensions.

Session info:
(base) Andrews-MacBook-Pro:slide-demo andrewbray$ quarto check

[✓] Checking Quarto installation......OK
      Version: 1.0.36
      Path: /Applications/quarto/bin

[✓] Checking basic markdown render....OK

[✓] Checking Python 3 installation....OK
      Version: 3.9.1
      Path: /usr/local/bin/python3
      Jupyter: 4.11.0
      Kernels: python3

[✓] Checking Jupyter engine render....OK

[✓] Checking R installation...........OK
      Version: 4.2.1
      Path: /Library/Frameworks/R.framework/Resources
      LibPaths:
        - /Library/Frameworks/R.framework/Versions/4.2/Resources/library
      rmarkdown: 2.14

[✓] Checking Knitr engine render......OK

Thanks for reporting the issue.
I fixed it. It was missing the _extension sub-directory.


Added Mathematics Escape Room Game

PR Description 📜
Added a new game 'Mathematics Escape Room'
Fixes #4542

Mark the task you have completed ✅

[X] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[X] I have performed a self-review of my own code or work.
[X] I have commented my code, particularly in hard-to-understand areas.
[X] My changes generates no new warnings.
[X] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[X] I have added screenshot for website preview in assets/images
[X] I have added entries for my game in main README.md
[X] I have added README.md in my folder
[X] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @tanishaprasad ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

@kunjgit Please review my pr so that i can work on another issue in your repository.

Please do the following changes add your game entry into the main readme.md file of the repo refer other entries for the format

@ishita-43 I have done the required changes.

Thank you  @tanishaprasad , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


update the version being released in CHANGELOG.md

Type of change

Enhancement / new feature

Description
Update the version in the change log when building a release.
Additional Context
Previously we manually had to add new versions to the change log and that meant guessing the next version. For our current purposes that is a problem as we are not actually releasing 0.5.0 next (even if that was the plan).
With this PR the unreleased changes are in the SNAPSHOT section, which will be replaced with the release version when it is made.
Checklist
Please go through this checklist and make sure all applicable tasks have been done

[ ] Write tests
[ ] Make sure all tests pass
[ ] Review performance test results. Ensure that any degradations to performance numbers are understood and justified.
[ ] Make sure all Sonar-Lint warnings are addressed or are justifiably ignored.
[ ] Update documentation
[ ] Reference relevant issue(s) and close them after merging
[ ] For user facing changes, update CHANGELOG.md (remember to include changes affecting the API of the test artefacts too).

Thanks @SamBarker good idea, only worry is that a global replace of SNAPSHOT might eventually replace something unexpected in the changelog. Should we make the placeholder more placeholdery? Like **SNAPSHOT** or ${SNAPSHOT}.


Override context.resetTransform in DOM.context2d?

If you use DOM.context2d when dpi is not 1, you probably never want to say:
context.resetTransform();

Instead you want to say
context.resetTransform();
context.scale(dpi, dpi);

Do we want to monkey-patch context.resetTransform on the returned instance to do this automatically? Or is calling context.resetTransform considered user error?

resetTransform() should not be monkeypatched. I just ran into an issue with a multilayer canvas and drawImage() on HiDPI displays, where the dimensions passed to the output canvas' drawImage() would work as expected on Chrome in OSX, but would get scaled on Chrome in Windows 10. calling resetTransform() on the output canvas fixed the issue.


Fantasy league scoring settings

User Story
As a user I would like to be able to my fantasy league have modifiable scoring settings so that I can customize my fantasy  experience to the way I desire.
Acceptance Criteria

When a fantasy league is create, scoring settings with default values are also created
Users can modify the scoring settings for the leagues that they own
Users must use an auth token to access this endpoint
Users can get the current settings of a league that they own by the fantasy leagues id

Tech Notes

Settings for the fantasy scoring system:

Kills
Deaths
Assists
CS
wards placed
wards destroyed
kill participation
champion damage percentage

Blocked on #188


Fix phan issues

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Tests pass?
✔

Fixed issues

Fixed issues reported by phan/phan. Added tests.
Phan report:
src/ArrayCache.php:70 PhanPossiblyNullTypeArgument Argument 1 ($key) is mixed|null but \Yiisoft\Cache\ArrayCache::get() takes string (null is incompatible) defined at src/ArrayCache.php:22
src/ArrayCache.php:91 PhanPossiblyNullTypeArgument Argument 1 ($key) is mixed|null but \Yiisoft\Cache\ArrayCache::delete() takes string (null is incompatible) defined at src/ArrayCache.php:51
src/ArrayCache.php:142 PhanPossiblyFalseTypeReturn Returning type false|int but normalizeTtl() is declared to return int|null (false is incompatible)
src/Cache.php:59 PhanUnextractableAnnotationElementName Saw possibly unextractable annotation for a fragment of comment '* @param \Psr\SimpleCache\CacheInterface cache handler.': after \Psr\SimpleCache\CacheInterface, did not see an element name (will guess based on comment order)
src/Cache.php:63 PhanPossiblyNullTypeMismatchProperty Assigning ?\Psr\SimpleCache\CacheInterface to property but \Yiisoft\Cache\Cache->handler is \Psr\SimpleCache\CacheInterface (null is incompatible)
src/Cache.php:83 PhanPossiblyFalseTypeArgumentInternal Argument 1 ($str) is false|string but \md5() takes string (false is incompatible)
src/Cache.php:118 PhanParamSignatureMismatch Declaration of function getMultiple(string[] $keys, mixed $default = null) : iterable should be compatible with function getMultiple(iterable $keys, mixed $default = null) : iterable defined in vendor/psr/simple-cache/src/CacheInterface.php:67
src/Cache.php:118 PhanTypeInvalidThrowsIsInterface @throws annotation of getMultiple has suspicious interface type \Psr\SimpleCache\InvalidArgumentException for an @throws annotation, expected class (PHP allows interfaces to be caught, so this might be intentional) (Did you mean class \InvalidArgumentException or class \Yiisoft\Cache\Exception\InvalidArgumentException)
src/Cache.php:137 PhanTypeMismatchDeclaredParamNullable Doc-block of $dependency in set is phpdoc param type \Yiisoft\Cache\Dependency\Dependency which is not a permitted replacement of the nullable param type ?\Yiisoft\Cache\Dependency\Dependency declared in the signature ('?T' should be documented as 'T|null' or '?T')
src/Cache.php:142 PhanTypeInvalidThrowsIsInterface @throws annotation of set has suspicious interface type \Psr\SimpleCache\InvalidArgumentException for an @throws annotation, expected class (PHP allows interfaces to be caught, so this might be intentional) (Did you mean class \InvalidArgumentException or class \Yiisoft\Cache\Exception\InvalidArgumentException)
src/Cache.php:159 PhanTypeMismatchDeclaredParamNullable Doc-block of $dependency in setMultiple is phpdoc param type \Yiisoft\Cache\Dependency\Dependency which is not a permitted replacement of the nullable param type ?\Yiisoft\Cache\Dependency\Dependency declared in the signature ('?T' should be documented as 'T|null' or '?T')
src/Cache.php:164 PhanTypeInvalidThrowsIsInterface @throws annotation of setMultiple has suspicious interface type \Psr\SimpleCache\InvalidArgumentException for an @throws annotation, expected class (PHP allows interfaces to be caught, so this might be intentional) (Did you mean class \InvalidArgumentException or class \Yiisoft\Cache\Exception\InvalidArgumentException)
src/Cache.php:183 PhanTypeMismatchDeclaredParamNullable Doc-block of $dependency in addMultiple is phpdoc param type \Yiisoft\Cache\Dependency\Dependency which is not a permitted replacement of the nullable param type ?\Yiisoft\Cache\Dependency\Dependency declared in the signature ('?T' should be documented as 'T|null' or '?T')
src/Cache.php:188 PhanTypeInvalidThrowsIsInterface @throws annotation of addMultiple has suspicious interface type \Psr\SimpleCache\InvalidArgumentException for an @throws annotation, expected class (PHP allows interfaces to be caught, so this might be intentional) (Did you mean class \InvalidArgumentException or class \Yiisoft\Cache\Exception\InvalidArgumentException)
src/Cache.php:217 PhanTypeMismatchDeclaredParamNullable Doc-block of $dependency in add is phpdoc param type \Yiisoft\Cache\Dependency\Dependency which is not a permitted replacement of the nullable param type ?\Yiisoft\Cache\Dependency\Dependency declared in the signature ('?T' should be documented as 'T|null' or '?T')
src/Cache.php:222 PhanTypeInvalidThrowsIsInterface @throws annotation of add has suspicious interface type \Psr\SimpleCache\InvalidArgumentException for an @throws annotation, expected class (PHP allows interfaces to be caught, so this might be intentional) (Did you mean class \InvalidArgumentException or class \Yiisoft\Cache\Exception\InvalidArgumentException)
src/Cache.php:244 PhanTypeInvalidThrowsIsInterface @throws annotation of delete has suspicious interface type \Psr\SimpleCache\InvalidArgumentException for an @throws annotation, expected class (PHP allows interfaces to be caught, so this might be intentional) (Did you mean class \InvalidArgumentException or class \Yiisoft\Cache\Exception\InvalidArgumentException)
src/Cache.php:282 PhanTypeMismatchDeclaredParamNullable Doc-block of $dependency in getOrSet is phpdoc param type \Yiisoft\Cache\Dependency\Dependency which is not a permitted replacement of the nullable param type ?\Yiisoft\Cache\Dependency\Dependency declared in the signature ('?T' should be documented as 'T|null' or '?T')
src/Cache.php:288 PhanTypeInvalidThrowsIsInterface @throws annotation of getOrSet has suspicious interface type \Psr\SimpleCache\InvalidArgumentException for an @throws annotation, expected class (PHP allows interfaces to be caught, so this might be intentional) (Did you mean class \InvalidArgumentException or class \Yiisoft\Cache\Exception\InvalidArgumentException)
src/Cache.php:356 PhanPossiblyFalseTypeReturn Returning type false|int but normalizeTtl() is declared to return int|null (false is incompatible)
src/CacheInterface.php:44 PhanTypeMismatchDeclaredParamNullable Doc-block of $dependency in set is phpdoc param type \Yiisoft\Cache\Dependency\Dependency which is not a permitted replacement of the nullable param type ?\Yiisoft\Cache\Dependency\Dependency declared in the signature ('?T' should be documented as 'T|null' or '?T')
src/CacheInterface.php:57 PhanTypeMismatchDeclaredParamNullable Doc-block of $dependency in setMultiple is phpdoc param type \Yiisoft\Cache\Dependency\Dependency which is not a permitted replacement of the nullable param type ?\Yiisoft\Cache\Dependency\Dependency declared in the signature ('?T' should be documented as 'T|null' or '?T')
src/CacheInterface.php:61 PhanParamSignatureMismatch Declaration of function setMultiple(array $values, \DateInterval|int|null $ttl = null, ?\Yiisoft\Cache\Dependency\Dependency $dependency = null) : bool should be compatible with function setMultiple(iterable $values, \DateInterval|int|null $ttl = null) : bool defined in vendor/psr/simple-cache/src/CacheInterface.php:83
src/CacheInterface.php:70 PhanTypeMismatchDeclaredParamNullable Doc-block of $dependency in add is phpdoc param type \Yiisoft\Cache\Dependency\Dependency which is not a permitted replacement of the nullable param type ?\Yiisoft\Cache\Dependency\Dependency declared in the signature ('?T' should be documented as 'T|null' or '?T')
src/CacheInterface.php:82 PhanTypeMismatchDeclaredParamNullable Doc-block of $dependency in addMultiple is phpdoc param type \Yiisoft\Cache\Dependency\Dependency which is not a permitted replacement of the nullable param type ?\Yiisoft\Cache\Dependency\Dependency declared in the signature ('?T' should be documented as 'T|null' or '?T')
src/CacheInterface.php:108 PhanTypeMismatchDeclaredParamNullable Doc-block of $dependency in getOrSet is phpdoc param type \Yiisoft\Cache\Dependency\Dependency which is not a permitted replacement of the nullable param type ?\Yiisoft\Cache\Dependency\Dependency declared in the signature ('?T' should be documented as 'T|null' or '?T')
src/Dependency/AllDependencies.php:41 PhanUnusedProtectedMethodParameter Parameter $cache is never used
src/Dependency/AnyDependency.php:41 PhanUnusedProtectedMethodParameter Parameter $cache is never used
src/Dependency/CallbackDependency.php:22 PhanUnusedProtectedMethodParameter Parameter $cache is never used
src/Dependency/FileDependency.php:26 PhanUnusedProtectedFinalMethodParameter Parameter $cache is never used
src/Dependency/TagDependency.php:40 PhanTypeMismatchDeclaredReturn Doc-block of generateDependencyData contains declared return type mixed which is incompatible with the return type array declared in the signature
src/Dependency/TagDependency.php:43 PhanTypeInvalidThrowsIsInterface @throws annotation of generateDependencyData has suspicious interface type \Psr\SimpleCache\InvalidArgumentException for an @throws annotation, expected class (PHP allows interfaces to be caught, so this might be intentional) (Did you mean class \InvalidArgumentException or class \Yiisoft\Cache\Exception\InvalidArgumentException)
src/Dependency/TagDependency.php:92 PhanTypeInvalidThrowsIsInterface @throws annotation of getStoredTagTimestamps has suspicious interface type \Psr\SimpleCache\InvalidArgumentException for an @throws annotation, expected class (PHP allows interfaces to be caught, so this might be intentional) (Did you mean class \InvalidArgumentException or class \Yiisoft\Cache\Exception\InvalidArgumentException)
src/Dependency/TagDependency.php:100 PhanTypeMismatchReturn Returning type iterable but getStoredTagTimestamps() is declared to return array
src/Dependency/TagDependency.php:111 PhanPossiblyFalseTypeArgumentInternal Argument 1 ($str) is false|string but \md5() takes string (false is incompatible)
src/Dependency/TagDependency.php:123 PhanPossiblyNullTypeArgument Argument 1 ($tag) is mixed|null but \Yiisoft\Cache\Dependency\TagDependency::buildCacheKey() takes string (null is incompatible) defined at src/Dependency/TagDependency.php:109
src/Dependency/TagDependency.php:147 PhanPartialTypeMismatchReturn Returning type array|iterable but storeTimestampsForNewTags() is declared to return array (iterable is incompatible)
src/NullCache.php:15 PhanUnusedPublicFinalMethodParameter Parameter $dependency is never used
src/NullCache.php:15 PhanUnusedPublicFinalMethodParameter Parameter $key is never used
src/NullCache.php:15 PhanUnusedPublicFinalMethodParameter Parameter $ttl is never used
src/NullCache.php:15 PhanUnusedPublicFinalMethodParameter Parameter $value is never used
src/NullCache.php:20 PhanUnusedPublicFinalMethodParameter Parameter $keys is never used
src/NullCache.php:25 PhanUnusedPublicFinalMethodParameter Parameter $dependency is never used
src/NullCache.php:25 PhanUnusedPublicFinalMethodParameter Parameter $key is never used
src/NullCache.php:25 PhanUnusedPublicFinalMethodParameter Parameter $ttl is never used
src/NullCache.php:25 PhanUnusedPublicFinalMethodParameter Parameter $value is never used
src/NullCache.php:30 PhanUnusedPublicFinalMethodParameter Parameter $key is never used
src/NullCache.php:40 PhanUnusedPublicFinalMethodParameter Parameter $dependency is never used
src/NullCache.php:40 PhanUnusedPublicFinalMethodParameter Parameter $ttl is never used
src/NullCache.php:40 PhanUnusedPublicFinalMethodParameter Parameter $values is never used
src/NullCache.php:45 PhanUnusedPublicFinalMethodParameter Parameter $dependency is never used
src/NullCache.php:45 PhanUnusedPublicFinalMethodParameter Parameter $ttl is never used
src/NullCache.php:45 PhanUnusedPublicFinalMethodParameter Parameter $values is never used
src/NullCache.php:50 PhanUnusedPublicFinalMethodParameter Parameter $dependency is never used
src/NullCache.php:50 PhanUnusedPublicFinalMethodParameter Parameter $key is never used
src/NullCache.php:50 PhanUnusedPublicFinalMethodParameter Parameter $ttl is never used
src/NullCache.php:55 PhanUnusedPublicFinalMethodParameter Parameter $key is never used
src/NullCache.php:65 PhanUnusedPublicFinalMethodParameter Parameter $key is never used
src/NullCache.php:80 PhanUnusedPublicFinalMethodParameter Parameter $keyPrefix is never used

Phan config:
<?php

use Phan\Issue;

/**
 * This configuration file was automatically generated by 'phan --init --init-level=1'
 *
 * TODOs (added by 'phan --init'):
 *
 * - Go through this file and verify that there are no missing/unnecessary files/directories.
 *   (E.g. this only includes direct composer dependencies - You may have to manually add indirect composer dependencies to 'directory_list')
 * - Look at 'plugins' and add or remove plugins if appropriate (see https://github.com/phan/phan/tree/master/.phan/plugins#plugins)
 * - Add global suppressions for pre-existing issues to suppress_issue_types (https://github.com/phan/phan/wiki/Tutorial-for-Analyzing-a-Large-Sloppy-Code-Base)
 *
 * This configuration will be read and overlaid on top of the
 * default configuration. Command line arguments will be applied
 * after this file is read.
 *
 * @see src/Phan/Config.php
 * See Config for all configurable options.
 *
 * A Note About Paths
 * ==================
 *
 * Files referenced from this file should be defined as
 *
 * ```
 *   Config::projectPath('relative_path/to/file')
 * ```
 *
 * where the relative path is relative to the root of the
 * project which is defined as either the working directory
 * of the phan executable or a path passed in via the CLI
 * '-d' flag.
 */
return [

    // Supported values: `'5.6'`, `'7.0'`, `'7.1'`, `'7.2'`, `'7.3'`, `'7.4'`, `null`.
    // If this is set to `null`,
    // then Phan assumes the PHP version which is closest to the minor version
    // of the php executable used to execute Phan.
    //
    // Note that the **only** effect of choosing `'5.6'` is to infer that functions removed in php 7.0 exist.
    // (See `backward_compatibility_checks` for additional options)
    // Automatically inferred from composer.json requirement for "php" of ">=7.1.0"
    'target_php_version' => '7.1',

    // If enabled, missing properties will be created when
    // they are first seen. If false, we'll report an
    // error message if there is an attempt to write
    // to a class property that wasn't explicitly
    // defined.
    'allow_missing_properties' => false,

    // If enabled, null can be cast to any type and any
    // type can be cast to null. Setting this to true
    // will cut down on false positives.
    'null_casts_as_any_type' => false,

    // If enabled, allow null to be cast as any array-like type.
    //
    // This is an incremental step in migrating away from `null_casts_as_any_type`.
    // If `null_casts_as_any_type` is true, this has no effect.
    'null_casts_as_array' => false,

    // If enabled, allow any array-like type to be cast to null.
    // This is an incremental step in migrating away from `null_casts_as_any_type`.
    // If `null_casts_as_any_type` is true, this has no effect.
    'array_casts_as_null' => false,

    // If enabled, scalars (int, float, bool, string, null)
    // are treated as if they can cast to each other.
    // This does not affect checks of array keys. See `scalar_array_key_cast`.
    'scalar_implicit_cast' => false,

    // If enabled, any scalar array keys (int, string)
    // are treated as if they can cast to each other.
    // E.g. `array<int,stdClass>` can cast to `array<string,stdClass>` and vice versa.
    // Normally, a scalar type such as int could only cast to/from int and mixed.
    'scalar_array_key_cast' => false,

    // If this has entries, scalars (int, float, bool, string, null)
    // are allowed to perform the casts listed.
    //
    // E.g. `['int' => ['float', 'string'], 'float' => ['int'], 'string' => ['int'], 'null' => ['string']]`
    // allows casting null to a string, but not vice versa.
    // (subset of `scalar_implicit_cast`)
    'scalar_implicit_partial' => [],

    // If enabled, Phan will warn if **any** type in a method invocation's object
    // is definitely not an object,
    // or if **any** type in an invoked expression is not a callable.
    // Setting this to true will introduce numerous false positives
    // (and reveal some bugs).
    'strict_method_checking' => true,

    // If enabled, Phan will warn if **any** type of the object expression for a property access
    // does not contain that property.
    'strict_object_checking' => true,

    // If enabled, Phan will warn if **any** type in the argument's union type
    // cannot be cast to a type in the parameter's expected union type.
    // Setting this to true will introduce numerous false positives
    // (and reveal some bugs).
    'strict_param_checking' => true,

    // If enabled, Phan will warn if **any** type in a property assignment's union type
    // cannot be cast to a type in the property's declared union type.
    // Setting this to true will introduce numerous false positives
    // (and reveal some bugs).
    'strict_property_checking' => true,

    // If enabled, Phan will warn if **any** type in a returned value's union type
    // cannot be cast to the declared return type.
    // Setting this to true will introduce numerous false positives
    // (and reveal some bugs).
    'strict_return_checking' => true,

    // If true, seemingly undeclared variables in the global
    // scope will be ignored.
    //
    // This is useful for projects with complicated cross-file
    // globals that you have no hope of fixing.
    'ignore_undeclared_variables_in_global_scope' => false,

    // Set this to false to emit `PhanUndeclaredFunction` issues for internal functions that Phan has signatures for,
    // but aren't available in the codebase, or the internal functions used to run Phan
    // (may lead to false positives if an extension isn't loaded)
    //
    // If this is true(default), then Phan will not warn.
    'ignore_undeclared_functions_with_known_signatures' => false,

    // Backwards Compatibility Checking. This is slow
    // and expensive, but you should consider running
    // it before upgrading your version of PHP to a
    // new version that has backward compatibility
    // breaks.
    //
    // If you are migrating from PHP 5 to PHP 7,
    // you should also look into using
    // [php7cc (no longer maintained)](https://github.com/sstalle/php7cc)
    // and [php7mar](https://github.com/Alexia/php7mar),
    // which have different backwards compatibility checks.
    'backward_compatibility_checks' => false,

    // If true, check to make sure the return type declared
    // in the doc-block (if any) matches the return type
    // declared in the method signature.
    'check_docblock_signature_return_type_match' => true,

    // If true, make narrowed types from phpdoc params override
    // the real types from the signature, when real types exist.
    // (E.g. allows specifying desired lists of subclasses,
    //  or to indicate a preference for non-nullable types over nullable types)
    //
    // Affects analysis of the body of the method and the param types passed in by callers.
    //
    // (*Requires `check_docblock_signature_param_type_match` to be true*)
    'prefer_narrowed_phpdoc_param_type' => true,

    // (*Requires `check_docblock_signature_return_type_match` to be true*)
    //
    // If true, make narrowed types from phpdoc returns override
    // the real types from the signature, when real types exist.
    //
    // (E.g. allows specifying desired lists of subclasses,
    // or to indicate a preference for non-nullable types over nullable types)
    //
    // This setting affects the analysis of return statements in the body of the method and the return types passed in by callers.
    'prefer_narrowed_phpdoc_return_type' => true,

    // If enabled, check all methods that override a
    // parent method to make sure its signature is
    // compatible with the parent's.
    //
    // This check can add quite a bit of time to the analysis.
    //
    // This will also check if final methods are overridden, etc.
    'analyze_signature_compatibility' => true,

    // This setting maps case-insensitive strings to union types.
    //
    // This is useful if a project uses phpdoc that differs from the phpdoc2 standard.
    //
    // If the corresponding value is the empty string,
    // then Phan will ignore that union type (E.g. can ignore 'the' in `@return the value`)
    //
    // If the corresponding value is not empty,
    // then Phan will act as though it saw the corresponding UnionTypes(s)
    // when the keys show up in a UnionType of `@param`, `@return`, `@var`, `@property`, etc.
    //
    // This matches the **entire string**, not parts of the string.
    // (E.g. `@return the|null` will still look for a class with the name `the`, but `@return the` will be ignored with the below setting)
    //
    // (These are not aliases, this setting is ignored outside of doc comments).
    // (Phan does not check if classes with these names exist)
    //
    // Example setting: `['unknown' => '', 'number' => 'int|float', 'char' => 'string', 'long' => 'int', 'the' => '']`
    'phpdoc_type_mapping' => [],

    // Set to true in order to attempt to detect dead
    // (unreferenced) code. Keep in mind that the
    // results will only be a guess given that classes,
    // properties, constants and methods can be referenced
    // as variables (like `$class->$property` or
    // `$class->$method()`) in ways that we're unable
    // to make sense of.
    'dead_code_detection' => false,

    // Set to true in order to attempt to detect unused variables.
    // `dead_code_detection` will also enable unused variable detection.
    //
    // This has a few known false positives, e.g. for loops or branches.
    'unused_variable_detection' => true,

    // Set to true in order to attempt to detect redundant and impossible conditions.
    //
    // This has some false positives involving loops,
    // variables set in branches of loops, and global variables.
    'redundant_condition_detection' => true,

    // If enabled, Phan will act as though it's certain of real return types of a subset of internal functions,
    // even if those return types aren't available in reflection (real types were taken from php 7.3 or 8.0-dev, depending on target_php_version).
    //
    // Note that with php 7 and earlier, php would return null or false for many internal functions if the argument types or counts were incorrect.
    // As a result, enabling this setting with target_php_version 8.0 may result in false positives for `--redundant-condition-detection` when codebases also support php 7.x.
    'assume_real_types_for_internal_functions' => true,

    // If true, this runs a quick version of checks that takes less
    // time at the cost of not running as thorough
    // of an analysis. You should consider setting this
    // to true only when you wish you had more **undiagnosed** issues
    // to fix in your code base.
    //
    // In quick-mode the scanner doesn't rescan a function
    // or a method's code block every time a call is seen.
    // This means that the problem here won't be detected:
    //
    // ```php
    // <?php
    // function test($arg):int {
    //     return $arg;
    // }
    // test("abc");
    // ```
    //
    // This would normally generate:
    //
    // ```
    // test.php:3 PhanTypeMismatchReturn Returning type string but test() is declared to return int
    // ```
    //
    // The initial scan of the function's code block has no
    // type information for `$arg`. It isn't until we see
    // the call and rescan `test()`'s code block that we can
    // detect that it is actually returning the passed in
    // `string` instead of an `int` as declared.
    'quick_mode' => false,

    // Enable or disable support for generic templated
    // class types.
    'generic_types_enabled' => true,

    // Override to hardcode existence and types of (non-builtin) globals in the global scope.
    // Class names should be prefixed with `\`.
    //
    // (E.g. `['_FOO' => '\FooClass', 'page' => '\PageClass', 'userId' => 'int']`)
    'globals_type_map' => [],

    // The minimum severity level to report on. This can be
    // set to `Issue::SEVERITY_LOW`, `Issue::SEVERITY_NORMAL` or
    // `Issue::SEVERITY_CRITICAL`. Setting it to only
    // critical issues is a good place to start on a big
    // sloppy mature code base.
    'minimum_severity' => Issue::SEVERITY_LOW,

    // Add any issue types (such as `'PhanUndeclaredMethod'`)
    // to this black-list to inhibit them from being reported.
    'suppress_issue_types' => [],

    // A regular expression to match files to be excluded
    // from parsing and analysis and will not be read at all.
    //
    // This is useful for excluding groups of test or example
    // directories/files, unanalyzable files, or files that
    // can't be removed for whatever reason.
    // (e.g. `'@Test\.php$@'`, or `'@vendor/.*/(tests|Tests)/@'`)
    'exclude_file_regex' => '@^vendor/.*/(tests?|Tests?)/@',

    // A file list that defines files that will be excluded
    // from parsing and analysis and will not be read at all.
    //
    // This is useful for excluding hopelessly unanalyzable
    // files that can't be removed for whatever reason.
    'exclude_file_list' => [],

    // A directory list that defines files that will be excluded
    // from static analysis, but whose class and method
    // information should be included.
    //
    // Generally, you'll want to include the directories for
    // third-party code (such as "vendor/") in this list.
    //
    // n.b.: If you'd like to parse but not analyze 3rd
    //       party code, directories containing that code
    //       should be added to the `directory_list` as well as
    //       to `exclude_analysis_directory_list`.
    'exclude_analysis_directory_list' => [
        'vendor/',
    ],

    // Enable this to enable checks of require/include statements referring to valid paths.
    'enable_include_path_checks' => true,

    // The number of processes to fork off during the analysis
    // phase.
    'processes' => 1,

    // List of case-insensitive file extensions supported by Phan.
    // (e.g. `['php', 'html', 'htm']`)
    'analyzed_file_extensions' => [
        'php',
    ],

    // You can put paths to stubs of internal extensions in this config option.
    // If the corresponding extension is **not** loaded, then Phan will use the stubs instead.
    // Phan will continue using its detailed type annotations,
    // but load the constants, classes, functions, and classes (and their Reflection types)
    // from these stub files (doubling as valid php files).
    // Use a different extension from php to avoid accidentally loading these.
    // The `tools/make_stubs` script can be used to generate your own stubs (compatible with php 7.0+ right now)
    //
    // (e.g. `['xdebug' => '.phan/internal_stubs/xdebug.phan_php']`)
    'autoload_internal_extension_signatures' => [],

    // A list of plugin files to execute.
    //
    // Plugins which are bundled with Phan can be added here by providing their name (e.g. `'AlwaysReturnPlugin'`)
    //
    // Documentation about available bundled plugins can be found [here](https://github.com/phan/phan/tree/master/.phan/plugins).
    //
    // Alternately, you can pass in the full path to a PHP file with the plugin's implementation (e.g. `'vendor/phan/phan/.phan/plugins/AlwaysReturnPlugin.php'`)
    'plugins' => [
        'AlwaysReturnPlugin',
        'DollarDollarPlugin',
        'DuplicateArrayKeyPlugin',
        'DuplicateExpressionPlugin',
        'PregRegexCheckerPlugin',
        'PrintfCheckerPlugin',
        'SleepCheckerPlugin',
        'UnreachableCodePlugin',
        'UseReturnValuePlugin',
        'EmptyStatementListPlugin',
        'StrictComparisonPlugin',
        'LoopVariableReusePlugin',
    ],

    // A list of directories that should be parsed for class and
    // method information. After excluding the directories
    // defined in `exclude_analysis_directory_list`, the remaining
    // files will be statically analyzed for errors.
    //
    // Thus, both first-party and third-party code being used by
    // your application should be included in this list.
    'directory_list' => [
        'src',
        'vendor/phpunit/phpunit/src',
        'vendor/psr/simple-cache/src',
    ],

    // A list of individual files to include in analysis
    // with a path relative to the root directory of the
    // project.
    'file_list' => [],
];

All comments resolved.
Also, as now phan reports no issues it can be added to Travis if we want to enforce analysis for future changes.

Merged. Thank you!

@samdark, so, what do you think of adding phan to the CI?

I have no objections.


EPIC: Rewrite care card component as a pattern

What
Rewrite the care card component a design pattern.
Why
The care card component was designed to solve a particular problem in the context of health information on the NHS website but the component been used in a wide range of other contexts with mixed results.
We believe that rewriting the component as a pattern will give clearer context as to what problem is being solved, resulting in the pattern being implemented as intended.
To do

[x] Review current guidance, usage and write proposal
[x] Review code, identify dependencies and propose new implementation
[x] Draft guidance
[x] Update guidance on the service manual
[x] @sarawilcox to review
[x] Update code in frontend
[x] Run past DSWG
[x] Iterate after DSWG
[ ] Publish guidance

Am I right in thinking this EPIC is now complete? @sarawilcox @henocookie or will it be complete after #1602 ?

Almost @georginaplatt we'll be releasing the update likely on Monday 😀

Yes, I think we can keep #1602 as a separate thing, a business as usual one. It's about monitoring how things go. It ties in with some of the other issues around components and patterns.


go socket demo

Hi, I signed CLA(danielgvargas@gmail.com), and rewrote go socket sample based on java sample, is interesting to merge?

2 years later, will this be added?

+1


need to correct the  Elastic-search validation  for /V1/LIST-LTPS-AND-FCS and /V1/REDIRECT-TOPOLOGY-CHANGE-INFORMATION

Issue Description :

SERVICELAYER / BASICPART / /V1/LIST-LTPS-AND-FCS / ACCEPTANCE / RESPONSE BODY COMPLETENESS - 2 REQUESTS IN THE FOLDER.
SERVICELAYER / BASICPART / /V1/REDIRECT-TOPOLOGY-CHANGE-INFORMATION / ACCEPTANCE / RESPONSE BODY COMPLETENESS - 2 REQUESTS IN THE FOLDER

The above test-cases are failing due to  while validating Test-case  is execpecting 1Operation clinet of elastic-search but actual elastic Search  Operation clinet present in the config file are 2 ,
Note : This needs to be change only for ALT Application as ALT application contains 2 Operation-clients of Elastic Search , one for link and one for Control-construct.

pull request : https://github.com/openBackhaul/ApplicationLayerTopology/pull/490

closing this issue since we raised pull request in ALT


Sampling Operators

Unit tests forthcoming.

Coverage decreased (-0.37%) to 59.01% when pulling f9b56360b04be6c94da880bea061fb40052a4445 on radion:master into 69b25a0c210390d6a80f429159905b0d9ceb19c3 on uwescience:master.

Coverage decreased (-0.37%) to 59.01% when pulling f9b56360b04be6c94da880bea061fb40052a4445 on radion:master into 69b25a0c210390d6a80f429159905b0d9ceb19c3 on uwescience:master.

Coverage increased (+0.29%) to 59.67% when pulling 8993bb8db2d58e163f555e7ba6b14ba4807eaad6 on radion:master into 69b25a0c210390d6a80f429159905b0d9ceb19c3 on uwescience:master.

Coverage increased (+0.34%) to 59.71% when pulling 6cee4894edbe3c50f93ab31f212090d150b39e3a on radion:master into 69b25a0c210390d6a80f429159905b0d9ceb19c3 on uwescience:master.

Coverage increased (+0.34%) to 59.71% when pulling 6cee4894edbe3c50f93ab31f212090d150b39e3a on radion:master into 69b25a0c210390d6a80f429159905b0d9ceb19c3 on uwescience:master.

Update: there are performance implications for TempInserting the entire output of an expression. I'm working on making this more efficient by having each worker TempInsert only a sample of the data.

Coverage increased (+0.02%) to 59.4% when pulling<PHONE_NUMBER>92105bba36c711c6b462c2888fe924 on radion:master into 69b25a0c210390d6a80f429159905b0d9ceb19c3 on uwescience:master.

The travis fails due to a test that is irrelevant to this PR. I think that the failure will probably be resolved if we just rerun the travis build.

Coverage increased (+0.15%) to 59.56% when pulling 39edf6645881d69a8771fcc3af1811e2e3433f32 on radion:master into 54d54b9c39eca115db4986c126f4e43f5edde11f on uwescience:master.

Coverage increased (+0.08%) to 59.49% when pulling 645e14d8936c0a50ab6f8af28462a4577de6c82f on radion:master into 54d54b9c39eca115db4986c126f4e43f5edde11f on uwescience:master.

I think I messed up a rebase here - going to start a new PR for my sampling operators


BlackBerry Playbook - unable to parse doc

On blackberry playbook the ajax request (in loadRtfFile) never enters in success callback
*ajax requests for different datatypes are ok

Does it enter the error callback instead and if so, what is the error (should be shown on the page)? If the error callback isn't called either, I would take a look at the jquery.binarytransport.js script and see whether the first if block is ever entered. If not it is probably an issue with your browser not supporting Blob or ArrayBuffer.

No - it does not enter in the error callback either. BB playbook uses its own inbuild browser - no idea what is the name. I tested on Dolphin browser on the same device - it entered in the error callback with error: No conversion from text to binary.

Since I don't have a BB playbook I can't test this, but you could try changing the loadRtfFile function to something like this:
function stringToBinaryArray(string) {
    var buffer = new ArrayBuffer(string.length);
    var bufferView = new Uint8Array(buffer);
    for (var i=0; i<string.length; i++) {
        bufferView[i] = string.charCodeAt(i);
    }
    return buffer;
}

function loadRtfFile(file) {
	beginLoading();
	$.ajax({
		url: file,
		dataType: "text",
		processData: false,
		success: function(result) {
			displayRtfFile(stringToBinaryArray(result));
		},
		error: function(jqXHR, textStatus, errorThrown) {
			$("#content").text("Error: " + errorThrown);
		}
	});
}

This should work in the dolphin browser, as long as ArrayBuffer is supported.

Same result.
It is a bit outdated device so I assume we have to blame the browser and BlackBerry - more or less they are out of the phone/tablet market.
Anyhow, good job man this project is an incredible product and it saved me so match troubles.(for a developer the marketing department is a nightmare to work with)

Thanks, just to clarify, you still get the same error message after you changed the code locally?

Yes - dolphin browser still fails to load rtf content - the label stays with "Loading..." text. (cache cleared)
Native browser is now OK (I probably forgot to clear the cache last night or messed up something on deploy).
Unfortunately I can not debug on this device - I can only observe the result.


CDC-811: redactor config

Additions

added distributionmanagement block for pom.xml -> imagehub integration

Removals

Updates

Testing Steps

TBD

Notes

I seem to have roped in a lot of the main/develop commits in this PR - let me know if i need to cherry-pick or squash before merging.


Add support for Azure Workload Identity

Add annotations on Kubernetes Runner service and deployment to support Workload Identity

Add documentation how to setup with Azure Managed Prometheus

failed test is about slack, not related to my changes

Thanks @EppO  , will test that asap.

Hi @EppO, I'm testing this PR and I have some issues with authentication. Is this PR still relevant? And how is it related to https://github.com/robusta-dev/prometrix/pull/12?

Hi @EppO, I'm testing this PR and I have some issues with authentication. Is this PR still relevant? And how is it related to robusta-dev/prometrix#12?
https://github.com/robusta-dev/prometrix/pull/12 implements the Azure Workload Id authentication along with the rest of managed prometheus service authentications. My plan is too rework this PR as soon as https://github.com/robusta-dev/prometrix/pull/12 is merged.


DuckPlayer: Fixes Back Navigation for Video Previews

Task/Issue URL: https://app.asana.com/0/0/1208551250449279/f
Description:

Fixes an issue causing navigation to break when navigating back from Video Previews
Removes the JSTriggerednavigation logic as it's not needed anymore.
Adds new tab animation

Steps to test this PR:
Scenario 1:

[ ] Set DuckPlayer to 'always'
[ ] Enable "Open in new tab"
[ ] Go to Youtube.com, search for "Metallica"
[ ] Scroll and stop until a video starts playing inline
[ ] Tap it
[ ] Confirm it opens in a new Tab
[ ] Hit the back Button
[ ] Confirm you're taken back to the YouTube search results page

Scenario 2:

[ ] Go to Youtube.com, search for "Metallica"
[ ] Scroll and stop until a video starts playing inline
[ ] Tap on a video that's NOT playing
[ ] Go back
[ ] Confirm you're taken back to the youtube search page

Closing as new issues appeared with these changes.   Will open a new PR later


Pin ops to 2.0.0rc2 [test; do not merge]

Issue

Solution

Context

Testing Instructions

Release Notes

Test fixes for this in https://github.com/canonical/traefik-k8s-operator/pull/128. Actually most of the errors were from ops 1.5.3 (this charm is pinned to 1.5.2 currently), but a minor breakage on 2.0.0rc2 too.


Fix #145 and tslint warnings

Fix the Angular bug: https://github.com/angular/angular/issues/21560 through a special webpack plugin and resolve other tslint warnings.
Greetings

Thank you very much!
Greetings Damien


Include a continous version

Allow users to use a basic continous instead of study-test

Development in jspsych7 branch


Add PrivateOfferingDistribution.editParticipant and removeParticipant functions

Since the PrivateOfferingDistribution contract is not upgradable, won't be able to change its state after we finalize participants. In case of some mistake when adding participants through the addParticipants function, we are not able to fix participant's stake even before finalizeParticipants function is called.
To avoid such cases:

Let's add editParticipant function so that it would allow updating a stake value of the participant. This can only be called before finalizeParticipants is called.

For example, after we had added some participant, we realized that we passed an incorrect stake amount for them. To be able to correct their stake, we need to call the editParticipant. Note, that sumOfStakes variable must be recalculated accordingly.

Let's add removeParticipant function which would allow removing some participant from the list before finalizeParticipants is called. The sumOfStakes variable must be recalculated accordingly.

Done in https://github.com/poanetwork/dpos-token/pull/58.


[Accordion] When used in Meteor, doesn't work when used through a {{#each}} loop

On Foundation 6.0.5, the sample accordion code works in Meteor as long as it is static content. However, the moment you try to wrap that code inside a {{#each}} loop, the accordion is incapable of expanding anymore. The issue seems to be with the
 item. Any ideas?
Here is the sample accordion that works fine.
<template name="questions">

            Accordion 1

                Panel 1. Lorem ipsum dolor

</template>

Here it is inside a {{#each}}. We are only creating the
s by looping through our database. I'm not even populating the accordion with dynamic data, but it already fails to expand. The only difference is the use of {{#each}}.
<template name="questions">

		{{#each questions}}

				Accordion 1

					Panel 1. Lorem ipsum dolor

		{{/each}}

</template>

Any help would be appreciated. Thanks a lot.

If you aren't changing the id's of the content div's and the href attributes of the anchors appropriately, like in your example, that could cause problems.

Hi Chris,
In my original example before I stripped it down I had unique ids and divs.
It didn't seem to make a difference. Hm.
On Dec 5, 2015 10:16 PM, "Chris Oyler"<EMAIL_ADDRESS>wrote:

If you aren't changing the id's of the content div's and the href
attributes of the anchors appropriately, like in your example, that could
cause problems.
—
Reply to this email directly or view it on GitHub
https://github.com/zurb/foundation-sites/issues/7420#issuecomment-162276540
.

are you calling $(document).foundation() after?

Hi Chris,
I am using the Foundations plugins API technique described in the Javascript guide here: https://atmospherejs.com/zurb/foundation-sites
The
 with id="test" doesn't expand while id="test2" does.
<template name="questions">

		{{#each questions}}

				Accordion 1

					Panel 1. Lorem ipsum dolor

		{{/each}}

	    Accordion 1

	      Panel 1. Lorem ipsum dolor

	    Accordion 2

	      "Panel 2. Lorem ipsum dolor"

</template>

Here is the Foundations plugin API approach I am using
Template.questions.onRendered(function(){
	this.layoutInstance = new Foundation.Accordion($('#test'));
	this.layoutInstance2 = new Foundation.Accordion($('#test2'));
});

Template.questions.onDestroyed(function() {
	let accordion = this.layoutInstance;
	if (accordion) {
		accordion.destroy();
	}

	let accordion2 = this.layoutInstance2;
	if (accordion2) {
		accordion2.destroy();
	}
});

However, following your suggestion, if I went back to the catch-all $(document).foundation() both accordions do expand nicely. Hmm. Not sure why the plugin API approach doesn't work

Using $(document).foundation() with Meteor isn't a good idea :/ This is a global initialization of everything and there could be many calls in many part of the app (in many templates). It could be very problematic because every plugin behaves differently. I encounter many problems when using $(document).foundation() in Meteor app. There are some overwrite problems with this approach. Many elements are not destroyed, many DOM nodes are leave in the DOM. This is realy messy with Meteor.
In your case it wont work because you probably try to initialize the plugin before all the items from {{#each}} are in the DOM. Your template is rendered, but your each loop isn't finished. This is how it works in Meteor. You should initialize the Foundation plugin when you are sure that all the items are in the dom. This is always tricky with any jQuery plugin and Meteor not only Foundation. This is because the jQuery plugins and Meteor are working in a little different way.
In this case you could check if you have rendered the last element from each loop by counting items checking if the item index is equal the count of the items and then setting a ReactiveVar. Then in the questions template you can check if the ReactiveVar is set and only then initialize the Foundation plugin (the way you are doing it right now). Altought this is quite problematic. You can also try to play with [Blaze API] (http://docs.meteor.com/#/full/blaze) for some different approaches you could think.

@juliancwirko Thanks so much for the detailed analysis. The issue was exactly as you described and I have solved it working off of your suggestions.
Here is the solution I used:
Blaze
<template name="questions">

		{{#each questions}}

				{{question}}

					{{answer}}

		{{/each}}

	{{#if accordionDataLoaded}}
		{{initializeAccordion '#test'}}
	{{/if}}
</template>

Javascript
Template.registerHelper('accordionDataLoaded', function() {
	return Session.get('accordionDataLoaded');
});

Template.questions.helpers({
	questions: function() {
		return Questions.find({}).map(function(question, index) {
			// Session.set('counter', Session.get('counter') + 1);
			question.i = index;
			if (index === Questions.find().fetch().length - 1) {
				Session.set('accordionDataLoaded', true);
			}
			return question;
		});
	},

	initializeAccordion: function(accordionId) {
		this.layoutInstance = new Foundation.Accordion($(accordionId));
	},
});

Template.questions.onDestroyed(function() {
	let accordion = this.layoutInstance;
	if (accordion) {
		accordion.destroy();
	}
});


[Request] FutBin price scraping

Hi, thanks for this awesome extention.
I was a FutMate user years ago and i loved its price scraping feature, you just had to put a player and he would have figured it out by itself the buy price and the sell price. Having to enter them manually is pretty unconvenient since they both change rapidly (expecially on "hot" players) and you can end up with severe losses if you don't set them right following the market. My proposal is then to add this kind of functionality, scraping any available api or other source to get automatically a good price on both buying and selling point

Don't know how to include a call to https://www.futbin.com/21/playerPrices?player={player.resourceID} without getting a cross domain error.

Don't know how to include a call to https://www.futbin.com/21/playerPrices?player={player.resourceID} without getting a cross domain error.

I get a plain JSON without any relevant data but in the network requests i can see
access-control-allow-origin | *
so it shouldn't be a cross domain error. Try faking the request to come from futbin's own ip it should be a flag like "X-From"

I get a plain JSON without any relevant data but in the network requests i can see
access-control-allow-origin | *
so it shouldn't be a cross domain error. Try faking the request to come from futbin's own ip it should be a flag like "X-From"

This userscript may help. Works in FUT21. I don't know enough about JS to help.
https://github.com/Mardaneus86/futwebapp-tampermonkey


linux: more update-script cleanups

This causes rebuilds, so should go in with the next bump probably.
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@OfBorg build linux_testing

Still unsure if we should read from the HTML when there's a data structure that's probably more suitable: https://github.com/NixOS/nixpkgs/pull/256099#discussion_r1334252722

We still have to parse the contents of the RSS feed to get the links and the EOL markers, and those aren't really well-specified, so I'm not sure it's a big upgrade.

I think I'll just merge this since it's actually rebuild 0 somehow, and we can do the RSS thing separately/later.


chore: use qlik ts config

I'm running into this issue for the return type of styled in src/components/HeadCellMenu/styles.ts.
I'm not getting any of the workaround suggest to work.
@a-m-dev Any ideas?

I'm running into this issue for the return type of styled in src/components/HeadCellMenu/styles.ts.
I'm not getting any of the workaround suggest to work.
@a-m-dev Any ideas?

This commit fixed it: https://github.com/qlik-oss/nebula-table-utils/pull/28/commits/5301b12ba9f826a11cca5fc1d24ce4c3dbbcfd63

It's good that pnpm override kinda fixes that issue temporarly, but with temporarly i mean maybe we want to switch back to yarn. I put it on my list today that maybe we don't need pnpm anymore because it was originally chosen due to possible move toward mono-repo.
btw, as Johan Suggested, it's a good checkpoint to make a release on current changes (need to be automated on every merge to main branch of course), IMO it's better to hold this one until our (stable) release on HeadCellMenu + another release maybe for your hooks PR is in place since we are doing some changes in ts configurations

:tada: This PR is included in version 2.0.1 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Show my home! added to description.md file

I forgot to add it in my first pull request. Sorry!

Ok! I will merge it.


Fix defaultConfig regression

The script condition failed if there were additional files.
Adding an sample key and kuttl test to ensure there is no future regression.

@cschwede: 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
ci/prow/functional 	741aca8 link 	true 	/test functional
Full PR test history. Your PR dashboard.

I think we need this change to be added to this repo for now: https://github.com/openstack-k8s-operators/openstack-operator/pull/723

@cschwede: 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
ci/prow/functional 	741aca8 link 	true 	/test functional
Full PR test history. Your PR dashboard.

I think we need this change to be added to this repo for now: openstack-k8s-operators/openstack-operator#723

Created here: https://github.com/openstack-k8s-operators/swift-operator/pull/183

@cschwede: 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
ci/prow/functional 	741aca8 link 	true 	/test functional
Full PR test history. Your PR dashboard.

I think we need this change to be added to this repo for now: openstack-k8s-operators/openstack-operator#723

Created here: #183

Thx @abays , merged & rebased this patch.


Replacement for pkg_resources

pkg_resources is now deprecated in favor of importlib.metadata / importlib_metadata (source). Right now it causes warnings and in the future (3.12?) I think it will stop working entirely. I saw there was a related pr but it was using importlib.metadata which apparently has different behaviors on some versions of python and caused issues for some users (ref). Maybe it would be acceptable to use importlib_metadata (the backport) either on all versions of python or only when necessary.

Fixed in https://github.com/ArangoDB-Community/python-arango/pull/250


Add Event: ERA

Adds a mention of the upcoming e-recycling event at UFV to the events page.
Looking at this, I think an update to the events page (visually) is probably a priority, this really doesn't look that great.

Event has been cancelled due to concerns around COVID-19.


User agent version should be dynamic

We should read, and extract it from the package.json file.
https://github.com/ScaleLeap/amazon-mws-api-sdk/blob/9484296ef72fa86af504d34d0c1f529587a96092/src/http.ts#L389
Be careful though, and make sure to use relative paths. Because the distributed code will end up in lib/, while source is in src/.

This does work in development, but when you go build the project, you'll see that in lib/ now the folder structure has changed due to package.json being included. A better approach would be to read the file using the fs built in module. Then parse it with JSON.parse.

Ahh alright now I see what you meant, didn't understand it at first. Will check it out