Documentation to extend VM tests

This adds the first README.md to the VM testing for others who would like to continue writing and extending VM tests.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[X] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@howardjohn @maasen @elfinhe Could you please take a look? This is the documentation for VM testing. Please let me know if there's anything needs adding or revising. Any comments would be appreciated!

@ZhengzheYang: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

analyze-tests_istio
d9f187622bf69240ccc283d9b534864b11947028
link
/test analyze-tests_istio

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

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

analyze-tests_istio
d9f187622bf69240ccc283d9b534864b11947028
link
/test analyze-tests_istio

lint_istio
d9f187622bf69240ccc283d9b534864b11947028
link
/test lint_istio

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

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

analyze-tests_istio
d9f187622bf69240ccc283d9b534864b11947028
link
/test analyze-tests_istio

lint_istio
e976bcede1abca8f08a32de0ff86ca5ee627be22
link
/test lint_istio

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

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

analyze-tests_istio
d9f187622bf69240ccc283d9b534864b11947028
link
/test analyze-tests_istio

lint_istio
77b9da646d053d91c13cc45d295b57491320529f
link
/test lint_istio

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

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

analyze-tests_istio
d9f187622bf69240ccc283d9b534864b11947028
link
/test analyze-tests_istio

lint_istio
77b9da646d053d91c13cc45d295b57491320529f
link
/test lint_istio

integ-pilot-k8s-tests_istio
77b9da646d053d91c13cc45d295b57491320529f
link
/test integ-pilot-k8s-tests_istio

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

@maasen @elfinhe @howardjohn Please take a look and drop any comments you might have so that other people could refer to this doc while extending/implementing VM tests.

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

analyze-tests_istio
d9f187622bf69240ccc283d9b534864b11947028
link
/test analyze-tests_istio

release-notes_istio
dcf6cfddd65177fc335cfc69c7f541edb4cadec9
link
/test release-notes_istio

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

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

analyze-tests_istio
d9f187622bf69240ccc283d9b534864b11947028
link
/test analyze-tests_istio

release-notes_istio
dcf6cfddd65177fc335cfc69c7f541edb4cadec9
link
/test release-notes_istio

integ-multicluster-k8s-tests_istio
dcf6cfddd65177fc335cfc69c7f541edb4cadec9
link
/test integ-multicluster-k8s-tests_istio

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

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

analyze-tests_istio
d9f187622bf69240ccc283d9b534864b11947028
link
/test analyze-tests_istio

integ-multicluster-k8s-tests_istio
dcf6cfddd65177fc335cfc69c7f541edb4cadec9
link
/test integ-multicluster-k8s-tests_istio

release-notes_istio
34152c4e1127524672834cd5896999e960ab4751
link
/test release-notes_istio

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

/retest


change error wording when conmon fails without logs

In some cases, conmon can fail without writing logs.  Change the wording
of the error message from
"error reading container (probably exited) json message"

to
"container create failed (no logs from conmon)"
to have more helpful error message that is more consistent with other
errors at the stage of execution.
Signed-off-by: Valentin Rothberg<EMAIL_ADDRESS>

LGTM

LGTM

LGTM assuming happy tests

needs a rebase

/lgtm
/hold
hold cancel once tests pass.

/hold cancel

Not sure what is hangling. but force merging.


TODO friends

[ ] review application lists

[ ] apt
[ ] flatpak
[ ] snap
[ ] pip

[x] review profiles

This todo list refers to branch friends


Update momentjs to 2.29.3

Updates org.webjars:momentjs from 2.29.1 to 2.29.3.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.webjars", artifactId = "momentjs" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequest = { frequency = "@monthly" },
  dependency = { groupId = "org.webjars", artifactId = "momentjs" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #87.


Metrics stream does not contain thread pool for each command

It contains the command name and group, but not the threadpool

Fixed in #769


[Python] Accept numpy generators as random_state

This PR modifies the scikit-learn interface to accept numpy generators as possible inputs for random_state. Generators are now the recommended mechanism for drawing random numbers in numpy, while the previous RandomState is deprecated. Lots of other software like SciPy have moved towards the new Generator class and allow passing a random_state as either int/RandomState/Generator (example).

Hi, could you please help take a look into the CI errors? Feel free to ping me if there's anything I can help.

Hi, could you please help take a look into the CI errors? Feel free to ping me if there's anything I can help.

This is the message I managed to find:

XFAIL tests/python/test_with_modin.py::TestModin::test_modin

The PR didn't touch anything that would deal with modin so don't know the reason for the failure.

This is the message I managed to find:

Hmm, not sure where did you see the modin error. Here are the ones I see on github action:
https://github.com/dmlc/xgboost/actions/runs/6719062791/job/18259950760?pr=9743
https://github.com/dmlc/xgboost/actions/runs/6719062791/job/18259951139?pr=9743
https://github.com/dmlc/xgboost/actions/runs/6719062791/job/18259950609?pr=9743

Thanks for the hints. Fixed now.


Modernizing this project

Hey, I am interested in using and contributing to this project. Specifically there are a couple of things I would really like to add for my own purposes:

Support for enums
Proper support for >53 bit integers (using BigInt)
Mirgrate to LogicalTypes from ConvertedTypes to enable other new features in the future.
Typescript support

I would be happy to contribute a lot of this myself, but some of this would take significant amounts of work, and I don't want to put a lot of time into something if this isn't compatible with your vision of this project.  If I were to spend a significant amount of time adding some of these features, I would also love to add a few developer tools to make things a little easier along the way including:

eslint
prettier
some sort of lock file for deps (either using yarn or package-lock.json)
npm scripts for things like running tests or regenerating thrift files.

I am mostly opening up this issue to get an idea about what you have in mind for this repo, how open you are to outside contributions, and how responsive/reseptive you would be to some of these types of changes!  Don't want to step on any toes, and I know some of what I was proposing up would constitute breaking changes, and would need careful consideration.

There's a decent fork of this with typescript support:
https://github.com/kbajalc/parquets
Fixes a few bugs compared to this repo, I believe.
It seems to be unmaintained, though, like this project.
I think this other one, parquetjs-lite, is somewhat actively maintained:  https://github.com/ZJONSSON/parquetjs
But doesn't have typescript support.
Sad times for parquet in JavaScript!

I ended up starting from scratch, I think my requirements are probably outside the scope of what would be easy to achieve through pull requests to this (or any other existing) project.  It's going to be a while before I have enough time to get it polished enough for it to be used by other people, but WIP is here (undocumented, not currently working, and going to change significantly): https://github.com/hayes/node-parquet
Right now it doesn't even build because I am in the process of re-organizing all the code, but I made pretty good progress on the reader side of things before I started re-structuring, and was able to parse several of the examples form https://github.com/apache/parquet-testing/tree/master/data, and added support for most of the main encodings and compressions.  Hopefully in a month or so, I'll have something that can read and write reliably, and can start working on the stuff I actually want like filtering, plugable file systems for efficient reads/writes from s3, and other more advanced features.


Improve the dashboard otlp experience

First a few concrete suggestions
We should set:
OTEL_SERVICE_NAME={resourcename}
OTEL_RESOURCE_ATTRIBUTES=service.instance.id={resourcename}

This is what it looks like right now:

We should also consider a default otel collector experience that routes telemetry to the dashboard. See https://github.com/practical-otel/opentelemetry-aspire-collector for more information on how this would work.
cc @JamesNK @martinjt

service.instance.id shouldn't be the service name. It's supposed to be the subset of the service that this running instance is, so the guid is right.
The issue is that the dashboard is displaying it as the primary rather than the service name being the primary.
The instance id isn't actually relevant for the trace waterfall normally, only when you're doing more advanced debugging like searching or adding to a table.
Also keep in mind that service.instance.id is still marked as experimental at this stage. It's unlikely to change, but something to keep in mind.

I’m not sure if it’s possible to get the replica id for the running docker compose instance (that would be ideal). In kubernetes I’d assume we want the pod name (for the service instance id)

I'm fairly certain that the service.instance.id defaults, I could be wrong there.
The issue is more that the dashboard treats the instance name as human readable, rather than a guid, making the UI hard to navigate.  The service.name resource attribute is the thing that defines the service, the instance is "which one of the many instances of that service did the request use".
The other thing I'd mention on the collector is that from a K8s perspective, there are well established patterns for deployment (daemonset on the node, then adding the environment variables to forward service traffic to the node IP rather than a k8s service). So I'm not sure it would be aspirate's responsibility to set those up, unless it's also creating the cluster. More that you should consider "where" the collector lives in that environment.
I would add some other defaults that might be good. Things like deployment.type=aspire would be a good one, maybe add other things like the commit from the apphost etc.

Yeah I think the best course there certainly for inclusion of the collector would be to assume that it's part of the cluster already, as in externally managed separate of aspirate and prompt for it during first run of generate.
Two prompts. To you want to include and then specify endpoint.
Unless it exists already as an env var defined in the manifest, then skip asking and use the exposed endpoint verbatim
This would be a first time prompt only as once set it'd persist in the aspirate state file

I’m not sure if it’s possible to get the replica id for the running docker compose instance (that would be ideal). In kubernetes I’d assume we want the pod name (for the service instance id)

we'd probably need to use metadata.uid in k8s
In docker - we could use the generated hostname (possible) - it has to be something in both cases though that we can use at runtime, without needing a custom entrypoint

@davidfowl
Inclusion of the service name has just gone out in v0.6.13-preview
This does fix the dashboard display in kube and compose
Replica isolation will still be an issue. I'll leave this issue open until we also implement a simple way to switch between the dashboard and the otlp collector endpoint, its the same env var that needs to be set isn't it?
We've also other routes to explore there, like side-car injection etc but that may be beyond the scope of this issue

When I run Aspire HTTPS directly, I'm also seeing the Resources and Console tab. Is it possible to have those as well with the container?


Make external functions isolated

Purpose
All the external functions should be isolated functions.
Fixes https://github.com/ballerina-platform/module-ballerinax-prometheus/issues/146
Examples
Checklist

[x] Linked to an issue
[ ] Updated the changelog
[ ] Added tests

@MaryamZi I have re-added isolated qualifier for public functions. I bumped the minor version as well since this will be a breaking change.


Consider making this into a generic duration formatter

It would be great if this was more generic so it could be used with any duration, not just a duration coming from a range.  Consider the use case where I already have a duration of time (not two times) that I want formatted into days, hours, minutes etc.  I can currently utilize this plugin in the following way:
$scope.formatDuration = function(minutes){
  var now = moment();
  var nowPlusDuration = moment().add(minutes, 'minutes');
  return moment.preciseDiff(now, nowPlusDuration);
};

A more general-purpose plugin based on moment-precise-range could be consumed like so:
$scope.formatDuration = function(minutes){
  var seconds = minutes * 60;
  return moment.preciseReadableDuration(seconds);
};

The general-purpose way could still easily be consumed with ranges by doing the range part with native Moment diff like so:
$scope.formatRange = function(time1, time2){
  var seconds = time1.diff(time2, 'seconds');
  return moment.preciseReadableDuration(seconds);
};

One problem I can think of with this is that the same span of time will be expressed differently depending on the starting date, for example a duration of 30 days beginning on 1st Jan would just be '30 days' but the same duration starting on 1st Feb might be '1 month and 2 days'


WIP: Rework primer to clarify that a client ID document is being used and not a WebID

A recent forum thread raised to my attention that the language in the primer sometimes incorrectly refers to a "WebID" instead of "Client ID" or "client_id". This is an attempt to try to rectify this.
I did hit into an issue with the token algorithm type, as I don't know what public/private keypair were used to generate the ID token originally in this document, so I ended up switching it to us HS256 instead of ES256, such that I could generate valid example data.
I'm also aware my editor automatically rewrapped a bunch of lines and screwed with some indentation; I've added a .prettierrc to avoid this (it happens automatically in VS Code if you've prettier enabled)

Okay, have reverted it back to ES256, but the encoded JWT values are all incorrect. I've left "Issue: " lines for each, such that we can fix them when an example ES256 public/private keypair exists that can be used to generate the signatures.
I've split it between two commits, one which changes the client_id, and the other which does some minor whitespace corrections to be consistent throughout the document.

This has been superseded by #203


fix puzzles 11

Correct the answer to puzzles 11.
The shape of block x should be [B2, B0, B_MID],  not [B2, B0, B1].
similarly,  the shape of block y should be [B2, B_MID, B1], not [B2, B0, B1].
The original answer was applicable to shapes (x: [4,32,32], y: [4,32,32]) , but after the shape change(x: [4, 32, 64], y:[4, 64, 32]), the code runs incorrectly.
The reason is that MID happens to be equal to N0 and N1.

Thanks!


installation script: not enough single-letter options available

There will be not enough single-letter options available in install.sh script to implement #4000
This means we have to replace getopts for options parsing with something else.

Implemented in https://github.com/werf/website/pull/386


www/caddy: Implement sequence into handlers to support custom configuration order

The current implementation auto generated an order for the handlers.

Populated "HandlePath" (e.g., /opnsense/docs/*) would be rendered in the order they appeared in the config.xml
Empty "HandlePath" would be rendered last

This has a lot of drawbacks, because everything is implicit and when a domain has multiple handlers that would need to be in a certain order to match, it was painful to clone/delete them and rearrange them with tricks in the GUI.
This PR here solves that issue once and for all by introducing a sequence number and a migration.
The migration will migrate all:

Populated "HandlePath" to a sequence of 1+, so 1,2,3,4,5...
All empty "HandlePath" to a sequence of 99999-, so 99999,99998,99997...
There is a failsafe if somebody would happens to have more than 100k handles (lol I want to see that), which would leave the sequence empty. An empty sequence will default to 0 in the Caddyfile template, rendering these first come first serve style.
This migration will make the old implicit default behavior explicit.

The PR also includes:

Style fix in PHP file
Fix too strict validation that can trigger on first installation of os-caddy, leaving config.xml section at v0.0.0.

Actually lets dont do this one. Not much benefit. The implicit order "JustWorksTM" since the beginning.


Support for global configuration

[x] I have searched the issues of this repo and believe that this is not a duplicate.
[x] I have searched the documentation and believe that my question is not covered.

Feature Request
i'm in a situation where i provide environments for developers in which they can work mostly autonomously. of course i want to ensure that some good practices in that context are complied with. hence i would like a configuration for poetry that applies to all users of a system.
in my case it would be fine to have a POETRY_CONFIG_LOCATION environment variable that can point to a poetry.toml.

There is already support for this.
📘 https://github.com/sdispater/poetry/blob/master/docs/docs/configuration.md#configuration

no, that variable should point to a user specific location (on my Ubuntu it isn't set at all). one could hence alias poetry="XDG_CONFIG_HOME=/etc poetry". but, nah.

As stated by @hangtwenty , the user configuration file is located at XDG_CONFIG_HOME/pypoetry/config.toml.
As stated by the XDG Basedir Specification, XDG_CONFIG_HOME defaults to ~/.config if not set.
And Poetry does it well.
The XDG_CONFIG_HOME does not have to be set by your Linux distribution. You have to set it explicitly if you want to use a location different from the default.

that's not the point of this issue. i'd like to tell poetry a user-unspecific location of the configuration.

This feature will require privilege to deploy, and the configuration will be too complex for poetry.
It seems to be for personal use by design, and the configuration is formal and scriptable.

that's not the point of this issue. i'd like to tell poetry a user-_un_specific location of the configuration.

no, that variable should point to a user specific location (on my Ubuntu it isn't set at all). one could hence alias poetry="XDG_CONFIG_HOME=/etc poetry". but, nah.

@funkyfuture you are in control of your own environment variables.  Can you give any practical reason for your "nah"? I'm not being snarky; I really think there needs to be a practical reason provided for this.

it is not about whether i want to control my own environment variables. i want to control the poetry configuration of all system users.
my 'nah' expresses, that this workaround would work, but it is not a solution.

@funkyfuture You can achieve that with trust and group policy only...
The settings will still be over ridden by user config even when reading config twice.

I’ve come around to agreeing with OP @funkyfuture that a POETRY_CONFIG_DIR or somesuch would make sense. I’ve recently written scripts at my day job, where it bootstraps Poetry and the config defaults we recommend. Had to do some wonky OS-specific shell scripting to make it work smoothly.


Fixed #24490 -- Set LogEntry.change_message when adding an object.

buildbot, add to whitelist.

merged in aea02ddfb7c610db9a7cb291b113d6e561d8eba9, thanks!


imdb_data_csv  has two dictionary

I see    /home/sunji/cost_estimation/test_files_open_source/imdb_data_csv   in  initailize_dictionary.py
and       /home/sunji/imdb_data_csv   in   update_dictionary.py
but I can't find that which file  generate  /home/sunji/imdb_data_csv
so  are they defferent ????

The paper use Tree-pooling to encode predicates, but this version of code is using tree-LSTM, is there is a version using Tree-pooling?


Driverless printing not working due expiration of printer's certificate

Describe the bug
Driverless printing doesn’t work with a HP LaserJet Pro MFP M227 sdn. This is a wired networked laser printer.
To Reproduce
Steps to reproduce the behavior:

Go to CUPS web UI printer administration.
Ask CUPS to print a test page.
Printer will show as “stopped“ in CUPS web UI.
Print job will show as “held back“.

Expected behavior
I expect the printer to print a test page.
Printing from computer using any application doesn’t work either and results in stopped queue.
Printing will work when adding the printer as a permanent queue using IPP everywhere.
Screenshots
Stopped printer:

System Information:

OS and its version: Debian 12 amd64
Application: any
CUPS version: 2.4.2-3

Additional context
Follow the instructions from the REPORTING-ISSUES document and provide all information regarding the issue.
Before printing:
jan@ugly:~$ lpstat -e
HP_LaserJet_MFP_M227sdn_F258AB
jan@ugly:~$ lpoptions -p HP_LaserJet_MFP_M227sdn_F258AB
device-uri=ipps://HP%20LaserJet%20MFP%20M227sdn%20(F258AB)._ipps._tcp.local/ printer-info='HP LaserJet MFP M227sdn (F258AB)' printer-location=Arbeitszimmer printer-make-and-model='HP HP LaserJet MFP M227-M231' printer-type=83890196

After printing:
root@ugly:~# lpstat -t
Zeitplandienst läuft
keine systemvoreingestellten Ziele
Gerät für HP_LaserJet_MFP_M227sdn_F258AB: implicitclass://HP_LaserJet_MFP_M227sdn_F258AB/
HP_LaserJet_MFP_M227sdn_F258AB akzeptiert Anfragen seit Do 13 Jul 2023 22:18:50 CEST
Drucker HP_LaserJet_MFP_M227sdn_F258AB ist deaktiviert seit Do 13 Jul 2023 22:18:50 CEST -
	unbekannter Grund
HP_LaserJet_MFP_M227sdn_F258AB-22 jan               1024   Do 13 Jul 2023 22:18:46 CEST

root@ugly:~# lpinfo -v
network http
network https
network lpd
network ipp
network beh
file cups-brf:/
network ipps
network socket
serial serial:/dev/ttyS0?baud=115200
direct hp
direct parallel:/dev/lp0
direct hpfax
network dnssd://HP%20LaserJet%20MFP%20M227sdn%20(F258AB)._ipp._tcp.local/?uuid=564e4633-5231-3036-3438-f43909f258ab
network socket://<IP_ADDRESS>
network ipps://HP%20LaserJet%20MFP%20M227sdn%20(F258AB)._ipps._tcp.local/

Other files as requested by instructions:
attr.log
network.pcap.zip (network is wired)
log.txt (I had to restart CUPS during this analysis)
error_log_15000.txt.zip (only last 15.000 lines—complete file is 2.5 GB)

Hi @jph76 !
Thank you for the provided data and following the document! It helps a lot!
I've checked the log which you posted - I see IPP backend complains about the certificate your printer sends (it is expired):
14052 D [13/Jul/2023:22:18:50 +0200] [Job 22] update_reasons(attr=0(), s=\"-cups-certificate-error\")
14053 d [13/Jul/2023:22:18:50 +0200] [Job 22] op=\'-\', new_reasons=1, state_reasons=1
14054 D [13/Jul/2023:22:18:50 +0200] [Job 22] Connection is encrypted.
14055 d [13/Jul/2023:22:18:50 +0200] cupsdDeleteTemporaryPrinters: Removing unused temporary printers
14056 d [13/Jul/2023:22:18:50 +0200] select_timeout: JobHistoryUpdate=0
14057 D [13/Jul/2023:22:18:50 +0200] [Job 22] Credentials are expired (Berechtigung ist abgelaufen)
14058 D [13/Jul/2023:22:18:50 +0200] [Job 22] Printer credentials: NPIF258AB.fritz.box (issued by HP) / Mon, 30 Jan 2023 08:31:00 GMT / RSA-SHA256 / 5E0C3D07E76EE90AEBB47E1290698D15
14059 d [13/Jul/2023:22:18:50 +0200] cupsdDeleteTemporaryPrinters: Removing unused temporary printers
14060 d [13/Jul/2023:22:18:50 +0200] select_timeout: JobHistoryUpdate=0
14061 D [13/Jul/2023:22:18:50 +0200] [Job 22] No stored credentials.
14062 D [13/Jul/2023:22:18:50 +0200] [Job 22] update_reasons(attr=0(), s=\"-cups-pki-invalid,cups-pki-changed,cups-pki-expired,cups-pki-unknown\")
14063 d [13/Jul/2023:22:18:50 +0200] [Job 22] op=\'-\', new_reasons=4, state_reasons=1
14064 D [13/Jul/2023:22:18:50 +0200] [Job 22] update_reasons(attr=0(), s=\"+cups-pki-expired\")
14065 d [13/Jul/2023:22:18:50 +0200] [Job 22] op=\'+\', new_reasons=1, state_reasons=1
14066 D [13/Jul/2023:22:18:50 +0200] [Job 22] STATE: +cups-pki-expired

I've googled a little and it looks some HP printers are capable of changing/removing its certificates - https://h30434.www3.hp.com/t5/Printer-Setup-Software-Drivers/Expiring-Self-Signed-Certificate/td-p/6613719 - maybe you can find something similar in your printer's manual or on its web interface (you can access it by using printer's IP in the browser).
Otherwise if you are not able to change it, you can set AllowExpiredCerts Yes in /etc/cups/client.conf or via CUPS_EXPIREDCERTS env variable, or switch to plain IPP if it is fine for you.
Since I don't see the IPP Everywhere queue in lpstat output or in logs and you mentioned the printer works with IPP Everywhere model, I can't say for sure, but my guess is the IPP Everywhere queue was installed as a plain IPP, so the IPP backend does not ask about certificates, where the print queue generated by cups-browsed uses IPPS.

Hi @zdohnal , thank you for your assistance! I renewed the printer’s certificate as you suggested and now printing works. Is there a FAQ I missed reading?
Regarding the manual IPP Everywhere queue you didn't see: I removed it prior to my analysis to not mix up the queues. Now I won’t even bother re-creating it. :smile:
Have a nice weekend! :beers:


Update the Content for "Profit & Loss".

Update the dummy content of the "Profit & Loss" section displayed in the picture. Ensure that the content follows the specified character counts and aligns with the values and objectives of SILK Corp.

Purpose:
The purpose of this issue is to conduct a comprehensive profit and loss analysis of the financials of the SILK Franchise. This analysis is crucial for understanding the franchise's financial performance, identifying areas of profitability, and evaluating the overall health of the business. It serves as a key tool for making informed financial decisions and optimizing business strategies.
Importance:
The profit and loss analysis provides a clear picture of the franchise's revenue, expenses, and net profit over a specific period. It helps franchise owners and stakeholders assess the financial viability of the business, monitor the effectiveness of cost management efforts, and determine the franchise's ability to generate profits and sustain growth.
How to achieve this task:

Consider factors such as seasonality, market trends, and industry benchmarks to provide context for the analysis.
Compile and analyze financial data, including revenues from various revenue streams (e.g., room bookings, food services, amenities), direct costs of services, operating expenses (e.g., employee salaries, marketing expenses, utilities), and other financial indicators.
Visit the reference links given below to get more information for the analysis.

Outcome:
The analysis will highlight areas of profitability and potential cost-saving opportunities. Franchise owners can use this information to formulate strategic plans, allocate resources efficiently, optimize pricing strategies, and identify areas for improvement to maximize profitability.
Reference:

Website
Franchise Guide
Joorney sample

Note:
Make sure to follow the character count as in the original site.

I'm going to work on this issue by doing proper research from given reference links, ChatGPT, and focus chefs. I will then gather all the data, generate the content for this issue, and create a pull request.

I'm going to dive deep into this issue by conducting extensive research, leveraging the reference links you've provided in the description. Once I have gathered all the necessary information, I'll put together a comprehensive pull request to contribute towards resolving it. Rest assured, I'll make sure to complete this task today.


Handle Repeat Comments

Is there a way to check who is commenting in case they repeat? Because my game for miniLD #69 just got 6 comments from the same person and the priority dropped significantly. Also, I feel like replying on your own game page shouldn’t count (it might already not, I’m not too sure).

From Steven Miller (http://ludumdare.com/compo/2016/07/28/introducing-the-feedback-friends-mini-site/#comment-599846/)

This is a bug: while we have set a limit of 3 points per commenter, it doesn't account comments already add in the database during previous runs.
Part to fix (it should be initialized with the help of a "SELECT SUM(score) FROM comment [...]" query)


Invalid credential for Azure DevOps Server with ActiveDirectory authentication

For Azure DevOps Server which's authenticated using ActiveDirectory, you need to use your domain's username and password first. The PAT can be saved in separate command. The full command would be like this
nuget sources add -name {your feed name} -source {your feed URL} -username {AD username} -password {AD password}
nuget setApiKey {your PAT} -Source {your feed name}

Filling your PAT at first command will make your AD account be locked due to invalid password.

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

ID: ab0a3735-a9b0-2ed7-f08f-5321f55f8c90
Version Independent ID: 2153f6c0-def7-eed1-286d-5e61c9fcbec4
Content: Use NuGet with Azure DevOps Services feeds - Azure Artifacts
Content Source: docs/artifacts/nuget/nuget-exe.md
Product: devops
Technology: devops-artifacts
GitHub Login: @ramiMSFT
Microsoft Alias: rabououn

@fakhrulhilal Thank you for your feedback!


Remove unused OS based differentiation from the CommandLineBasedKeystoreGenerator::getSplitCommandNameBasedOnOeratingSystem method

The CommandLineBasedKeystoreGenerator::getSplitCommandNameBasedOnOeratingSystem method is taking the mac value for the os.name system property into account, which doesn't make sense, since Intersmash only supports Linux execution.
The method should be removed altogether.
See https://github.com/Intersmash/intersmash/pull/180#discussion_r1743137841

Environment: core module
Steps to reproduce: N/A

Hi,
Is anyone working on this issue?

Yes I'd love to work on it.

Yes I'd love to work on it.

Thanks! I've ssigned the issue to you, then :slightly_smiling_face:

Hi @fabiobrz,
I've made the necessary changes and opened a PR. Please review it and let me know if any changes are rerquired.
Thanks!

Closing as done via #203


[Task-1] Dmytro Bilozor - Project setup, About section

Deployed Project
Acceptance criteria for 1

[ ] Mentor is added to PR
[ ] AC copied to PR description
[ ] Link to deployed version added to PR
[ ] About block (text and image) added to the main page
[ ] On the widths 390px and 1280px, the site layout corresponds to the design

Acceptance criteria for 1*

[ ] Created separate component About
[ ] Its styles added to .module.css
[ ] For App.tsx, styles moved to App.module.css

Dima good job, thanks for your work
You need to make some corrections:

add me as a reviewer
uncheck boxes, this is reviewer should do

This is the instruction

Link to deployed version added to PR

I'm very glad that you find out how to deal with "@media"
you only need to make some corrections in desktop layout
you need to choose the one which you prefer

or the second one


Is a css reset kind of behaviour possible?

I was wondering since the components have a default style applied to them if it is possible to have a css reset sort of like option?
This way we can apply styles to a component starting from nothing.
My current solution is a css reset object:
export const CSS_RESET = {
  "background-color": "white", // Preferably default transparent background but I don't know if its possible in lvgljs.
  "height": "auto",
  "width": "auto",
  "border-width": 0,
  "border-radius": 0,
  "padding": 0,
  "padding-left": 0,
  "padding-right": 0,
  "padding-top": 0,
  "padding-bottom": 0,
  "shadow-width": 0,
  "shadow-offset-x": 0,
  "shadow-offset-y": 0,
  "outline-width": 0,
  "outline-padding": 0,
  "column-spacing": 0,
  "row-spacing": 0
}

And then add the object to every style:
<View
  style={{
    ...CSS_RESET,
    "height": "300px",
    ...
  }}
>
...
</View>

It would be nice to avoid having to re-use this object everywhere.

You can call lv_obj_remove_style_all() to remove all the styles from a widget.

I can't seem to find this function in the lv_binding_js project. How and where would I use this?

I can comment only on the C LVGL. :slightly_frowning_face:
cc @derekstavis

There's no CSS in this binding, just style objects, so in that sense, a selector (cascading) reset is not possible. The best way to achieve this is to wrap this binding's component in your own components that apply the reset object as you shared.


<EMAIL_ADDRESS>is outdated

warning "gatsby-source-youtube-v2 ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>[4/4] 🔨  Building fresh packages...
[7/10] ⠐ mozjpeg
[10/10] ⠐ cwebp-bin
[-/10] ⠐ waiting...
[9/10] ⠐ pngquant-bin

Hi @Sambego, this repository is outdated.
Please checkout the new version v2.0.0


UWP: Logging into the app is prevented

I've stumbled across a case where I've become logged out of the app, but am prevented from logging back in. Attempting to do so automatically raises a 'Login unsuccessful' message:

When and if I determine steps to reproduce this, I'll update this issue.

@mikewilburn LMK if you have time to verify #59 before UC. Thanks!

@nCastle1 the trouble here is that I'm not sure how to first force the behavior where I become logged out of the app unknowingly. Do you know after how long the token is currently set to expire after it's initially generated?

@mikewilburn My understanding is that it is configured by Portal. For my own testing, I manually configured an expiration of 1 minute. I can provide a build like that for testing if you'd like.


Add index to history_date field to improve performance of get_next_record() and get_prev_record() methods

Description
Calling methods get_next_record() and get_prev_record() https://github.com/treyhunner/django-simple-history/blob/master/simple_history/models.py#L391 creates a heavy load on database without indexes (full scan)
Related Issue
https://github.com/treyhunner/django-simple-history/issues/565
How Has This Been Tested?
Create new migration after changes and test sql queries time
Types of changes

[ x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ x] I have run the make format command to format my code
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] I have added my name and/or github handle to AUTHORS.rst
[x ] I have added my change to CHANGES.rst
[ ] All new and existing tests passed.

updated to master from https://github.com/jazzband/django-simple-history/pull/601

@rossmechanic I'm done


Create UI and BDD tests for address subordinate API

Codecov Report

Merging #114 (2ca1a6e) into main (0d782c3) will decrease coverage by 0.19%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##             main     #114      +/-   ##
==========================================
- Coverage   96.29%   96.10%   -0.20%
==========================================
  Files           4        4
  Lines         459      462       +3
==========================================
+ Hits          442      444       +2
- Misses         17       18       +1

Impacted Files
Coverage Δ

service/routes.py
94.89% <66.66%> (-0.37%)
:arrow_down:

Continue to review full report at Codecov.

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


new dashboard 'Check node health' button not functional in custom mode

Description
Using playground:2.3.0-alpha2 with a custom domain, at the node page the url for 'Check node health' is wrongly generated for each node.

https://dashboard.bknd1.dev.ava.tf/#/nodes
While this works correctly at the dashboard started with 'dev' as network
https://dashboard.dev.grid.tf/#/nodes
Steps to reproduce

Click on a node at https://dashboard.bknd1.dev.ava.tf/#/nodes
Click 'Check node health'

https://github.com/threefoldtech/tfgrid-sdk-ts/blob/16a58aea71f597341f9dfba01ed9ea38c9ae5736/packages/gridproxy_client/src/modules/client.ts#L24-L31

Work completed:
The issue happened because we used to create a new Grid Proxy instance without passing the URL. Fixed by using an already-made instance that has the URL.

verified
check node health button now opens an external url to  garfana to check the node health
Screencast from 12-26-2023 02:32:27 PM.webm

Verified:

Devnet
ec2ed3d
Test: https://app.testlodge.com/a/26076/projects/40893/suites/234374?expand_section=422340#case_4163764


  BuildStatus::overall_rate_ stopwatch is only initialized to the current time when PrintStatus is called with finished_edges_ == 0, but on a dumb terminal it will be called for the first time when finished_edge_ = 1, which results in very long elapsed times:
NINJA_STATUS="[%r processes, %f/%t @ %o/s : %es ] "
[0 processes, 2/2 @ 0.0/s :<PHONE_NUMBER>.367s ]

I do not see how to re-open this issue.
It is still open with the current trunk. The fix is in the https://github.com/ninja-build/ninja/pull/1174.

Any estimates for when this might roll out in a release? It makes build performance testing require a whole mess of math.

I'll try to do a minor release this or next week. If nothing has happened in eight days, please ping me.


Server folder restructuring & test tooling

We have a few goals of restructuring the codebase that we have agreed on but aren't documented anywhere. This issue serves as a place to document what we plan to do & as a place to document new utils and concepts that are intended to make our lives easier and help us move faster.

Lib & Lib common
Add a new lib folder, to contain all of the shared libraries in Ghost.
Underneath this, a new common folder, which contains the libraries that are used everywhere:

events
errors
i18n
logging

These 4 things need to be exposed to the whole of Ghost including theme helpers, apps & adapters.
They are are all effectively "read only" things - it's not possible to affect behaviour by using these libraries.

Other things that might live under lib, would be an apps folder that contains all the code which manages apps, whereby the top level apps folder contains Ghosts built-in "internal" apps.
Services
There is a second type/set of shared libraries in Ghost, which I would call "services". These cannot be exposed to apps/adapters/themes directly without creating security concerns or permissions problems:

xmlrpc/slack/zapier "ping" services
mail
auth
sitemaps
rss
permissions?
config?

In the near future this might also feature a new url and/or routing service.
Services might end up having some sort of registry in future.
Clearing up data
The data folder is a crutch. It's full of all kinds of weird stuff that has always needed a proper home. Not sure how we're going to move forward with the meta folder just yet, but we know this is a nightmare.
Many of the these things will get moved to services over time.
A fresh look at utils
We've bunged an awful lot of stuff in "utils" over the years. Some of it should be there, some of it should probably be in a service (url stuff). Some of it should belong TO a library or service, and some of it can be farmed out to either be a dependency or by using a new dependency.
Tests
We want to focus mainly on unit testing and either the route-based functional tests, or the integration tests. There's a whole bunch of tests which can/should be removed or replaced. The aim is to make tests FAST so we can ship FAST.
The utilities & fixtures around tests need to be similarly split up so that different types of test have different types of utilities, and that fixtures for specific bits of data or config are easier to find / write.
Where we have defined data structures, we can move towards using more custom should assertions - E.g. for testing that API responses or resources look how we expect them to look.

There's not going to be any one big push towards doing this, but it is expected that PRs and commits go by that make small movements towards these goals.

Rough task list
(so we know when we can close this)
Structure:

[ ] Moved to having a lib & services folder and most of the "interesting" stuff lives in there...
[x] Add lib/common with the common errors, events etc & a special way to require these
[ ] Get rid of the utils folder, finding these things a better home
[ ] Data folder doesn't contain random things
[x] New web folder for all the expressy stuff

Tools:

[x] Switch to eslint
[x] Upgrade sinon
[x] Upgrade as much as possible test deps
[x] try to speed up routing tests (start/stop behaviour of the server and db reset)
[ ] go over integration model/api tests and figure out which of them are real unit tests (e.g. test passing staticPages with different values is a unit test, because we don't test the database, we test the logic in the model layer) + see if tests are covered by routing tests
[x] reconsider fork, re-use starting server with force?
[ ]  go over routing tests and ensure we only test the basic functionality and no edge cases. Move edge cases to unit tests if possible
[x] speed up scheduling unit test
[ ] speed up integration tests as well - check what we can be improved e.g. beforeEach eats lots of time
[ ]  ensure we don't delete tests which broke Ghost in the past e.g. cors, pretty urls
[ ] re-use request utility everywhere (e.g. https://github.com/TryGhost/Ghost/blob/bffb3dbd90bfe572798f81645e3cea908570b978/core/server/api/webhooks.js#L17-L17)

@kirrg001 loosely related thing that I wanted to have a discussion about, is the structure of tests going forward.
I have a couple of points here which are about doing a little bit of upfront work in order to, long term, significantly reduce time & complexity of testing:
Quesiton 1: What sort of tests should we be writing?
Below is a table I generated from the latest master build.
The numbers in the top are how many of that type of test we have, the numbers in the columns are how long mocha reports the tests took:

Node
DB
Routes (307)
Module (4)
Unit (1514)
Integration (554)
Total

v8
sqlite
2m
7s
15s
3m
6:53

v8
mysql
3m
8s
18s
3m
7:19

v6
sqlite
3m
9s
20s
3m
8:52

v6
mysql
4m
12s
29s
4m
8:39

v4
sqlite
4m
11s
26s
4m
11:55

v4
mysql
4m
11s
21s
3m
8:56

For 1 it's nice to see them taking less time in newer versions of node, but the fundamental point is this:
We have both concepts of integration AND route tests.

Integration are like unit tests in that they test specific things, but they are allowed to involve the database and more layers of the app than a unit test would.
Functional route tests use supertest/superagent to boot Ghost up and test full stack behaviours.

Route tests are slower and more involved than integration tests, but both are ridiculously, significantly slower than unit tests.
IMO, we should focus on writing unit tests - we have many many of these and they still take under a minute to run. IMO we can have up to 1 minute of unit tests and life is still good.
We should then, probably use a single style of deep testing - either integration or route tests. Or we should have both but for very specific things? i.e. API ->  Route tests, "database behaviour" (import, export, migrations) -> integration.
I am very much up for deleting a large section of tests if we can identify which ones are not really useful.
imagine if we only had one of the routes/integration tests - we would cut our test time by a half! 🎉
Question 2: What tools should we be using?
I think, if we narrow down the kinds of tests we write, we can expand the tools we have.
I did a quick PR here: https://github.com/TryGhost/Ghost/pull/8206 where we discussed some things.
But a short list for me would be:

Upgrade sinon, the newer version has better promise support and is easier to work with

Switch to using ESLint! Have only 1 linting tool, that everyone understands better

Have some sort of tool for doing server-folder requires

Introduce a test overrides file and make use of globals for sinon, should etc and probably more things

Make much better use of custom should assertions, especially for testing the API

Clean up and separate our test utils, so that we have clear tools for unit tests, for other tests, specific tools for munging data, faking authentication, and other clear tasks.

In short, we need to get out of our own way in the tests. Make them run faster, make them easier to write. Invest in tools so that we can test the RIGHT things FASTER. Don't bother testing the wrong things!

I would like to discuss this a little bit and then maybe start a wiki page that has guidelines that say "this is how we write tests", so that as we move forward we move towards clear goals. It's easier to work that way than to try to change all of the code base & rewrite all of the tests all in one go.

Good summary 👍

Route tests are slower and more involved than integration tests, but both are ridiculously, significantly slower than unit tests.

The routing tests are that slow, because each test file (and sometimes even each test case) resets the database and starts/stops the ghost server. That eats lot's of time. This should be improved by changing the way we ensure that the test case can rely on a running ghost server. For example: By default we start the server once, as soon as a test has to restart or clean the database, it tells the test utility to restart the server. Furthermore we should/could use truncate instead of a hard db reset.

We should then, probably use a single style of deep testing - either integration or route tests. Or we should have both but for very specific things? i.e. API -> Route tests, "database behaviour" (import, export, migrations) -> integration.

I think both types of testing are important. Personally, routing tests are more important, because we ensure that Ghost works from a user perspective (e.g. also user flows, url behaviour). Even that they have the disadvantage that if a test fails it's harder to figure out the reason why the test failed, because it affects the whole system. But we have added better logging and since it's easier to find out the reason.
But integration tests are important as well, as soon as we have to test connected components, which are easier to test with integration tests e.g. timezone changes and we expect a specific behaviour. But i agree, we overuse integration tests for e.g. model and api behaviour. Same for routing tests, we used to copy test cases to ensure all kinds of edge cases work.
As both types are equally slow and if we can improve the speed of the routing tests, i would like to suggest that only one type tests the model/api layer. And personally i think the routing tests should cover that. All edge cases belong to unit tests if possible.
I can think of the following rule:

Routing tests
Should ensure the basic functionality of our frontend and JSON api. No edge case testing (e.g. we have 6 routing tests which test the behaviour of the formats property).

Integration tests
Should ensure that components play nicely together. I suggest a minimal usage, because refactorings/architecture changes can easily break these tests.

Here is my suggestion for a task list:

[ ] try to speed up routing tests (start/stop behaviour of the server and db reset)
[ ] go over integration model/api tests and figure out which of them are real unit tests (e.g. test passing staticPages with different values is a unit test, because we don't test the database, we test the logic in the model layer) + see if tests are covered by routing tests
[ ] go over routing tests and ensure we only test the basic functionality and no edge cases. Move edge cases to unit tests if possible
[ ] a couple of unit tests are using the database 🙈
[ ] ensure we don't delete tests which broke Ghost in the past e.g. cors, pretty urls

Each subtask allows to remove duplicated or unimportant tests.

Agree on all of that 👍
So we have a plan to move forward in the tests 🎉 , have a plan is half the problem solved 😁

Back in the /server/ folder, I think that all of the stuff to do with express apps (and possibly also middleware) should be grouped together under a top level folder. I've been wondering what to call it cos we can't call it "apps" as they are express apps, not internal ghost apps... and decided web probably makes most sense.
So the /admin/ folder, /site/  (used to be blog) folder,  the app.js & routes.js file from/api/ and also the current /server/app.js file, that should probably be parent-app.js all live together &  it looks like this:

Note 1: this probably needs a bit more work on the API folder first, cos the stuff that's in index.js should really be middleware and work a bit differently.
Note 2: the top level views folder should really be inside of theme...

@kirrg001 I removed the confusing image from the previous comment and very quickly moved everything around on a branch:

Can take a look here: https://github.com/ErisDS/Ghost/tree/structure-spike/core/server
Not suggesting it's perfect, but it's a rough idea.

I'll work on discussed test env improvements this and next week 👍

FYI: I am first concentrating on the server folder refactoring and then continue with the test env, otherwise i have to tidy up the tests twice 😎

I think it's the best if we replace the codebase to use the following lib packages for now.
const common = require('../lib/common)
const image = require('../lib/image)
As soon as we drop Node v4, we can simply transform them into 🙊
const {errors,i18n} = require('../lib/common)
I need to come up with some better folder/packages naming for the folders inside lib, because otherwise we end up with using promise or fs, which is super confusing (see). I think the goal should be to have all the lib files grouped.

Every utility which is used in a single place, belongs to a local utils file. We have local utilities for api, helpers etc.
This has the advantage of reducing the requires from the root directory level of the server and makes a package independent from the rest of the application. There is no need to add a single function to a lib folder (except it fulfils a general functionality for the whole project and is used more than once). The disadvantage is that the overview of available (local) utility functions is lower. In worst case it could happen that somebody adds a utility function twice.
libs should be a global place for general function sets.
utils (local utils) per package do special, local things for the target package. They can be unit tested and live in the scope of the package.

Really exciting seeing this come to life! Your point about the utils is 👍  👍  - I only very quickly went through to try to get rid of that folder in the example.

If anyone is interested in helping with

go over integration model/api tests and figure out which of them are real unit tests (e.g. test passing staticPages with different values is a unit test, because we don't test the database, we test the logic in the model layer) + see if tests are covered by routing tests

I already started with this a little while ago, see PR, but wasn't able to continue on it.
Leave a message here :)

Total time: 18 min 28 sec

If I look at the last passed 10 builds, the total time to wait is between 11-13mins.
This is not brilliant, absolutely, but:

I know we have more code and more features, but this is getting out of control. It feels like tests are getting in our way more than they are helping.

I just picked two random commits from 2017 (build1, build2)
Total Time 12mins and 13mins 😁
We should definitiely spend some time asap to finish up the tasks from this issue to improve:

speed
maintenance
test seperation (what belongs to unit, what belongs to functional, what belongs to integration)

Using the Node v10 SQLite build as the gold standard, any test that runs at over 1000ms needs to be rewritten.

Agree 👍 Added a subtask.

Any unit tests which use the database must also be rewritten.

This is already tracked as task 👍

Reduced, moved, cleaned acceptance tests ✅Travis is down to 2-3mins.
@gargol will do the same for regression tests.
It's important that we first reduce the tests, before we change our utility or our assertions (less work).

I had a blog running on port 2369 and I was unable to run my tests anymore. I was trying to figure out for 10minutes why it's not working. There was no helpful debug output and I haven't received a proper error.
Would be great if we could resolve this pain 🤣

After cleaning up redundant/slog tests, my current goal is to improve our regression test suite. After some analysis done yesterday here are the conclusions that came up with.
API suite has rather comprehensible structure. Think it should follow similar setup and rules as acceptance tests but with more specific state setup. Will need to be converted once acceptance suite is reworked. Don't see a need to reinvent the wheel for them :)
The rest of the suite has no clear structure and has a very different state setup/assertion techniques. For example, site_spec mocks express and doesn't operate on supertest built-in assertions. Some tests operate strictly on model layer (/models, /migrations), which is very coupled as for regression test. Some suites are using cheerio to check response content but it's inconsistent around what is actually checked.
List of tests non-API suites and possible refactors:

models - should be rewritten into API regression tests. Very specific cases should be moved to unit tests. Goal - remove them completely?
apps/subscribers - should move into 'site' suite or burned completely (as this module is going away soon). Names of test cases are non-descriptive e.g: [success] (should be checked where this convention is used elsewhere and modified)
exporter - move to API tests
importer - touches service/model layer, very specific usecase. should stay as is
migrations - it is not really a 'migration' spec, it's a check to see if default site fixtures populate the db in expected way. most of it are permission checks. tightly coupled with models layer. probably could be grouped together with importer (will stay as a separate test but grouped for similar style).
site

dynamic_routing - tests hight level redirects, status codes for collection index, collection entry, /tag, /author etc. Similar assertion setup style like in API tests. Has skipped suites which have inserts (timeout issues). doesn't seem to need changes now.
frontend - very similar to dynamic_routing suite
site - ~3.5K line behemoth... needs to be broken down into pieces first. 1st by api version (no need to touch v01 in the future), 2nd might need to be broken down by areast which it tests for better readability/maintainability (e.g colletions, routes). It's very hard to interpret it atm. Needs a strategy on what to do with it.
url_service - operates on API v0.1 (needs v2), looks like is mostly well covered by unit tests. Could be convert to API regression test, and set up the state using /settings/routes/yaml endpoint.

update-check -  to be converted into Unit test (most of it's dependencies are mocked already)

Let's discuss this ^ on Friday 👍

@kirrg001 if it's ok, would be best to talk through it on Thursday morning your time as I'm flying on Friday :wink:

We had a chat about the test env improvements and we realised that we want to much at once and we need to set smaller goals.
Goals for next Monday

Naz will reduce the model regression tests to its need
Kate will provide a utility in Ghost-utils to start/stop an instance

We will set tiny goals every week, which are achievable on a Monday.

Had a stab at the reduction of model regression tests today. Was able to fairly easy port settings model suite into unit tests by mocking db access with mock-knex. Tried taking a similar approach with posts model suite, but because the logic is far more complex mocking db layer became complicated quickly. Reduced and ported to API regression tests, some of the cases for posts model regression suite.
Couple thoughts regarding a further reduction of posts model regression suite:

We need to refactor the post model methods like onSaving into smaller functions so it becomes unit testable. This will allow porting validation test cases and possibly other cases.
Cover collision detection suite with unit tests for collision detection plugin
Multiauthor Posts - can be reduced to single API regression test with couple post and few authors, there's no need to do 25 post/author insertions
Discuss further what other possible approaches to test model events. Mocking db layer is too complicated.

Not stale


testing runner with GPU support

Description
Add test runner with GPU support to test gpu-specific code
Motivation
https://github.com/pybamm-team/PyBaMM/pull/3121 introduced some GPU-specific code, which we need to test.
Possible Implementation
We're using a mac mini for M1 testing and deployments, we could use this
Additional context
@BradyPlanden

Currently, JAX on Apple M-series GPU's is experimental and requires a build from source (see here) with the a minimum JAX version of 4.11. Is there a reason PyBaMM pin's JAX to 4.7 & 4.8? As similarly discussed in #3371, it appears that we can relax this dependancy?

@BradyPlanden As far as I know we should be able to relax this requirement, at least to the minor version, i.e. 0.4 (there were some substantial API changes between 0.3 and 0.4).

If it helps, I built jaxlib==0.4.11 from source on an M2 Air from https://developer.apple.com/metal/jax/ as mentioned above. I then installed jax==0.4.10 and jax-metal==0.0.3 (i.e., the ones that do not cause version conflicts currently) and ran the unit tests with python run-tests.py --unit
Verifying that Jax uses the GPU

the output of
import jax
jax.default_backend()

is
2023-09-27 23:54:55.469762: W pjrt_plugin/src/mps_client.cc:535] WARNING: JAX Apple GPU support is experimental and not all JAX functionality is correctly supported!
Metal device set to: Apple M2

systemMemory: 8.00 GB
maxCacheSize: 2.67 GB

'METAL'

Error logs

Note: the unit tests did not complete and exited early with this warning: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown   warnings.warn('resource_tracker: There appear to be %d '
Most Jax-related tests fail, all with the same error, e.g.,
test_evaluator_jax_jvp (test_expression_tree.test_operations.test_evaluate_python.TestEvaluate.test_evaluator_jax_jvp) ... "builtin.module"() ({
  "func.func"() ({
  ^bb0(%arg0: tensor<1x1xf64>):
    %0 = "mps.constant"() {value = dense<2.000000e+00> : tensor<1x1xf64>} : () -> tensor<1x1xf64>
    %1 = "mps.constant"() {value = dense<1.000000e+00> : tensor<1x1xf64>} : () -> tensor<1x1xf64>
    %2 = "mps.power"(%arg0, %1) : (tensor<1x1xf64>, tensor<1x1xf64>) -> tensor<1x1xf64>
    %3 = "mps.multiply"(%2, %0) : (tensor<1x1xf64>, tensor<1x1xf64>) -> tensor<1x1xf64>
    %4 = "mps.constant"() {value = dense<1> : tensor<4xsi64>} : () -> tensor<4xsi64>
    %5 = "mps.reshape"(%3, %4) : (tensor<1x1xf64>, tensor<4xsi64>) -> tensor<1x1x1x1xf64>
    "func.return"(%5) : (tensor<1x1x1x1xf64>) -> ()
  }) {arg_attrs = [{jax.arg_info = "y", mhlo.sharding = "{replicated}"}], function_type = (tensor<1x1xf64>) -> tensor<1x1x1x1xf64>, res_attrs = [{jax.result_info = ""}], sym_name = "main", sym_visibility = "public"} : () -> ()
}) {mhlo.num_partitions = 1 : i32, mhlo.num_replicas = 1 : i32, sym_name = "jit_evaluate_jax"} : () -> ()
ERROR

From a quick look, https://github.com/google/jax/issues/16435 seems to be related. With the instability of jax-metal in its current state, perhaps it would be best to test this GPU-specific code on either Windows + WSL or an Ubuntu machine? On a GPU-enabled self-hosted runner, we could use https://github.com/marketplace/actions/cuda-toolkit for drivers. It looks like GPU-enabled runners are on GitHub's roadmap too (https://github.com/github/roadmap/issues/505).

Right so a bit of investigation confirmed that M-series GPU's don't support FP64. In this case, config.update("jax_enable_x64", True) needs to be skipped in evaluate_python.py and jax_bdf_solver.py. Once that's done, the python run-tests.py --unit proceeds, but fail due to assertion tolerances (Jax is FP32 as default).
To proceed we could add os.platform logic to the config.update("jax_enable_x64", True), in addition with GPU or CPU flags. Thoughts?


images/builder: get rid of annoying git ownership warnings

Begone, cumbersome git warnings caused by including Makefile.defs:
fatal: detected dubious ownership in repository at '/src'
To add an exception for this directory, call:

	git config --global --add safe.directory /src

cilium-builder will be run as root in various contexts, and git repos will be mounted under random paths, so we can't reasonably target them. Just stop the warnings, they're useless in this context.

/test


No magicCrit particle

In the ParticleType constant there is no magicCrit. Enchanting was implemented so the particle exists, I don't know its number. Could you add it to the ParticleType constant?

I can't seem to spawn that particle - I'm guessing it's particle type 33, but that's an emitter, and I'll need to support spawning emitter particles


Add vue skeleton to host map

Built out vue application to host svg map output from data processing pipeline. The app is currently a single component GWU.vue that imports anomaly_peaks.svg using vue-svg-loader. This allows us to directly inject the svg into the DOM and use it like inline svg, including being manipulated with css and js. vue-svg-loader runs the svg through svgo when the page is built which includes some default optimization steps, helping with https://github.com/USGS-VIZLAB/gw-conditions/issues/18.
This also adds a step to the pipeline to copy svg exports into vue, include the date range in the file name, and generate a csv with each of the file paths and dates. That way, down the line we can use it to select between different time periods. It's easier to do this from R than with vue/webpack.
Because of the issue with NA's noted in https://github.com/USGS-VIZLAB/gw-conditions/issues/25, the vue app currently depends on a modified svg with those elements deleted. The map is not yet animated, I think we are at a point that requires some back and forth between R and Vue to find the best way to do so.
Should produce this!

Not committing big svgs: Sounds good. I don't think it will be necessary to have multiple svgs in the long term, but this depends on how we animate it. What seems most likely is that we will have a single svg that draws the map and contains the site locations etc, but the data for each iteration will be stored in csv or other data format and bound to the svg. That will still require the same consideration about where to keep the data. It seems like we need a way to stash the data files we want in s3 from the R pipeline, and then pull them down from s3 in vue or jenkins build. This might be useful https://github.com/jenkinsci/pipeline-aws-plugin
I think it should be a goal to be able to revisit past years through a drop down menu and select the appropriate data to play the animation. Unsure of how challenging that will be to do, but in theory we store the data on S3 in theory and trigger pulling past data through selection, with the default being the most recent dates. This can also be put on the back burner until we are looking to generate the next time period.

I've captured the R to Vue considerations here https://github.com/USGS-VIZLAB/gw-conditions/issues/27


Update plugin-accurev.yml

Description

Submitter checklist for changing permissions

Always

[ ] Add link to plugin/component Git repository in description above

For a newly hosted plugin only

[ ] Add link to resolved HOSTING issue in description above

For a new permissions file only

[ ] Make sure the file is created in permissions/ directory
[ ] artifactId (pom.xml) is used for name (permissions YAML file).
[ ] groupId / artifactId (pom.xml) are correctly represented in path (permissions YAML file)
[ ] Check that the file is named plugin-${artifactId}.yml for plugins

When adding new uploaders (this includes newly created permissions files)

[ ] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[ ] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[ ] All newly added users have logged in to Artifactory at least once

Please coordinate with #843.

Updated my id and  permission changes

@casz Please approve/reject.

Build failed; the context from the latest run is:
Expand to view
Fetching without tags
Checking out Revision 09cc469da7df51ad352a5e28fcdcb229759896fb (master)
Commit message: "Merge pull request #73 from jglick/INFRA-1747-diag"
[Pipeline] properties
[Pipeline] node
Running on ubuntu-jenkinsinfra4a60e0 in /home/jenkins/workspace/-permissions-updater_PR-842-XWPE2IZX6LBFHCZRYM2MX3XO6YYGKJTBWRCP6ZXZX6LRINIO6IBA
[Pipeline] {
[Pipeline] stage (Clean)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Clean
Proceeding
[Pipeline] deleteDir
[Pipeline] sh
[-permissions-updater_PR-842-XWPE2IZX6LBFHCZRYM2MX3XO6YYGKJTBWRCP6ZXZX6LRINIO6IBA] Running shell script
+ ls -lah
total 8.0K
drwxrwxr-x  2 jenkins jenkins 4.0K Sep 14 02:32 .
drwxrwxr-x 13 jenkins jenkins 4.0K Sep 14 02:32 ..
[Pipeline] stage (Checkout)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Checkout
Proceeding
[Pipeline] checkout
Cloning the remote Git repository
Cloning with configured refspecs honoured and without tags
remote: Counting objects
remote: Compressing objects
Receiving objects
Resolving deltas
Updating references
Fetching without tags
Merging remotes/origin/master commit 8a36c402fe3f7f8cf5c8ebc2531ddd5f1700f8ed into PR head commit 856b13bbed5c5eb97f3f5a12942a9be138780b54
[Pipeline] stage (Archive)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Archive
Proceeding
[Pipeline] archiveArtifacts
Archiving artifacts
[Pipeline] archiveArtifacts
Archiving artifacts
‘json/*.json’ doesn’t match anything: even ‘json’ doesn’t exist
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline

GitHub has been notified of this commit’s build result

ERROR: No artifacts found that match the file pattern "json/*.json". Configuration error?
Finished: FAILURE

Powered by the Comment Logger

Build failed; the context from the latest run is:
Expand to view
Fetching changes from the remote Git repository
Fetching without tags
Checking out Revision 09cc469da7df51ad352a5e28fcdcb229759896fb (master)
Commit message: "Merge pull request #73 from jglick/INFRA-1747-diag"
[Pipeline] properties
[Pipeline] node
Running on ubuntu-jenkinsinfraf4d310 in /home/jenkins/workspace/-permissions-updater_PR-842-XWPE2IZX6LBFHCZRYM2MX3XO6YYGKJTBWRCP6ZXZX6LRINIO6IBA
[Pipeline] {
[Pipeline] stage (Clean)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Clean
Proceeding
[Pipeline] deleteDir
[Pipeline] sh
[-permissions-updater_PR-842-XWPE2IZX6LBFHCZRYM2MX3XO6YYGKJTBWRCP6ZXZX6LRINIO6IBA] Running shell script
+ ls -lah
total 8.0K
drwxrwxr-x  2 jenkins jenkins 4.0K Sep 16 02:32 .
drwxrwxr-x 11 jenkins jenkins 4.0K Sep 16 02:32 ..
[Pipeline] stage (Checkout)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Checkout
Proceeding
[Pipeline] checkout
Cloning the remote Git repository
Cloning with configured refspecs honoured and without tags
remote: Counting objects
Receiving objects
Resolving deltas
Updating references
Fetching without tags
Merging remotes/origin/master commit d0e3776d3e73f34fbc0d171d5f530b7528d6f840 into PR head commit 856b13bbed5c5eb97f3f5a12942a9be138780b54
[Pipeline] stage (Archive)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Archive
Proceeding
[Pipeline] archiveArtifacts
Archiving artifacts
[Pipeline] archiveArtifacts
Archiving artifacts
‘json/*.json’ doesn’t match anything: even ‘json’ doesn’t exist
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline

GitHub has been notified of this commit’s build result

ERROR: No artifacts found that match the file pattern "json/*.json". Configuration error?
Finished: FAILURE

Powered by the Comment Logger

Build failed; the context from the latest run is:
Expand to view
Commit message: "Merge pull request #73 from jglick/INFRA-1747-diag"
[Pipeline] properties
[Pipeline] node
Still waiting to schedule task
Waiting for next available executor on java
Running on ubuntu-jenkinsinfraf2a0c0 in /home/jenkins/workspace/-permissions-updater_PR-842-XWPE2IZX6LBFHCZRYM2MX3XO6YYGKJTBWRCP6ZXZX6LRINIO6IBA
[Pipeline] {
[Pipeline] stage (Clean)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Clean
Proceeding
[Pipeline] deleteDir
[Pipeline] sh
[-permissions-updater_PR-842-XWPE2IZX6LBFHCZRYM2MX3XO6YYGKJTBWRCP6ZXZX6LRINIO6IBA] Running shell script
+ ls -lah
total 8.0K
drwxrwxr-x  2 jenkins jenkins 4.0K Sep 19 02:32 .
drwxrwxr-x 19 jenkins jenkins 4.0K Sep 19 02:32 ..
[Pipeline] stage (Checkout)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Checkout
Proceeding
[Pipeline] checkout
Cloning the remote Git repository
Cloning with configured refspecs honoured and without tags
remote: Counting objects
remote: Compressing objects
Receiving objects
Resolving deltas
Updating references
Fetching without tags
Merging remotes/origin/master commit bc196ebacd47a5e8bb1167a60a467e4bd9bd20ce into PR head commit 856b13bbed5c5eb97f3f5a12942a9be138780b54
[Pipeline] stage (Archive)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Archive
Proceeding
[Pipeline] archiveArtifacts
Archiving artifacts
[Pipeline] archiveArtifacts
Archiving artifacts
‘json/*.json’ doesn’t match anything: even ‘json’ doesn’t exist
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline

GitHub has been notified of this commit’s build result

ERROR: No artifacts found that match the file pattern "json/*.json". Configuration error?
Finished: FAILURE

Powered by the Comment Logger

Build failed; the context from the latest run is:
Expand to view
Commit message: "Merge pull request #74 from batmat/make-timeout-configurable"
[Pipeline] properties
[Pipeline] node
Still waiting to schedule task
Waiting for next available executor on java
Running on ubuntu-jenkinsinfra3b2620 in /home/jenkins/workspace/-permissions-updater_PR-842-XWPE2IZX6LBFHCZRYM2MX3XO6YYGKJTBWRCP6ZXZX6LRINIO6IBA
[Pipeline] {
[Pipeline] stage (Clean)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Clean
Proceeding
[Pipeline] deleteDir
[Pipeline] sh
[-permissions-updater_PR-842-XWPE2IZX6LBFHCZRYM2MX3XO6YYGKJTBWRCP6ZXZX6LRINIO6IBA] Running shell script
+ ls -lah
total 8.0K
drwxrwxr-x 2 jenkins jenkins 4.0K Sep 20 18:19 .
drwxrwxr-x 4 jenkins jenkins 4.0K Sep 20 18:19 ..
[Pipeline] stage (Checkout)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Checkout
Proceeding
[Pipeline] checkout
Cloning the remote Git repository
Cloning with configured refspecs honoured and without tags
remote: Counting objects
remote: Compressing objects
Receiving objects
Resolving deltas
Updating references
Fetching without tags
Merging remotes/origin/master commit 82d6cdfc7794072ff4e7a491c9c5f9d58d2668aa into PR head commit 856b13bbed5c5eb97f3f5a12942a9be138780b54
[Pipeline] stage (Archive)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Archive
Proceeding
[Pipeline] archiveArtifacts
Archiving artifacts
[Pipeline] archiveArtifacts
Archiving artifacts
‘json/*.json’ doesn’t match anything: even ‘json’ doesn’t exist
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline

GitHub has been notified of this commit’s build result

ERROR: No artifacts found that match the file pattern "json/*.json". Configuration error?
Finished: FAILURE

Powered by the Comment Logger

Build failed; the context from the latest run is:
Expand to view
Commit message: "Merge pull request #74 from batmat/make-timeout-configurable"
[Pipeline] properties
[Pipeline] node
Still waiting to schedule task
ubuntu-jenkinsinfra3ee9f0 is offline; ubuntu-jenkinsinfra5da080 is offline; ubuntu-jenkinsinfra5da081 is offline; ubuntu-jenkinsinfra5da1f0 is offline; ubuntu-jenkinsinfra9e7a60 is offline; win2012-435f50 doesn’t have label java
Running on ubuntu-jenkinsinfra9e7a60 in /home/jenkins/workspace/-permissions-updater_PR-842-XWPE2IZX6LBFHCZRYM2MX3XO6YYGKJTBWRCP6ZXZX6LRINIO6IBA
[Pipeline] {
[Pipeline] stage (Clean)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Clean
Proceeding
[Pipeline] deleteDir
[Pipeline] sh
[-permissions-updater_PR-842-XWPE2IZX6LBFHCZRYM2MX3XO6YYGKJTBWRCP6ZXZX6LRINIO6IBA] Running shell script
+ ls -lah
total 8.0K
drwxrwxr-x 2 jenkins jenkins 4.0K Sep 21 02:35 .
drwxrwxr-x 8 jenkins jenkins 4.0K Sep 21 02:35 ..
[Pipeline] stage (Checkout)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Checkout
Proceeding
[Pipeline] checkout
Cloning the remote Git repository
Cloning with configured refspecs honoured and without tags
remote: Counting objects
remote: Compressing objects
Receiving objects
Resolving deltas
Updating references
Fetching without tags
Merging remotes/origin/master commit df710d8371f390d8b7368ff4fcaf76acc22495a6 into PR head commit 856b13bbed5c5eb97f3f5a12942a9be138780b54
[Pipeline] stage (Archive)
Using the ‘stage’ step without a block argument is deprecated
Entering stage Archive
Proceeding
[Pipeline] archiveArtifacts
Archiving artifacts
[Pipeline] archiveArtifacts
Archiving artifacts
‘json/*.json’ doesn’t match anything: even ‘json’ doesn’t exist
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline

GitHub has been notified of this commit’s build result

ERROR: No artifacts found that match the file pattern "json/*.json". Configuration error?
Finished: FAILURE

Powered by the Comment Logger

@daniel-beck please close, jenkins admin is spammy and I was NOT notified of this user from MicroFocus and user is clearly not interested in keeping us updated.


Added CI/CD Workflow and rimraf ci puppeteer dependencies

Issue that this pull request solves
Closes: #80
Proposed changes
Brief description of what is fixed or changed
Added rimraf, ci and puppeteer dependencies which handle workflow through GitHub actions and added the main.yml as the workflow config.
Types of changes
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update (Documentation content changed)
[ ] Other (please describe):

Checklist
Put an x in the boxes that apply

[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] My changes does not break the current system and it passes all the current test cases.

Screenshots
Please attach the screenshots of the changes made in case of change in user interface
Other information
Any other information that is important to this pull request

Looks good to me. :)
Merging it.


[GSoC] Add reference implementation for Issues New

This pull request adds the reference implementation for the pandas version of Issues New metric.
As of now, the implementation does not have the reopen as new boolean parameter, as mentioned in the definition of the metric. An issue has been opened to discuss this.

Would you mind forcing a new push, to make Travis run the tests?

@jgbarah please have a look at this after #242. Thanks


More details on backends in README

Add explanation about backends and small example (see #31)

Codecov Report

Merging #56 (d588084) into master (12a0e27) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #56   +/-   ##
=======================================
  Coverage   83.33%   83.33%
=======================================
  Files           6        6
  Lines         474      474
=======================================
  Hits          395      395
  Misses         79       79

Continue to review full report at Codecov.

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

Thanks @gdalle and sorry for the super late merge!

Thanks @devmotion!


Returns 403 Forbidden error for AWS pre-signed PDF files

any solutions here?

Sound like this should added to the documentation.


Automatic build generation

Right now we have to go through the process of:
rm -rf .stack-work
stack Build.hs -a
cp -R static <dir-where-builds-go>
cp .stack-work/install/x86_64-osx/lts-8.3/8.0.2/haskell-do <dir-where-builds-go>

Repeat that process for OSX and Linux, and after that, zip and upload to Github releases.
It would be nice to automate this 😄

@NickSeagull I could add a section to Build.hs, like package which would do this, hmm?

@NickSeagull I guess this can be closed now :+1:

Uhmmm, this might sound crazy, but I just got the idea of generating the build based on the version number through TravisCI for OSX and Linux and Appveyor for Windows.
It's not high priority at the moment, but it would be nice to have. So I'll leave it open :)

I think I'll be working on this right now, seems the most important/easier thing right now.


logfire whoami should respect the LOGFIRE_TOKEN env var.

and I guess pyproject.toml and anywhere else we look for a token, e.g. it should have the same semantics in terms of finding a project as
python -c 'import logfire; logfire.info("hello world")'

@alexmojaki @Kludex please can we fix this, it would be really helpful.


Nostr login

It's pretty trivial, but I keep forgetting to do this.

Do you have a specific NIP in mind? I only found NIP-98 and an ongoing discussion here: https://github.com/nostr-protocol/nips/issues/154
NIP-98 also looks weird since there is no challenge involved. Only the window set by created_at seems to provide some
(insufficient) protection against replay attacks :thinking:

I have an example in the outer space repo. I use a challenge+secret flow there, but a single challenge like we do here is fine.


Added a new list that will contain all the incorrect upstream tests

What was wrong?
addresses https://github.com/ethereum/execution-specs/pull/466#issuecomment-1080834569
How was it fixed?
Added a new list that will contain all the incorrect upstream tests
Cute Animal Picture

Pic credits: boredpanda.com

Codecov Report

Merging #489 (b2c7bce) into master (9508795) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #489   +/-   ##
=======================================
  Coverage   84.34%   84.34%
=======================================
  Files         222      222
  Lines       12353    12353
=======================================
  Hits        10419    10419
  Misses       1934     1934

Flag
Coverage Δ

unittests
84.34% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

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


API Upgrade

Due to experience gained to date there is a desire to simplify the UUID handling and make cross referencing of content within the API JSON easier.
Details to follow

Notes from meeting with ACN & TCB 2022-10-17
2022 10 17 UUID.pdf

Description of the changes

Updated the model to include the direct link from StudyDesign to Activities. As I mentioned earlier, just makes the model consistent and "balanced"
@cupkes @jared-schreibman-cdisc


Using WebP as tilemap causes misaligned tiles.

Version
3.54.0

Operating system:
Win 10 19042.928 x64

Browser:
Chrome + Firefox tested

Description
Webp tilemaps do not map individual tile locations correctly.
The second image on my map is pulling pixels from my first.
Example Test Code
Additional Information
WebP can reduce browser image sizes by drastic amounts. Most of my Phaser assets are in WebP and it would be ideal to continue using WebP, but PNG works fine too for now :)
Thank you Phaser Community!

I think I can add on to this report by including that this might be potentially caused by a tile being indivisible by the screen dimensions, though somehow it does seem that WebP reacts differently to dimensions than png.

Okay, I can confirm this is purely a webp issue:
The same graphic, tilemapped from PNG:

as WebP:

Nothing inside of Phaser treats WebP files any differently from PNG files. It actually has no concept of them differing at all.
As you've not provided any code or map files I can't help but wonder if this isn't Tiled exporting different json based on the two formats? Failing that, try it in a different browser perhaps. There's nothing inside of Phaser I can actually change to capture this, and my gut tells me there's no way the tiles will have different resolutions based on format alone, so this is likely coming from somewhere external.

Nothing inside of Phaser treats WebP files any differently from PNG files. It actually has no concept of the file format at all.
As you've not provided any code or map files I can't help but wonder if this isn't Tiled exporting different json based on the two formats? Failing that, try it in a different browser perhaps. There's nothing inside of Phaser I can actually change to capture this, and my gut tells me there's no way the tiles will have different resolutions based on format alone, so this is likely coming from somewhere external.

Sorry for the late response, my tiles aren't generated from Tiled, but from an algo I scripted.  Also I did mention I confirmed this occurs in both Firefox and chrome.
I'll see if I can reproduce the experience in a codesandbox here for us shortly. Thanks for all the hard work here. 🙇🏼♂


Revert "CI: Reuse changelog entries for release notes"

This reverts commit 873342bf5436d510ba60513abce5d1eefd5e8343.
Because it apparently broke PR builds without any error.

indeed it's starting now, @cristianoc


limits link dropped?

File: docs/reference/pkg/nodejs/pulumi/aws/lambda/_index.md
property timeout
public timeout: pulumi.Output<number | undefined>;
The amount of time your Lambda Function has to run in seconds. Defaults to 3. See [Limits][5]

This looks like an issue in pulumi-terraform - the link to https://docs.aws.amazon.com/lambda/latest/dg/limits.html should be maintained.


persp-delete-frame alters windows of other frames when killing frame with dedicated window

When closing a frame that only contains one dedicated window, messages similar to the following get logged in *Messages*:
Error during redisplay: (run-hook-with-args persp-delete-frame #<dead frame testing 0x8d099f8>) signaled (error "Lisp nesting exceeds ‘max-lisp-eval-depth’")
Error during redisplay: (run-hook-with-args persp-delete-frame #<dead frame testing 0x8d099f8>) signaled (error "#<window 467> is not a live window") [225 times]

This also seems to coincide with either a window getting removed from another frame, or the window being changed to some other buffer if it's the only window on the frame.
I've been able to reproduce this in Emacs 28.2. I first noticed it in an EXWM environment (since EXWM creates a new frame with a dedicated window for "floating" X windows), but I've been able to reproduce it in a regular Emacs environment as well.
Steps to reproduce:

Open a new frame (C-x 5 2)
Open a new buffer in that frame's window (C-x b <some buffer name>)
Set the window in that frame to be dedicated M-: (set-window-dedicated-p (selected-window) t)
Delete the frame (C-x 5 0)
Note the changes in other open frames, and the errors logged in *Messages*.

Suspected cause
The infinite loop appears to be as follows:

persp-delete-frame -> persp-kill
persp-kill -> persp-remove-buffer
persp-remove-buffer -> kill-buffer if the buffer doesn't exist in other perspectives
kill-buffer -> replace-buffer-in-windows
replace-buffer-in-windows -> delete-frame since the window is dedicated, and the only window in the frame
delete-frame runs delete-frame-functions, which contains persp-delete-frame

Thank you for the detailed bug report. I'm swamped right now, but will try to find time to take a look in the next couple of weeks.


Update cluster role bindings for azure-cloud-provider

What this PR does / why we need it:
Fix #3847. This is required for kubernetes v1.12.
cc @khenidak @jackfrancis
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
If applicable:

[ ] documentation
[ ] unit tests
[ ] tested backward compatibility (ie. deploy with previous version, upgrade with this branch)

Release note:

@khenidak Is this change valid across all versions of k8s? (The way this is currently implemented, this addon spec is used by all k8s versions >= 1.7)

@PatrickLang this change seems to have consistently busted PVC for Windows. Anything obvious jump out at you?

@andyzhangx can you work with @feiskyer on these failures?

Splited cluster roles into two: system:azure-persistent-volume-binder and system:azure-cloud-provider. CI green now.

@feiskyer I still don't understand why create azure file pvc failed on Windows in the prior PR.


Remove unused images

Description
MA-2756
This PR removes some resources that were not being used anywhere in the app.

Codecov Report

Merging #911 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #911   +/-   ##
=======================================
  Coverage   43.52%   43.52%
=======================================
  Files         385      385
  Lines       26288    26288
=======================================
  Hits        11441    11441
  Misses      14847    14847

Continue to review full report at Codecov.

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


feat(signaling): join answer + offer

Improvement to single pc signaling based on suggestion by @jech
When doing the initial negotiate of the peer connection (on join), the sfu responds with an answer to the remote peer's offer as well as a new offer including any media for existing peers in the session. We then start sending RTP when the sfu receives an answer from the remote peer (this part still need to be implemented).

We are going to take a different approach. Senders will start in the muted state and be unmuted by the client when they want the media.


Bring branch to parity with Blue Scarab fixes and address warnings

Blue Scarab Pull Requests
https://github.com/LootLocker/unreal-sdk/pull/12
https://github.com/LootLocker/unreal-sdk/pull/9
https://github.com/LootLocker/unreal-sdk/pull/8
I've gone through them commit by commit and added all the fixes that had not been addressed on the v2 branch. The only thing I have not brought in is the Guest Login addition as that is part of a larger discussion on how to handle platforms vs authentication methods in the sdks. In PR 8 see commits
bac02afa890a4141c22322a798fbe99f742108b5 - sync project to plugin
e51468687b5c76a2b41da5dc834748df6c3a37a1 - Guest Login
** Template **
In June the file LootLockerTemplates.h was added to the public facing part of the v2 branch but never updated nor used anywhere. Until I know why and what it's for I have removed it.
Compilation Warnings
I went through and fixed a bunch of warnings in the project:

"Uninitialized" - not initializing stuff in C++ is bad. So I fixed a slew of those problems where I found them.
"Auto doesn't catch references, unintended copy" - the auto keyword just deduces the underlying type and if not used as "auto&" it will make a copy of the object which is stupid for for loops for example.
"Intended bitwise comparison?" - We're checking if the map is empty and the NOT was in the wrong place causing this warning. I wanted to switch it out to an "IsEmpty" but that wasn't available in earlier C# versions.

Do we need to test any of the changes from Blue S

The answer to "Do we need to test the changes" should always be yes. But it's a bit tricky as it's mostly just warning fixes all over the place so what you'd need is a full regression test. Would have been satisfied with CI tests if we had any. So under the circumstances I'd say no. If we still want to do any then I'd say; do some spot checks on some flows, and then test the missions one as that has the most significant changes?


Apply TrixiParticles.jl#518

https://github.com/trixi-framework/TrixiParticles.jl/pull/518

Codecov Report
Attention: Patch coverage is 22.72727% with 17 lines in your changes are missing coverage. Please review.

Project coverage is 67.77%. Comparing base (e2fa060) to head (acc4c8c).

Files
Patch %
Lines

src/grid_nhs.jl
26.31%
14 Missing :warning:

src/trivial_nhs.jl
0.00%
3 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main       #5      +/-   ##
==========================================
- Coverage   71.50%   67.77%   -3.73%
==========================================
  Files           7        7
  Lines         200      211      +11
==========================================
  Hits          143      143
- Misses         57       68      +11

Flag
Coverage Δ

unit
67.77% <22.72%> (-3.73%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


docs: Add docs for into

From #2577. We could probably market it more aggressively through the docs too

Main discussion around this feature was in #2575.


Gzip not compress / if .htm or .html extensions added to conf

1. What version of Caddy are you running (caddy -version)?
0.9.0
2. What are you trying to do?
Load pages in local folder with caddy
3.
Mac osx el capitan, caddy binaries from off site.
5. What did you expect to see?
Gzip encoding in Firefox networking tab (developer console) for all / connections. Example:
<IP_ADDRESS>:8080/  and <IP_ADDRESS>:8080/folder1 and <IP_ADDRESS>:8080/folder2 with index.html in each folder.
6. What did you see instead (give full error messages and/or log)?
Just bytes transferring without gzip encoding and reduced file size.
7. How can someone who is starting from scratch reproduce this behavior as minimally as possible?

Create candy file
Create 2 folders: 1 for root with index.html and second with any name and with index.html inside. Open Firefox for testing gzip for / and /secondfolder

Have looked to caddy code and rewrite config file to:
gzip {
	ext "" ".txt" ".htm" ".html" ".css" ".js" ".otf" ".woff" ".eot" ".svg"
}

This is worked for me...

That's because index.html is loaded with the path of / and doesn't have the .html extension, and you told gzip to only compress paths with .htm and .html. The default gzip configuration does this correctly as you would expect:
gzip


[Bug]: Generate new page button not seen for mock databases & Gsheets

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When do not see the Generate new page button at the bottom of the datasource screen for mock databases & Gsheets.
Steps To Reproduce

Authorise mock/Gsheet datasource.
Save the configuration.

Expected: Generate new page button should appear at the bottom of the screen upon successful authorisation.
Actual: The button is not visible
Public Sample App
No response
Environment
Release
Severity
Low (Cosmetic UI issues)
Issue video log
https://jam.dev/c/98481a5f-d267-4d88-a8fb-2c0fa2547b7e
Version
Cloud

Hey @shadabbuchh
this was done as a part of https://github.com/appsmithorg/appsmith/pull/34655
The Generate new page is hidden when drag and drop of building blocks is enabled(which is true for everyone on release).

The Generate new page is hidden when drag and drop of building blocks is enabled(which is true for everyone on release).

@rahulbarwal if that is the case then why do we see the button for rest of the datasources?
https://jam.dev/c/c3a41046-9f7e-4296-b6c7-c7cca0ddf1a0

The Generate new page is hidden when drag and drop of building blocks is enabled(which is true for everyone on release).

@rahulbarwal if that is the case then why do we see the button for rest of the datasources? https://jam.dev/c/c3a41046-9f7e-4296-b6c7-c7cca0ddf1a0

@jacquesikot can you please check this ?

@shadabbuchh @rahulbarwal I am looking into this. The button should be disabled for all datasources

Verified on release.
https://jam.dev/c/bbf55f6c-673d-4d72-8fa1-e05669a3bdc0


AST: Fix bogus diagnostic with bad conformance requirements in generic signature [4.0]

Description: Fix misleading diagnostic emitted with invalid code.

Scope of the issue: Affects people using generics.

Risk: Very low.

Reviewed by: @DougGregor

Radar: rdar://problem/34048495.

@DougGregor Can you review for 4.0?

@swift-ci Please test


Fix constructor generation for empty messages

Closes #74

[x] I have updated CHANGELOG.md
[x] I have added tests to demonstrate the contribution is correctly implemented: this usually includes both positive and negative tests, showing the happy path(s) and featuring intentionally broken cases
[x] I have run all the tests locally and no test failure was reported
[x] I did not do unrelated and/or undiscussed refactorings

Another solution would be to forbid defining messages without fields, like it's done with structs. But I'm not sure if this is a good idea for messages.


HTTPS?

Looking at the README I see that I can  run the app on an HTTP port. How is it suggested that I use HTTPS instead?

I think you can use ngrok for that. I didn't try it yet so don't know for sure but it should work.

@KevinBurton you will generally want to use something like caddy or traefik to do HTTPS termination for you and then route to the gatsby container from there. HTTPS is out of scope for a container like this.

@KevinBurton what's the use case for having the gatsby-docker setup support HTTPS?
Indeed, ideally, you will have nginx/(apache) or some similar thing that terminates the HTTPS traffic on the edge, or in case of a single VPS you'd have it installed on the VPS, and then that would route requests to your gatsby-container over HTTP.

As a non-contributor community member: please close this ticket. Cheers!


Update StockPlugins

Hello, I've changed the folders of StockPlugins and it needs an update on CKAN.
But I don't know which version of spec_version I need to put, I let it to what it was before ;)
Changelog
v1.10 - 2015.06.09

New: Added support of DeadlyReentry,
Fix: Merged all folders to keep only one folder "StockPlugins",
Fix: Tweaked the MM syntax,
Optional: Added an optional version of Stock DeadlyReentry to keep the DeadlyReentry parts and block the Stock HeatShields,
Optional: Added an optional version of Stock MechJeb which enable all MechJeb function at the start of a Career,
Update ModuleManager to 2.6.5,
/!\ for this update you need to delete all the old folders of StockPlugins: Telemachus_Stock, Protractor_Stock, MechJeb2_Stock, kOS_Stock, Kerbaltek_Stock, KerbalGPS_Stock and KerbalEngineer_Stock.

Thanks, looks good to me.