new(redis-cli): Add support for Redis CLI with password as environment variable and command-line flags

Overview

This PR adds support for redis-cli. The password for connecting to the redis server can be set as an environment variable and it'll be used by the shell plugin.
Type of change

[x] Created a new plugin
[ ] Improved an existing plugin
[ ] Fixed a bug in an existing plugin
[ ] Improved contributor utilities or experience

Related Issue(s)

Resolves: https://github.com/1Password/shell-plugins/issues/275

How To Test

Sign up for a Redis hosting provider like Upstash.
Create a Redis server.
Make note of the password, hostname and port number shown by that provider.
Clone this branch and run make redis/build
Set up redis shell plugin by running op plugin init redis-cli. Set the password as a 1Password field item.
Run redis-cli -h host-address-here.com -p port-number-here PING
See response PONG

Changelog

Add support for Redis CLI with environment variable-based provisioning.

A couple of quick notes:

ManagementURL is not set for the credential because, depending on the redis hosting provider the link will be different.
We provision using environment variables for now, because REDISCLI_AUTH is the only support variable, for the password. There isn't one for the host, port or the database.
There isn't a config file provisioner for redis CLI. So, that's not an option.
I was exploring a new arguments provisioner for tunnelto, but it's on hold at this time. I can take another stab at it soon and when it's ready, we can adopt the same concept here for redis, so that host, port and database can be set up as individual field items too.

Let me know what you think about this!

Any reason not to use, in conjunction with the envvar provisioner, a command line provisioner (i.e. adding the port and host flags within the provisioner itself). The entire provisioner should be the equivalent of:
REDISCLI_AUTH=<value> redis-cli -p <port> -h <host>

@hculea, that's a great suggestion, thank you!
So, today's the first time I properly dived into the provisioner SDK and I see that it's possible to provision two types of credentials (environment variables and command-line flags, in this case) in a single provisioner. The current shell plugin supports this behavior with a new AddArgsImmediatelyAfterExecutableName provisioner function.
Examples to test with:

redis-cli ping actually translates into redis-cli -h host.com -p 1234 ping behind the scenes, and outputs pong.
redis-cli incr counter_value translates into redis-cli -h host.com -p 1234 incr counter_value behind the scenes, and outputs (integer) 1

While Redis CLI supports multiple command line flags, I have worked here with the assumption that host and port are minimum-required flags. If the user supplies additional flags, they'll be used properly.
Example:

redis-cli -r 5 INCR counter_value translates into redis-cli -h host.com -p 1234 -r 5 INCR counter_value behind the scenes, and outputs the following:

(integer) 1
(integer) 2
(integer) 3
(integer) 4
(integer) 5

Also, if the user decides to use a custom value for the host and port, as opposed to the value we have on the 1Password item, that shouldn't be a problem either. The flag value entered by the user will be used and the one from the 1Password item be skipped.
Let me know what you think of this setup!

The current shell plugin supports this behavior with a new AddArgsImmediatelyAfterExecutableName provisioner function.

For some additional context on why this new function is needed, AddArgs function appends the command-line arguments to the end of the user-inputted command. That is, redis-cli incr counter_value becomes redis-cli incr counter_value -h host.com -p 1234 but this is not supported by Redis CLI for some reason. It results in the following error:
AUTH failed: ERR AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?
(error) ERR wrong number of arguments for 'incr' command

Redis CLI expects the flags to be immediately after the executable name, thus the new function AddArgsImmediatelyAfterExecutableName.

Couple of additional notes for all reviewers:

👍🏼 Since the last iteration, we now have username as a separate field, thus allowing scoped/ACL-based user accounts.
👍🏼  There isn't a way to set the "default" value for the username at this time: https://github.com/1Password/shell-plugins/issues/281 I am hoping redis users will be familiar with setting the standard "default" username as the default, when they don't have ACL-based accounts.
👍🏼  Tested with Upstash, Redis.com (enterprise Redis cloud, from the same makers of open source Redis software), works well.
👎🏼  Yet to test on AWS Elasticache. More significantly, yet to test/understand how AWS-hosted redis clusters work, because based on a quick glance, their access is locked down to EC2 instances.

For the near future:

Investigate and fix optional setting, so that it can be used on the username field: https://github.com/1Password/shell-plugins/issues/280
Decide on how we should approach redis-Terraform compatibility. I talked about this with @AndyTitu a bit already. The main blocker is that, for our Terraform shell plugin, we'll need to use environment variables instead of command-line arguments for authentication. But the environment variables for various redis providers are different:

Name
Provider
Link
Environment variables

rediscloud
redislabs
Cell
REDISCLOUD_URL, REDISCLOUD_ACCESS_KEY and REDISCLOUD_SECRET_KEY

redisdb
CruGlobal
Cell
REDISDB_DATABASE, REDISDB_HOSTNAME, REDISDB_PORT

rediscloud
DevopsHomeserve
Cell
REDISCLOUD_URL, REDISCLOUD_ACCESS_KEY and REDISCLOUD_SECRET_KEY

As we can see here, these environment variables vary between providers, and most importantly, vary from the open source redis software, which offers only REDISCLI_AUTH.
So, we will need to think of how to best-approach Terraform compatibility. In the meantime, I propose we push forward the current version, as there's significant value for Upstash and redis.com cloud users.

This is what Arun and I discussed earlier today.
The approach is to use 2 different credential usages (for 2 different credentials), 1 for cloud and 1 for local, and to provision them using the above strategies.
Here is each credential's structure:

Good to note: the local credential uses ACL provisioning when username is specified, and uses "legacy" password provisioning when username is not specified (because username is optional)

I did a functional test with local docker + ACL and it worked beautifully.

Those failing validation checks are tracked internally now. I think we'll need to discuss and conclude how we handle those as well before we can merge this PR.

@AndyTitu, thanks for all the feedback! I trust all changes have been addressed but let me know if you spot anything off.
I have also done a functional testing at the latest commit, https://github.com/1Password/shell-plugins/pull/276/commits/92af35eddb85552fd5aa3eafb3060c9fba4250dd, and all cases work well.

Regarding the merge conflict, I am going to rebase with main once the reviews are done. I could do that right now, but I have a feeling that pushing after the rebase will change the commit IDs? 🤔 So, I'll hold off now.

Those failing validation checks are tracked internally now. I think we'll need to discuss and conclude how we handle those as well before we can merge this PR.

This is the failing check:
✘ Has no more than one credential type defined. Plugins with multiple credential types are not supported yet
We no longer need this. I have confirmed by testing the latest version of redis plugin with the latest cli.

@AndyTitu Appreciate the feedback!
I built AddArgsAtIndex(1, argsMap) as suggested, but there's a sticky point with it. The only two valid indices would be: 1 and len(args), where 1 corresponds to immediately after the executable name and len(args) corresponds to the end of the command line. If one were to set a different value, including 0, provisioning breaks. This especially gets complicated when CLI programs stress importance on the order of flags.
One example is, redis handles redis-cli -h value -p value incr key and redis-cli incr hey -h value -p value differently. And if I were to do something like, AddArgsAtIndex(2, argsMap), that results in redis-cli incr -h value -p value key, which breaks entirely.
So, in https://github.com/1Password/shell-plugins/pull/276/commits/fe969f8134371df21450f78d0c27235ebd3f19b6, I have taken a different approach: AddArgs(provisionImmediatelyAfterExecutable bool, args ...string). The value set for provisionImmediatelyAfterExecutable controls where the provisioned arguments go.
Let me know what you think of this!

Thanks for the review/feedback, @jpcoenen! All suggestions have been addressed now.

Would it be possible to completely decouple this from that other PR by using a custom provisioner for Redis for now that sets both the environment variable and the arguments? Or would that add a lot of overhead?

@jpcoenen I chatted about it with @AndyTitu too, and we agree on decoupling this from the other PR with SDK-level arguments provisioner. So, I have removed it from the redis work and introduced a custom redis provisioner for now. I trust this is ready for one final review now.

Been a while since I last worked on this. Some progress notes and testing instructions below!
New changes:

Changes made in https://github.com/1Password/shell-plugins/pull/276/commits/47d5292eb521fc6b9d8ea544393e8991950673fc ensure that secrets are sourced from 1Password, but if an user provisions them manually as command line arguments, they are prioritized.
Authentication is not skipped by using these arguments.

Testing instructions:

Set up redis shell plugin with op plugin init redis-cli
Import host, port, username and password as part of the setup flow
Run a test command like redis-cli incr key. What happens behind the scenes is redis-cli -h <value> -p <value> --user <value> incr key (redis CLI requires that these flags are immediately after redis-cli and before the executing command. That's why we provision these flags at index 1), and the password is provisioned as a REDISCLI_AUTH environment variable.
Run a test command like redis-cli incr key -p 19261 or redis-cli -p 19261 incr key. These cases should be handled as well. Behind the scenes, the provisioner does redis-cli -h <value> -p 19261 --user <value> incr key and REDISCLI_AUTH for password.


Revert distillery v2.1.0

New version of distillery seems to cause an issue with mix release
bitnami@ip-172-31-23-146:~/cadet$ MIX_ENV=prod mix release --env=prod
** (Mix) The task "release" could not be found

Pull Request Test Coverage Report for Build 2518

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 95.829%

Totals

Change from base Build 2514:
0.0%

Covered Lines:
850

Relevant Lines:
887

💛  - Coveralls


TypeError: null is not an object (evaluating 'data.mdx')

After the development build I'm getting the error:

TypeError: null is not an object (evaluating 'data.mdx')

After viewing the page local the following syntax is highlighted:

export default function IndexPage({ data  })

which is located in src/pages/index.js.

Hmmm... that's odd. Which version of gatsby are you using (yarn list gatsby)?
Did that happen on the first build? If not, could you try clearing your cache: gatsby clean && yarn dev?
If you just remove src/pages/index.js, does the site build successfully?

The versions are the latest ones. If I exclude src/pages/index.js the site builds except for the start page, due to the missing index file. Very weird indeed. There must be some conflict with index.js.


Path fix

Fixes issue #29
take a look @eeaston

Also, I added in the badge for coveralls, since its needed to enable coveralls

Good stuff, thanks!


Allow to resize image by fraction or percentage

Currently ResizeImage / ui.instantiateImageCodec only supports resizing image by pixels which requires us to know the dimension of the image prior to resize, also flutter doesn't provides a way to get image dimension without fully decoding, so it would be useful if we can resize them image relative to its original dimension by using fraction or by percentage.

Related: https://github.com/flutter/flutter/issues/50022

I'm a little skeptical about how useful this would be.
The purpose of resizing to pixels is to make sure the image won't use more memory than you expect. But a fraction of an image you don't know the dimensions of could still be enough to OOM your application, or it might make the image into a 1x1 pixel image.
If you could determine the size ahead of time, this would be somewhat more helpful, but then you could also pretty easily do a ratio or fractio nyourself.
Alternatively, you might want something where the cache width/height maintain the aspect ratio of the image, such that you could set the max dimension of the largest side of the image instead of needing to know the aspect ratio ahead of time.  Is that what you're looking for?  If so, then this bug is a duplicate of #48885

@dnfield
No, its not duplicate of #48885.
This can be used to resize image based on devicePixelRatio (eg, if devicePixelRatio is x and image is made for devicePixelRatio y then the image can be resized to a fraction of x / y).
Whereas ResizeImage or #48885 needs to know the size of widget therefore can't precache.

Ahh I see, so you might have an image where you know it's scale but you don't know its physical dimensions.  That makes sense.

I'm going to close this as a duplicate of #50022 - if we can get that resolved (let you determine the physical dimensions of an image before decoding it), this is really just a trivial extension, and probably something we wouldn't end up supporting directly in the framework anyway since it's kind of a niche use case.

Really need this!


OBS triggering

How would I load a project, rundown and trigger one or more templates from OBS/Streamdeck for full automation?

Hey, version 1.0.8 introduced an API for triggering, See http://localhost:5000/api/v1 for a list of commands.
I will shortly release a javascript plugin for SPX-GC switch OBS scenes.

Hey, version 1.0.8 introduced an API for triggering, See http://localhost:5000/api/v1 for a list of commands.
I will shortly release a javascript plugin for SPX-GC switch OBS scenes.

See section streaming in the Readme. Let me know if you need more info.

See section streaming in the Readme. Let me know if you need more info.


Virtual Network VPN Gateway: no way to get the Pre Shared Key for the P2S connection

Currently, there is no API to allow user to get the Pre Shared Key for a P2S connection. The only way to get that key is via downloading the VPN profile and check it inside the profile.
Related Issues

terraform-providers/terraform-provider-azurerm#7777

Ping @ChenTanyi

Ping @@vpngwsuppgithub


Action Notify isnt working for Elasticsearch Service

Tried to email the resource-owner for the ESS domain. Even though there was a OwnerContact tag in the ESS domain , the action fails. the error message is "Unknown resource type elasticsearch" , when clearly it has that resource type.
i tried using a specific email address in the "To:" section of notify , and it works fine, but that wont do any good.
can you let me know whats going on, or can you help resolve this?

thats because the mailer formatter needs to be made elasticsearch aware afaik

it would be helpful to have the traceback, its unclear if your talking about the mailer or custodian.

its about the mailer

the mailer should auto fall back to an ugly json representation, there's really not enough details here to understand what your referencing.

Would this help?
14:43:28
[INFO] 2016-12-08T14:43:28.615Z ae6696a6-bd54-11e6-8c58-f94bb7d2db37 Got account:cof-sts-dev message:17a9c3da-3062-4ba3-b036-5e0549e50b9f elasticsearch:2 policy:elasticsearch-delete recipients:resource-owner, event-owner

14:43:28
Unknown resource type elasticsearch
[INFO] 2016-12-08T14:43:28.616Z ae6696a6-bd54-11e6-8c58-f94bb7d2db37 No resource owner found for
{
"ElasticsearchClusterConfig": {
"DedicatedMasterEnabled": false,
"InstanceCount": 1,
"ZoneAwarenessEnabled": false,
"InstanceType": "t2.micro.elasticsearch"
},

re elasticsearch unknown type, thats just a warning, before it defaults to json on the mailer, not an issue.


chore: release 2.9.1

:robot: I have created a release *beep* *boop*
2.9.1 (2024-07-26)
Bug Fixes

deploy: panic on --synchronization=kubernetes://... (f4a0e39)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/werf/werf/releases/tag/v2.9.1 :sunflower:


Introduce hacky support for kind composition

This PR introduces (hacky! early!) support for composition of Composable kinds into Resource kinds.
The eventual goal is that we can describe kind composition declaratively in enough detail that all the work of doing composed validation can be handled generically here in the base kind implementations provided by kindsys. Doing so is prerequisite to doing full, composed validation on the apiserver, rather than having to rely webhooks (which would get pretty noisy).
For now, though, the implementations have to be hardcoded per-kind. I'm pulling up a corresponding PR in Grafana that does that for dashboards.

Need to fix up tests, but this is working as-is for composed dashboard validation over in grafana/grafana

CI passing now.
We don't have a direct way of testing this in kindsys right now, but we will once we have a corpus. For now, best thing is just knowing that it works in core, for dashboards (see grafana/grafana#72934)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.sam boyer seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Remove copy statements in sea ice metrics

Remove copy statements to reduce memory needs in sea ice metrics.
With local testing this reduced max memory usage for the Arctic section from 12 -> 8GB, so it seems to help.

@lee1043 @durack1 I don't see a way to test this branch in Jason's prototype PMP binderhub link, but it runs on Gates and should reduce some of the memory usage.

@jasonb5 just looping you in on this thread, so we can try and sync concurrent changes to get to the final binder config that works seamlessly.
Any suggestions for @acordonez to get these changes merged into your working update-binderhub branch?

@acordonez I just took a quick peek at code, and if you wedge this somewhere, you could call this to report resource usage throughout code execution:
>>> import gc, resource
>>> import numpy as np
>>> def getResources():
...     memGb = "{:05.2f}".format(np.float32(resource.getrusage(resource.RUSAGE_SELF).ru_maxrss)/1.e6)
...     pyObj = "{:08d}".format(len(gc.get_objects()))
...     print("Resources:", memGb, "Gb;", pyObj, "pyObjs in memory")
...
>>> getResources()
Resources: 00.03 Gb; 00021319 pyObjs in memory

I just wedged this into the driver file as a test, I can push this to your branch if you like?

@durack1 @lee1043 I can shave off another gig of max usage by removing the .compute() in L397 but that would limit the code to only working with observations in single files. Which is fine for the demo but not in general.

@durack1 I'm doing something like that in my code locally, just don't want to commit it.

@acordonez, just curious what if use open_mfdataset instead of open_dataset at L385? open_mfdataset should work for a single file as well. Can you remind me what .compute actually does?

Deleted my last comment about the .compute() statement, it actually doesn't seem to make a difference when looking at multiple runs.

@lee1043 using open_mfdataset increases my max memory use back up, to 11GB. So it's better to use open_dataset if there's only one file to open in terms of memory.

Masking out the eight different regions is where the memory usage jumps from 3 to 7.5GB, so even though I'm not making new copies directly the program still uses more space for that.

@lee1043 using open_mfdataset increases my max memory use back up, to 11GB. So it's better to use open_dataset if there's only one file to open in terms of memory.

a plus ~3Gb/~50% delta using a different function, woah, this is bad!

@durack1  @lee1043   I've just been testing the Arctic section of the code; but with rearranging some steps and heavily using the del statement, I've been able to get the max memory usage down to 5.8GB. That's roughly half of what it was originally. I don't know if we can get it much lower than that. I need to clean up the code before I can push it but it could be ready sometime this afternoon.

@durack1 @lee1043 I've just been testing the Arctic section of the code; but with rearranging some steps and heavily using the del statement, I've been able to get the max memory usage down to 5.8GB. That's roughly half of what it was originally. I don't know if we can get it much lower than that. I need to clean up the code before I can push it but it could be ready sometime this afternoon.

This sounds like great progress. If we can get that merged into main then hopefully @jasonb5 should be able to rebase his branch, we can test, and hopefully get this env and binder notebook example working. If we can get these changes done today, it will allow me to ping the LANL folks for them to test too

@sashakames just looping you on this thread, as this real-world example of resource usage is probably something that would be useful in the ESGF2-US project discussions

@durack1 No this is 5.8 GB for just the Arctic section of the driver code, tested on the command line.

Ah ha, ok. It might be useful to run through the whole thing, so we can ascertain the MAXIMUM memory usage, and if the nimbus machine can support it, bump each binder environment (likely ~40 concurrently) from 10240 to whatever this max usage is, plus a buffer

@acordonez just in case it's useful, I just found https://github.com/pythonprofilers/memory_profiler/ - which appears to be alive on conda-forge (here the noarch version looks like the latest release 0.61)

@acordonez here are a couple of other tidbits:
https://github.com/pydata/xarray/issues/3200#issuecomment-1416446874 - using xr.set_options(file_cache_maxsize=1) ensured memory was released
https://github.com/pydata/xarray/issues/7018#issuecomment-1242793638 - using explicit dimension chunking to reduce memory usage (presumably this gets around the netcdf memory leak, e.g. ds = xr.open_dataset(fldr_in_grib, engine="cfgrib", chunks={"latitude":875}, backend_kwargs={'indexpath': ''}))
And another some others with no solutions https://github.com/pydata/xarray/issues/7397, https://github.com/pydata/xarray/issues/7404

@durack1 Thanks. I'm working on a general fix for the regions since that made a big difference for the Arctic, then I can see if any of the profilers show other spots for improvement.

@durack1 Thanks. I'm working on a general fix for the regions since that made a big difference for the Arctic, then I can see if any of the profilers show other spots for improvement.

Perfect! I think while it's a little painful, we're learning alot here.
The comment I made about suppressing warnings, that could also be caught quickly (e.g. here), although we'll have to be careful about using this when we could be suppressing really useful debugging info from users that are going to want to play outside of the basic notebook template
import warnings
warnings.simplefilter("ignore")

@acordonez just a little python hack, you can use var()["varName"] = something*somethingElse as a way of dynamically assigning variables (so looping through a list of variable names). This approach has saved me ALOT of code repeats in years gone by

@lee1043 @durack1 I've pushed my fix to lower the memory usage of the regional subsetting. This did result in some refactoring of the model loops, and there are some small changes to the resulting metrics values. See my main comment as well. I've pushed a rerun version of the notebook.
@durack1 Adding this to the sea ice driver did not suppress warnings for me. I can try some other things later but need to run now.
import warnings
warnings.simplefilter("ignore")

@acordonez thank you for the update! The numbers in JSON are consistent before and after the change, they are not different at least until 3rd decimal point.

@acordonez thank you for the update! The numbers in JSON are consistent before and after the change, they are not different at least until 3rd decimal point.

@lee1043 I did spot a couple of changes (there are likely a couple of extras that I missed)

0.0878 (old) vs 0.1074 (new) - this is MIROC6-np-r1i1p1f1-OSI-SAF-monthly_clim
83.8321 vs 83.5771 - MIROC6-antarctic-r2i1p1f1-OSI-SAF-monthly_clim also io, ca
0.6767 vs 0.5282 - E3SM-1-0-sp-r1i2p2f1-OSI-SAF-monthly_clim, also arctic

@acordonez thank you for the update! The numbers in JSON are consistent before and after the change, they are not different at least until 3rd decimal point.

@lee1043 I did spot a couple of changes (there are likely a couple of extras that I missed)
* 0.0878 (old) vs 0.1074 (new) - this is MIROC6-np-r1i1p1f1-OSI-SAF-monthly_clim

* 83.8321 vs 83.5771 - MIROC6-antarctic-r2i1p1f1-OSI-SAF-monthly_clim also io, ca

* 0.6767 vs 0.5282 - E3SM-1-0-sp-r1i2p2f1-OSI-SAF-monthly_clim, also arctic

I think @durack1 caught the worst changes. I edited the main comment to add more details about how the calculations changed.

@lee1043 bummer, I just ran the code (pre this PR merge) and maxed out memory even with the 16384 MB limit, so this refactoring is required in order for the notebook to work with the update config.
Once this is merged, I'll take another try

Also if we add
import logging
logging.getLogger('xcdat').setLevel(logging.ERROR)

to all files calling xcdat, then we suppress those annoying warnings, voila - this cleans up the output for users alot

Also if we add
import logging
logging.getLogger('xcdat').setLevel(logging.ERROR)

to all files calling xcdat, then we suppress those annoying warnings, voila - this cleans up the output for users a lot. It seems to work in the sector and line plotting scripts, but dropping it into pcmdi_metrics.io.base didn't seem to catch it for the obs files

@durack1 if you got this working on your end would you be able to open a PR for it? The suppress warnings statement has not worked for me inside the PMP code.

@durack1 @lee1043 Should I merge this PR now? It sounds like some other ideas have come up in the chat that aren't related to this specific fix, which we can address in other PRs.

@acordonez yes please. By merging this PR we can start testing the binderhub, and additional edits can be handled by a separate PR.


[CHANGE ME] Re-generated to pick up changes from self.

This PR was generated using Autosynth. :rainbow:
Synth log will be available here:
https://source.cloud.google.com/results/invocations/34f6db97-4cbc-4100-8dbc-62073975f096/targets

[ ] To automatically regenerate this PR, check this box.

We have not fully released policy-troubleshooter, will leave this PR until then.

We have not fully released policy-troubleshooter, will leave this PR until then.


When I had three items left, each with 32 files, the program split one group of access & preservation files across two access objects and started the first half of the second Montrose voice issue in the third access space.

I will say it looked like the program tripped up due to an excel file I also have in the same directory.

Invalid since the filenames were missing _pm to classify the image as a preservation file during auto assign.


Accessing previous versions of CHEBI

In the obo format version of CHEBI, the data-version field is a number like '136'
According to the obo2owl spec, this is translated to
http://purl.obolibrary.org/obo/chebi/136/chebi.owl
Which is how it shows up in the latest release in http://purl.obolibrary.org/obo/chebi.owl
However, these do not resolve.
If you can provide an ftp location with historic versions of the obo and the owl (using the official conversion - see  #3105 ) then I can help you set up the purls.

@cmungall we have created an archive from release 100 in the ftp folder. ftp://ftp.ebi.ac.uk/pub/databases/chebi/archive/

Can you use the date saved to create the versionIRI instead of the data version field? Put the data version field in some other property.

@alanruttenberg -- versionIRI is syntactically coupled to data-version at the level of the OBO/OWL translation.
However, it would be possible to move the current integer version into an entirely new field and reserve data-version/versionIRI for ISO-8601 OBO-style version info. The question for OBO is how much we want to enforce one particular versioning scheme, especially for ontologies like CHEBI with pre-existing schemes, and the question for CHEBI is it worth the churn for them to change


Replace the sciety-demo database with a Postgres run by the operator in the cluster

First attempt:
{"timestamp":"2024-05-16T10:32:25.060Z","level":"info","message":"Database connection pool and logger available","payload":{"databaseHost":"sciety--demo-primary.sciety.svc"}}
Unable to start:
{
  "length": 161,
  "name": "error",
  "severity": "FATAL",
  "code": "28000",
  "file": "auth.c",
  "line": "502",
  "routine": "ClientAuthentication"
}
Error object: {
  "length": 161,
  "name": "error",
  "severity": "FATAL",
  "code": "28000",
  "file": "auth.c",
  "line": "502",
  "routine": "ClientAuthentication",
  "message": "no pg_hba.conf entry for host \"<IP_ADDRESS>\", user \"sciety--demo\", database \"sciety--demo\", SSL off",
  "stack": "error: no pg_hba.conf entry for host \"<IP_ADDRESS>\", user \"sciety--demo\", database \"sciety--demo\", SSL off\n    at /app/node_modules/pg-pool/index.js:45:11\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
}

After changing the host to pgbouncer
Unable to start:
{
  "length": 33,
  "name": "error",
  "severity": "FATAL",
  "code": "08P01"
}
Error object: {
  "length": 33,
  "name": "error",
  "severity": "FATAL",
  "code": "08P01",
  "message": "SSL required",
  "stack": "error: SSL required\n    at /app/node_modules/pg-pool/index.js:45:11\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
}

Looks like our assumption/their docs were wrong. The pg library that we use reads the ENVVAR that libpg uses but most of them result in the same behaviour. We might want to use no-verify.
https://github.com/brianc/node-postgres/blob/81e2ff05247c58c152ed52f1cc7299d30cc89284/packages/pg/lib/connection-parameters.js#L21-L34

Dumping the last error we got to:
{"timestamp":"2024-05-16T13:58:51.467Z","level":"info","message":"Database connection pool and logger available","payload":{"databaseHost":"sciety--demo-pgbouncer.sciety.svc"}}
Unable to start:
{
  "code": "SELF_SIGNED_CERT_IN_CHAIN"
}
Error object: {
  "code": "SELF_SIGNED_CERT_IN_CHAIN",
  "name": "Error",
  "message": "self-signed certificate in certificate chain",
  "stack": "Error: self-signed certificate in certificate chain\n    at /app/node_modules/pg-pool/index.js:45:11\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
}

Also to compare, RDS can provide SSL too, and does as a default from Postgres 15; when it does, it requires a certificate to be provided to the client for verification:
> $ psql "host=db-name.555555555555.ap-southeast-1.rds.amazonaws.com \
  port=5432 dbname=testDB user=testuser sslrootcert=rds-ca-rsa2048-g1.pem sslmode=verify-full"

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html#PostgreSQL.Concepts.General.SSL.Requiring

@giorgiosironi @erkannt To avoid alerts firing all evening, I've applied this patch which has allowed sciety to deploy successfully.
Not sure where you're thinking is at with regards to packaging sciety to be able to connect via TLS or not, but at least the option to not have it works if config is set correctly.


Remove informational log message in FUIFirestoreCollectionViewDataSource.m

In FUIFirestoreCollectionViewDataSource.m in line 136-137 the datasource prints the contents of the FUISnapshotArrayDiff to the console.
NSLog(@"Updated with diff: %@", diff);
NSLog(@"Total: %ld", (long)_collection.count);

This quickly clutters the console output, which should IMHO contain errors and warnings only. My guess is that this is a leftover from development and could be removed.

Fixed in 4.5.3.

Still getting it with the 4.5.4 pod although it seems to be removed from code. Maybe it didn't make it in the pod?

This should be fixed for real this time in 4.5.5.


Microsoft.Extensions.DependencyInjection\1.0.0-rc2-15877 being loaded and causing Method not found :AddInstance

I am trying to do integration tests using Microsoft.AspNet.TestHost which uses the Microsoft.AspNet.Hosting package, and I am getting this error:
Method not found: 'Microsoft.Extensions.DependencyInjection.IServiceCollection Microsoft.Extensions.DependencyInjection.ServiceCollectionExtensions.AddInstance(Microsoft.Extensions.DependencyInjection.IServiceCollection, !!0)
Under debug its loading Microsoft.Extensions.DependencyInjection\1.0.0-rc2-15877 which is the older version. I am not sure what I am doing wrong:
var  _server = new TestServer(TestServer.CreateBuilder().UseStartup< Foo.FrontEnd.Startup>());
my packages :
"Microsoft.AspNet.TestHost": "1.0.0-rc1-final",
"Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final",

Can you share your whole project.json? You should not mix RC1 and RC2 packages due to breaking changes.

{
"version": "1.0.0-*",
"description": "VideoStore.Tests Class Library",
"authors": [ "kwiri" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"frameworks": {
"dnx451": {
"dependencies": {
"Moq": "4.2.1312.1622",
"xunit": "2.1.0-rc2-build3176",
"xunit.runner.dnx": "2.1.0-rc1-build204",
"FluentAssertions": "4.2.1",
"Microsoft.AspNet.TestHost": "1.0.0-rc1-final",
"Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final",
"Microsoft.AspNet.Hosting": "1.0.0-rc1-final"
  }
}

},
"dependencies": {
"Foo.FrontEnd": "1.0.0-",
"Foo.Security": "1.0.0-"
},
"commands": {
"test": "xunit.runner.dnx"
}
}

Thanks about the part mixing rc2 qnd rc1 seems to be an issue with entity framework  I had EntityFramework.MicrosoftSqlServer with rc2 something changed it to 7.0.0-rc1-final .Its not an issue with Microsoft.AspNet.Hosting


Fixed typo in error message

Apologies for submitting a PR for a typo, but it appears in a fairly common error message and so felt worth fixing.

Haha how did we miss that :) Thanks a lot!

From a different perspective, that was a real "ambiguous" error message 😆 Merging & releasing asap.


UMUI puppet module throws up errors regarding /home/access_ui

resolution_fixed   |    by ibc599

Several error messages regarding the umui module are generated when puppet update is executed on accessdev.
Error: Could not remove existing file Error: /Stage[main]/Umui/File[/home/access_ui]/ensure: change from directory to link failed: Could not remove existing file
Warning: /Stage[main]/Umui/Exec[/usr/local/umui/ghui3.0/build/gen_scripts]: Skipping because of failed dependencies
Warning: /Stage[main]/Umui/Exec[/usr/local/umui/ghui3.0 /bin/auto_check umui PRIMARY]: Skipping because of failed dependencies
Warning: /Stage[main]/Umui/File[/usr/local/umui/home/testDBSE/_DELETED_]: Skipping because of failed dependencies
This may cause a failure of the umui installation when accessdev is rebooted.

Issue migrated from trac:10 at 2024-01-31 17:51:35 +1100

<EMAIL_ADDRESS>commented

What's the point of having the symlink to /home/access_ui? Could we do without it?

<EMAIL_ADDRESS>commented

Although, I realise now that we want the umui database to be backed up.
I guess that /home/access_ui is backed up, but /usr/local/umui is not?

<EMAIL_ADDRESS>changed owner from `` to pfu599

<EMAIL_ADDRESS>changed status from new to assigned

<EMAIL_ADDRESS>commented

At the moment /home/access_ui is a directory, rather than a symlink.
If we move it to /usr/local/umui/home, which is where the symlink is meant to point to, this should fix the problem.

<EMAIL_ADDRESS>commented

This is also related to #26. Since access_ui is only a local system account, does that mean the /home/access_ui will not be persistent?

<EMAIL_ADDRESS>commented

See also #28
Yeah, only contents of /home & /projects are persistent. NCI want to change the backup system for the production system as well, no idea what the differences will be.

<EMAIL_ADDRESS>commented

At the moment the UMUI runs as the 'access' user because of that very issue - originally we had a separate access_ui user. changeset:eb152234b4fc8943646cbf26d0030e3ef12b6f6f/puppet

<EMAIL_ADDRESS>changed milestone from Future to accessdev v1.0

<EMAIL_ADDRESS>changed status from assigned to closed

<EMAIL_ADDRESS>changed resolution from `` to fixed

<EMAIL_ADDRESS>commented

These errors have been fixed.

<EMAIL_ADDRESS>removed milestone (was accessdev v1.0)

<EMAIL_ADDRESS>commented

Milestone accessdev v1.0 deleted


requirements: bump werkzeug for CVE

All version <3.0.1 have a CVE:
https://nvd.nist.gov/vuln/detail/CVE-2023-46136
The release notes for 3.0 are relatively small:

Remove previously deprecated code. #2768

Deprecate the version attribute. Use feature detection, or importlib.metadata.version("werkzeug"), instead. #2770

generate_password_hash uses scrypt by default. #2769

Add the "werkzeug.profiler" item to the WSGI environ dictionary passed to ProfilerMiddleware’s filename_format function. It contains the elapsed and time values for the profiled request. #2775

Explicitly marked the PathConverter as non path isolating. #2784

Jobserv does the PathConverter. However, we've tested this patch in gavelci.us w/o any issues.

I guess you want to bring this same upgrade to our API, right?

Correct. Our jobserv-heracles pulls this in as a submodule.
I'll also be doing a similar change for ota-lite later today.

also deployed/tested in meds. will do production after my lunch


[Solved] Building windows client

ALL DONE

echo '[Done src/electron/build]'
[Done src/electron/build]
• electron-builder version=20.13.3
• description is missed in the package.json appPackageFile=/Users/peter/devel/outline/outline-client/build/windows/package.json
• author is missed in the package.json appPackageFile=/Users/peter/devel/outline/outline-client/build/windows/package.json
• writing effective config file=build/windows/dist/electron-builder-effective-config.yaml
• installing production dependencies platform=win32 arch=ia32 appDir=/Users/peter/devel/outline/outline-client/build/windows
• packaging       platform=win32 arch=ia32 electron=1.8.6 appOutDir=build/windows/dist/win-ia32-unpacked
Error: Exit code: ENOENT. spawn prlctl ENOENT
at /Users/peter/devel/outline/outline-client/node_modules/builder-util/src/util.ts:124:16
at exithandler (child_process.js:301:5)
...

@hwnahm I need more information before I can help, e.g.:

version of Windows
version of Node
version of yarn
which command you ran

version of Windows : I did it on my mac.
version of Node : v11.4.0
version of yarn : 1.12.3
which command you ran : yarn do src/electron/release

Do I need Parallels desktop?

After install Parallels Desktop and Windows 10 Home the error message is changed.
Error: Cannot find certificate Jigsaw Operations LLC, all certs:
What I have to solve this issue? I need to buy a code signing certificate?

ALL DONE

echo '[Done src/electron/build]'
[Done src/electron/build]
• electron-builder version=20.13.3
• description is missed in the package.json appPackageFile=/Users/peter/devel/WTVPN/windows-v1.2.23/build/windows/package.json
• author is missed in the package.json appPackageFile=/Users/peter/devel/WTVPN/windows-v1.2.23/build/windows/package.json
• writing effective config file=build/windows/dist/electron-builder-effective-config.yaml
• no native production dependencies
• packaging       platform=win32 arch=ia32 electron=1.8.8 appOutDir=build/windows/dist/win-ia32-unpacked
Downloading tmp-7919-1-SHASUMS256.txt-1.8.8
[============================================>] 100.0% of 5.74 kB (5.74 kB/s)
Error: Cannot find certificate Jigsaw Operations LLC, all certs:
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/windowsCodeSign.ts:114:12
at Generator.next ()
From previous event:
at getCertificateFromStoreInfo (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/windowsCodeSign.ts:123:2)
at vm.value.then.vm (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/winPackager.ts:30:47)
From previous event:
at Lazy.WinPackager.cscInfo (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/winPackager.ts:30:11)
at Lazy.get value [as value] (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/lazy-val/src/main.ts:18:23)
at Lazy. (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/winPackager.ts:94:14)
at Generator.next ()
From previous event:
at Lazy.get value [as value] (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/lazy-val/src/main.ts:18:23)
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/publish/PublishManager.ts:206:25
at Generator.next ()
From previous event:
at getAppUpdatePublishConfiguration (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/publish/PublishManager.ts:215:2)
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/publish/PublishManager.ts:84:9
at Generator.next ()
From previous event:
at PublishManager.packager.addAfterPackHandler (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/publish/PublishManager.ts:91:6)
at _bluebirdLst.default.each.it (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/packager.ts:467:49)
From previous event:
at Packager.afterPack (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/packager.ts:467:28)
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/platformPackager.ts:231:21
at Generator.next ()
at processImmediate (timers.js:632:19)
From previous event:
at WinPackager.doPack (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/out/platformPackager.js:410:7)
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/platformPackager.ts:117:16
at Generator.next ()
From previous event:
at WinPackager.pack (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/out/platformPackager.js:275:7)
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/packager.ts:373:24
at Generator.next ()
at xfs.stat (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/fs-extra-p/node_modules/fs-extra/lib/mkdirs/mkdirs.js:56:16)
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/graceful-fs/polyfills.js:287:18
at FSReqCallback.oncomplete (fs.js:161:5)
From previous event:
at Packager.doBuild (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/out/packager.js:615:7)
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/packager.ts:317:52
at Generator.next ()
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/graceful-fs/graceful-fs.js:99:16
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/graceful-fs/graceful-fs.js:43:10
at FSReqCallback.args [as oncomplete] (fs.js:147:20)
From previous event:
at Packager._build (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/out/packager.js:542:7)
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/packager.ts:290:23
at Generator.next ()
at processImmediate (timers.js:632:19)
From previous event:
at Packager.build (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/out/packager.js:501:7)
at /Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/src/index.ts:51:40
at Generator.next ()
From previous event:
at build (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder-lib/out/index.js:220:17)
at build (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder/src/builder.ts:234:10)
at then (/Users/peter/devel/WTVPN/windows-v1.2.23/node_modules/electron-builder/src/cli/cli.ts:43:10)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Building on Windows shows ….
/tmp/yarn--1544940084518-0.6677318644823458/node: line 3: C:\nodejs\node.exe: command not found
$ yarn do src/electron/build
yarn run v1.12.3
$ bash ./scripts/do_action.sh src/electron/build
++ git rev-parse --show-toplevel

export ROOT_DIR=/home/peter/outline-client
ROOT_DIR=/home/peter/outline-client
export BUILD_DIR=/home/peter/outline-client/build
BUILD_DIR=/home/peter/outline-client/build
export -f do_action
do_action src/electron/build
local action=src/electron/build
echo '[Running src/electron/build]'
[Running src/electron/build]
shift
/home/peter/outline-client/src/electron/build_action.sh
/cygdrive/c/Users/peter/AppData/Roaming/npm/yarn do src/www/build
/tmp/yarn--1544940084518-0.6677318644823458/node: line 3: C:\nodejs\node.exe: command not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Building outline windows client on MacOS

Install Parallels Desktop (Evaluation Version works fine) and Windows 10
Create self-signed certificate
on windows powershell : New-SelfSignedCertificate -Subject "CN=Jigsaw Operations LLC" -Type CodeSigning -CertStoreLocation Cert:\CurrentUser\My
yarn do src/electron/release

then ./build/windows/dist/Outline-Client.exe will be made.

@hwnahm yarn do src/electron/release builds a signed binary while yarn do src/electron/package builds an unsigned binary. Please use the latter: creating a self-signed binary in someone else's name is likely to cause you problems at some point.


Accept Iterable as argument to SslContextBuilder methods.

Motivation:
It is common, especially in frameworks, for the parameters to SslContextBuilder methods to be built up as a List or similar Iterable. It is currently difficult to use SslContextBuilder in this case because it requires a conversion to array.
Modification:
Add overloads for methods that accept varargs to also accept Iterable, delegating by copying into an array.
Result:
Fixes #9293
Sorry for the long delay

@netty-bot test this please

@anuraaga thanks a lot and no worry :)


Some minor changes

Hi Vincent,
I've had some problems when trying to analyze some 1-day long files with g.report.part5, the number of columns do not match with the rest of the files, so rbind cannnot add the new rows. I have done a minor change in g.report.part5 to overcome this.
Also, I have change the "includenightcrit" parameter to 16 as default as we were talking recently and I have included the "acc.metric" argument to g.shell.GGIR.
Best,
Jairo

Codecov Report

Merging #79 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master      #79   +/-   ##
=======================================
  Coverage   57.42%   57.42%
=======================================
  Files          54       54
  Lines        7867     7867
=======================================
  Hits         4518     4518
  Misses       3349     3349

Impacted Files
Coverage Δ

R/g.shell.GGIR.R
0% <ø> (ø)
:arrow_up:

R/g.part4.R
68.24% <ø> (ø)
:arrow_up:

R/g.report.part5.R
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Handle orphan default keys

What problem does this PR solve?
Issue Number: close #7836
Problem Summary:
Allow duplicate key-value in raftstore v2 mode
What is changed and how it works?
Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-all-tests

/merge


Simulator's copy text button for console output does not produce Windows text file

Describe the bug
The simulator has a useful feature to be able to save the console output as a text file or a csv file. The button which saves as a text file, marked copy text, uses the browser to save the file. A browser running on Windows produces files where the lines use an LF (0x0a) character to terminate them. Perhaps the underlying data is written like this but this creates a text file which does not conform to the Windows standard for text files and cannot be opened correctly in default tools like notepad.
Observed on 0.14.3 5.21.6.
Perhaps this applied to the Windows 10 app which has connectivity over USB for the console output ofthe hardware Arcade devices too? I've not used this.
To Reproduce
Steps to reproduce the behavior:

Write a program which writes a few lines at least to console output.
Run in simulator.
Click copy text button and save the file.
Inspect file.

Expected behavior
I would expect a text file to be written in the approrpiate format for the platform where the browser is running.
Screenshots
Code to reproduce:

What it looks like in notepad:

Actual file:
arcade-console-24-2019-14-09-04-0100.txt
Desktop (please complete the following information):

OS: Windows 8.1
Browser: Chrome
Version: 6.0.3809.100

Device (please complete the following information):

Device: n/a

Additional context

Works fine on windows 10.

Can you retry and let us know.

Retrying the same thing on the same operating system is unlikely to yield a different result.
Can you attach the file from windows 10?

arcade-console-04-2019-11-33-39-0700.txt

I would guess the difference is https://devblogs.microsoft.com/commandline/extended-eol-in-notepad/, as it looks like that just as unix line endings to me
Joey:device::addNewImages$ cat -ve ~/Downloads/arcade-console-04-2019-11-33-39-0700.txt
test$
this$

Windows 10 example is broken wrt respecting the local text file format. I'd imagine that notepad is more accommodating of different types of text files on Windows 10.
$ wget -q 'https://github.com/microsoft/pxt-arcade/files/3575975/arcade-console-04-2019-11-33-39-0700.txt'
$ hexdump -C arcade-console-04-2019-11-33-39-0700.txt               00000000  74 65 73 74 0a 74 68 69  73 0a                    |test.this.|
0000000a

Can you reopen this?

Fixed


Non-www domain doesn't point to site

To Reproduce
Steps to reproduce the behavior:

Visit https://toiletmap.org.uk.
The website doesn't load
Visit https://www.toiletmap.org.uk
The website does load

Expected behavior
I expect the website to load correctly in both cases.

@marxian ping :)

Still an issue @marxian

@jthistle Y'know, after much messing with DNS settings  (and maybe a little unintended outage) I think this is working, finally, as intended.
Please confirm, ideally sometime on-or-after 24th Feb when the changes have propagated.

I can confirm it now, actually - it seems to be working fine for me. Nice job! Closing this, I guess.


Handle traffic generated by other bots

Currently the bot is also re-posting other bot content.
Filter out bot traffic to focus on human-generated content.
Implementation ideas 💡

filter out at the code level - only works for accounts that have the bot setting on
mute selected accounts

implementation ideas are not mutually exclusive - i.e. filter out at the code level while also manually mute offending account that don't have bot setting enabled

Started by muting. Let's see how that goes now.

Filtering implemented in #4

Closing after doing some testing


offhour filter without tag

The schema output of the offhour filter does not have tag as required. This to me indicates that it should work without looking for a tag. This is ideal for our use case because we always want to shutdown sandbox instances in the evening but do not wish to turn them back on with cloud custodian. We run the policy periodically with a scheduler so tagging is redundant.
The following does not result in instance shutdowns:
  - name: daily-sandbox-shutdown
    resource: ec2
    comment: EC2 servers in sandbox environments are shutdown daily at 8pm

    filters:
        - type: offhour
          offhour: 20
          default_tz: est
    actions:
      - stop

It does work when the tag element is specified. It seems there is either a bug with the filter or the filter schema should require tag?

It does not require a tag because it uses the default tag maid_offhours if no tag is supplied.
See: http://www.capitalone.io/cloud-custodian/docs/quickstart/offhours.html#tag-based-configuration
Please re-open if you have further questions.


[question] reselect, about compute derived data.

I  read your code and your article.
But I think I can compute derived data in my reducer. So is it necessary to put the compute logic within mapStateToProps?
example:
when I fetch bookList data from server, I can compute the price derived data within my reducer.
There is no reason put this logic within mapStateToProps. So it can avoid the duplicated compute?
Am I right?

It don't work for windows


Feature: switch language

closes https://github.com/litecoin-foundation/loafwallet-android/issues/223
https://user-images.githubusercontent.com/10891720/126160172-e7e67ef9-e521-43cc-b05a-0ce3f499749f.mp4

@RyanPetter @kcw-grunt The PR is ready for the review.


[FEATURE] Add License Header to the newly added java file when we perform spotlessApply

Is your feature request related to a problem?
During code development, we need to manually add license header to the code. It would be nice if spotlessApply can add this license header automatically.
We need to do something similar like this
What solution would you like?
A clear and concise description of what you want to happen.
What alternatives have you considered?
A clear and concise description of any alternative solutions or features you've considered.
Do you have any additional context?
Add any other context or screenshots about the feature request here.

Note the setup (linked above) to flow-framework will replace all headers in all files.  You'll need to add some exclusions to files which have custom headers, for example files in this package.


Uncaught Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs.

I'm unable to use Material UI at the moment because every time I try to compile my code and run it on the client, it fails. If I pipe down the rendered React output to the client, I get this error...
Warning: React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server:

... and then it goes on to tell me that the rendered markup differs where the Material UI component is. Am I not supposed to pipe the rendered markup to the client anymore, or am I doing something wrong?
When I remove the rendered markup from the client, that warning goes away, however the core problem still subsists. Attempting to hover over a RaisedButton or click it etc, is throwing errors such as these:
Uncaught Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component's `render` method, or you have multiple copies of React loaded
Uncaught TypeError: Cannot read property 'isKeyboardFocused' of undefined
Uncaught TypeError: Cannot read property 'componentWillLeave' of undefined

Here is a simplified version of the code I have which is causing me these issues:
const React = require('react');
const RaisedButton = require('material-ui/lib/raised-button');

const app = React.createClass({
  render: function(){
    return(
      <div>
        <RaisedButton label="someLabel" />
      </div>
    );
  }
});

module.exports = app;

I'm compiling my application using webpack v1.5.0, using material-ui v0.14.2
Any help is greatly appreciated - thanks.

Seems to be be related to #2818. Does not ?

@dagatsoin Ah thank you!! That fixed my problem with that particular error, however I still get the warning if I try to pipe down the rendered markup to the client. Is this intended or is there a way around this?

Sorry I don't know about the warning.

however I still get the warning if I try to pipe down the rendered markup to the client.

@nickzuber I doubt that's an issue with material-ui. At the moment, that's true we have some issues with the server-side rendering, but that's only affecting the style. Here, that looks like a more serious issue.

After some snooping around, I found the solution to my other issue with the client and server data not matching here:
https://github.com/callemall/material-ui/pull/2172#issuecomment-157404901
All of the problems I've encountered have been resolved, thanks everyone who helped!

rm -rf node_modules && npm install solved this for me

I too faced the same problem when I have different versions of React installed by npm during material-ui installation.
Then I updated npm to 3.x, uninstalled material-ui, updated react to 15.3 and installed material-ui again. And now its working fine for me.
Thanks for all who helped me by their posts.


Add correlation id to oVirt provider requests

Setting the correlation id would allow us to see which migrationtriggered an action on oVirt and make it easier to debug.
Example:
2022-07-11 17:28:16,138+03 INFO  [org.ovirt.engine.core.bll.snapshots.CreateSnapshotForVmCommand] (default task-116) [copy-of-plan-1657549684863] Lock Acquired to object 'EngineLock:{exclusiveLocks='[27bc786a-f52b-4f3b-b3da-25a4dced467d=VM]', sharedLocks=''}'

I didn't see if this covers all places but it helped us quite a few times with rhv bugs, so sounds like a great idea!


Can't import csv file - bracket issues?

Can't load source file: https://raw.githubusercontent.com/BCODMO/frictionless-usecases/master/usecases/699169_Doliolid-CTD/orig/CTD DOLDIET004_JAN2016_CAST001.csv

Added this file and 19 others in usecase 699169_Doliolid-CTD

data file looks like this:

Tried doing skip rows with nothing "*" and "*" but all same result.  I don't think that is the problem since the Voltage column value 1 is in 1st row.

@cschloer you had some thoughts about the brackets being an issue, can you elaborate?

No thoughts other than if you change the brackets in the column names to parentheses (or remove them entirely) the data loads properly for that field. So it's an issue with a field name having a bracket. Maybe another regex problem?

Thanks. It's a tabulator problem - https://github.com/frictionlessdata/tabulator-py/issues/264. I'm working on resolving it.

Great! That will really help.  It is extremely common for our data submitters to include units in the column name in brackets.

It's fixed now with:
pip install --upgrade tabulator==1.22

Excellent! Thanks for the quick action.


Custom Pools

This is a very complex feature but one that can add super powers to Concord.
Current approach
Concord currently has Pools, which inherit from Lists to store Entities based on Filters. This Lists are unordered (see #33) and end up being redundant when used in conjunction with other form of Entity storage, like QuadTrees, Spatial Hashes, or parent-child relationships.
Generally when you need to store your Entities in one of this storage you would use the Pool:onEntityAdded and Pool:onEntityRemoved methods to hook into this events and keep your storage up to date with the List.
Problems
The biggest disadvantage with this, is that it's hard to maintain since these methods can only be accessed in the System instance (the first event where these are available is System:init). It needs to be hooked up on a per-Pool basis, and you need to make sure no two Pools are writing to the same storage, you also have some data duplication (the List and Storage both hold the same group of Entities)...
Proposal
So a proposal that can fix this issue is that the user could provide their custom Pool constructor in the Pool Definition, and this constructor would replace the List constructor that the Pool uses by default.
local SpatialSystem = Concord.system({
   pool = { "position", constructor = Spatialhash } --Pool Definition
})

The constructor (Spatialhash in the example above) would be a function or callable that takes the Pool Definition as argument (which it may ignore entirely or modify if needed) and it would return a Storage instance.
local Spatialhash = function (definition)
   -- Construct the Storage
   -- Modify definition if needed
   -- ...
   return Storage
end

Storage is any table (or similar) with the following methods:
local Storage = {}

function Storage:add (Entity)
   -- Add Entity to this storage
   -- Return value is ignored
end

function Storage:remove(Entity)
   -- Remove Entity from this storage
end

function Storage:has(Entity)
   -- Checks if the Entity exists in this storage
   return exists -- true if the Entity exists, false otherwise
end

function Storage:clear()
   -- Clears the entire Storage
end

This is all that Pools need internally, but the end user may add any other methods they deem necessary like a way to query for a group of Entities, or the ability to sort the Storage on request, etc.

A great benefit from this approach is that users can write and share their custom Storage constructors, and people would be able to just plug them into their System definitions without writing any custom logic around their Pools.

A great benefit from this approach is that users can write and share their custom Storage constructors, and people would be able to just plug them into their System definitions without writing any custom logic around their Pools.

What would modifying the Pool Definition in the constructor look like, and what benefits might that have?

What would modifying the Pool Definition in the constructor look like, and what benefits might that have?

I love this change over all! I think you figured out a very neat way of handling this.

I love this change over all! I think you figured out a very neat way of handling this.

What would modifying the Pool Definition in the constructor look like, and what benefits might that have?

Regarding this, you receive the complete table for the pool definition, so in the case above:
definition = {
   "position",
   constructor = Spacialhash
}

You could use this to pass arguments to the constructor (always using the hash part of the table, since the array is used by the filter).
Or your constructor could modify the table (since Concord hasn't created the Filter by then) and add more entries to the array part so that for example the filter ends up being { "position", "boundingBox" } for example.
You could also remove a component from it, or negate a component once #32 lands.

What would modifying the Pool Definition in the constructor look like, and what benefits might that have?

Regarding this, you receive the complete table for the pool definition, so in the case above:
definition = {
   "position",
   constructor = Spacialhash
}

You could use this to pass arguments to the constructor (always using the hash part of the table, since the array is used by the filter).
Or your constructor could modify the table (since Concord hasn't created the Filter by then) and add more entries to the array part so that for example the filter ends up being { "position", "boundingBox" } for example.
You could also remove a component from it, or negate a component once #32 lands.

This is super powerful functionality. I can actually convert some of my code to use this, as I have a component/system couple that I use to attach other components. This would allow me to do it on the pool itself. Interesting!

This is super powerful functionality. I can actually convert some of my code to use this, as I have a component/system couple that I use to attach other components. This would allow me to do it on the pool itself. Interesting!

I would suggest that if you intend to share a Custom Pool (Storage) then you should try to avoid much coupling with specific Components.
But you could ship both the Storage and the Components together or expose options through the Pool Definition.
So yeah this may be a big deal haha

I would suggest that if you intend to share a Custom Pool (Storage) then you should try to avoid much coupling with specific Components.
But you could ship both the Storage and the Components together or expose options through the Pool Definition.
So yeah this may be a big deal haha

@pablomayobre  can you put here as well the sample code you've send it discord for reference and example if ever other people wants to try it as wel

@pablomayobre  can you put here as well the sample code you've send it discord for reference and example if ever other people wants to try it as wel

Example LayerList.lua
This Custom Pool inherits from the built-in Lists, but extends the :add method to filter based on a value in the layer component the Entity must have.
local List = require("concord.list") -- Built-in List

-- Inherit from List
local LayerList = setmetatable({}, {
    __index = List,
})

LayerList.__mt = {
    __index = LayerList,
}

-- Extend the :add method to filter based on layer
function LayerList:add(e)
    -- Here we check that the id in the layer component
    -- matches the layer property of this LayerList
    if e.layer.id == self.layer then
        List.add(self, e) -- if so add it
        return true
    end

    return false
end

--Export the LayerList Constructor
return function(def)
    -- Create a new LayerList
    local self = setmetatable(List(), LayerList.__mt)

    -- Save the layer property in the LayerList
    self.layer = def.layer

     -- Add the layer component as a requirement
    table.insert(def, "layer")

    -- And don't forget to return the new Pool
    return self
end

Usage
local LayerList = require("LayerList")
local System = require("concord.system")

local RenderUI = System {
    uiLayer = {
        "render", "position"
        constructor = LayerList,
        layer = "ui",
    }
}

Example LayerList.lua
This Custom Pool inherits from the built-in Lists, but extends the :add method to filter based on a value in the layer component the Entity must have.
local List = require("concord.list") -- Built-in List

-- Inherit from List
local LayerList = setmetatable({}, {
    __index = List,
})

LayerList.__mt = {
    __index = LayerList,
}

-- Extend the :add method to filter based on layer
function LayerList:add(e)
    -- Here we check that the id in the layer component
    -- matches the layer property of this LayerList
    if e.layer.id == self.layer then
        List.add(self, e) -- if so add it
        return true
    end

    return false
end

--Export the LayerList Constructor
return function(def)
    -- Create a new LayerList
    local self = setmetatable(List(), LayerList.__mt)

    -- Save the layer property in the LayerList
    self.layer = def.layer

     -- Add the layer component as a requirement
    table.insert(def, "layer")

    -- And don't forget to return the new Pool
    return self
end

Usage
local LayerList = require("LayerList")
local System = require("concord.system")

local RenderUI = System {
    uiLayer = {
        "render", "position"
        constructor = LayerList,
        layer = "ui",
    }
}


Conditional questions causing plans to disapear

Plans that include a conditional question are disappearing. For example, a user can successfully create a plan from a template including a conditional question, but when they go back to view the plan, the plan will disappear from the page.
We temporarily fixed this issue by removing the conditional question from the template, but I believe this bug will be affecting all plans that include conditional questions.

@raycarrick-ed This seems to be related to issue I noticed when dealing with a bug for Maastricht. The plan sections container continues to have style="display:none". Will investigate.

@mariapraetzellis, @briri Not yet identified cause, but working on it. As I have an example which fails.

Just proved in broken case cause this rendering cuases everything in content_for to be surrouned by a display:none  block.
<%= render partial: 'phases/edit_plan_answers',
             locals: {
               plan: plan,
               phase: phase,
               answers: answers,
               readonly: readonly,
               base_template_org: base_template_org,
               guidance_presenter: guidance_presenter,
             } %>

Thanks @briri. A cursory test shows commenting out hide questions fixes issue.
Will tomorrow dig deeper as suggested in your comment.

I think @raycarrick-ed added this to the latest release, so I will close out here.

@pherterich I can't see it in https://github.com/DigitalCurationCentre/roadmap/commits/deploy/dmponline?before=99d780716fca202f19a6dcb7da40ce62edb52e76+35&branch=deploy%2Fdmponline&qualified_name=refs%2Fheads%2Fdeploy%2Fdmponline
It is possible has been patched by @raycarrick

It is patched and part of release 3.1.1 proper


iOS

Maybe this is really stupid, but, have some chance to do this work for iOS?

ExoPlayer is a component made by Google and will only work on Android. If you are looking for a mediaplayer for iOS i would recommend my other library: https://github.com/martijn00/XamarinMediaManager/blob/master/MediaManager/MediaManager.Plugin.iOSUnified/MediaManagerImplementation.cs

Great, thank you @martijn00


Switching between GridView and ItemsView crashes the app

Which version of the app?
WinUI 3 Gallery
Description
Switching between GridView and ItemsView in the navigation view crashes the app.
Screenshots

Windows version
Windows 10 22H2 (19045)
Additional context
No response

Still happens with this release

Sorry for the delay in getting to this bug. I agree, I will frontload and prioritize this bug.

Closing as dupe of #1464


Wrap sequences to enable list-of-dicts style configurations

Wraps sequences in Configuration with a 'thin' wrapper that calls back to a Configuration instance for mapping values and calls 'itself' for sequence values.
References #51.

I didn't know yaml allowed this, but good idea to start supporting it. I'll review it soon (TM).

Didn't know that there was much use case, but a former colleague of ours without a github account requested it (well, reported it not working as "stom").

Didn't know that there was much use case, but a former colleague of ours without a github account requested it (well, reported it not working as "stom").

I might know who it was 😅

Nice to include the support. For me, however, it somewhat decreases the readability of a configuration object (but that is no reason not to implement it).

I'm assuming you mean the way the complicated.yaml test file now looks? I'm not necessarily a fan of that either, but I guess there's a use case for it. I can see something like
for dataset in config.datasets:
    process_stuff(**dataset)

Or the like, where the numbered indexes disappear. But that's all up to users that might expect the data structure to be supported :)


System.Drawing.Common not working on linux, change it to SixLabors.ImageSharp

System.Drawing.Common not working on linux, change it to SixLabors.ImageSharp

System.Drawing.Common can be working on Linux, you need to run command RUN apt-get update && apt-get install -y libgdiplus to install libgdiplus

This is correct, but what about docker? I think it's easier to change the package for program running everywhere with every config.

Totally agree, I am also trying to get rid of System.Drawing.Common, if you check this file https://github.com/qiuhaotc/WebSSH/blob/master/src/WebSSH/Server/Dockerfile, I have put the install command at the top

I will check the PR recently, some parts I might format or delete some later, thanks anyway.

ok

Tanks a lot 🤝 Can you update docker file please ? ☺

Already done👍


Support mutable tensor on oscar

What do these changes do?

add an API to the client/session to create a mutable tensor with given shape
starts a "MutableActor" for every mutable tensor, which, will first create a set of chunks according to the shape, and distribute those tiled chunks to all workers, and, on each worker, create an actor to manage to write/read requests on the chunks being placed on that worker.
maintain a chunk -> actor worker mapping.
when read/write to the mutable tensor, first figure out which chunk to read/write, and forward the request to that worker. Now it can read/write a single point of a tensor.

Related issue number

#2195

Just merge the master branch.

Besides, now, the data stored in worker is just a numpy ndarray, please use storage API to store data. And seal_mutable_data can be added in order to convert a mutable tensor with a given version into a vanilla mars tensor.

@Coco58323 please address comments above.
About the "seal" operation, I would like to implement in this way,

put chunks to storage backend on every worker, returns a set of chunks in form (chunk index, shape, dtype, data info, worker address), the data info is the result of putting chunks to the backend
have a special op, taking these data infos as arguments, and returns the data infos directly in its execute() method. The op would be tiled respected to worker address of each chunk
in SubtaskProcessor._store_data, if the chunk result is a DataInfo instance, just skip the "put" operation.

I think it is more concise and easy to implement than operating on metas of chunks and graphs than before.
Any comments? @qinxuye

@Coco58323 please address comments above.
About the "seal" operation, I would like to implement in this way,

put chunks to storage backend on every worker, returns a set of chunks in form (chunk index, shape, dtype, data info, worker address), the data info is the result of putting chunks to the backend
have a special op, taking these data infos as arguments, and returns the data infos directly in its execute() method. The op would be tiled respected to worker address of each chunk
in SubtaskProcessor._store_data, if the chunk result is a DataInfo instance, just skip the "put" operation.

I think it is more concise and easy to implement than operating on metas of chunks and graphs than before.
Any comments? @qinxuye

Actually, I think fetch op is enough, but be aware that the sealed data's meta has been recorded.

Actually, I think fetch op is enough, but be aware that the sealed data's meta has been recorded.

Our previous implementation is returning a TensorFetch tensor when sealing, but that is quite tricky. As we need to add the tensor to existing graphs. And there was a SealerActor to register the metadata of chunks as well.
I think add a new op and a speical case in SubtaskProcessor._store_data would make things more cleaner, as we don't need to touch the core of scheduling and metadata management code to archieve the goal, just a new op and several lines of modifcation in the core.

For more about previous complex logic, see also

https://github.com/sighingnow/mars/blob/c7897fbd144d230fff5edabc1494fb3ff44aa0d2/mars/scheduler/session.py#L130
https://github.com/sighingnow/mars/blob/master/mars/worker/seal.py#L49

Our previous implementation is returning a TensorFetch tensor when sealing, but that is quite tricky. As we need to add the tensor to existing graphs. And there was a SealerActor to register the metadata of chunks as well.

For oscar, graph is not required, actually, if meta is registered correctly, it should work.

Our previous implementation is returning a TensorFetch tensor when sealing, but that is quite tricky. As we need to add the tensor to existing graphs. And there was a SealerActor to register the metadata of chunks as well.

For oscar, graph is not required, actually, if meta is registered correctly, it should work.

Do we not record the tileable graph any more? And do we still need to put keys of those chunks into the chunk graph?

Do we not record the tileable graph any more? And do we still need to put keys of those chunks into the chunk graph?

Tileable graph is not required, tieable with fetch chunks is OK.

Thanks, look forward to seeing more contributions from you.


graalvm native support?

According to the documentation (https://www.graalvm.org/latest/reference-manual/native-image/native-code-interoperability/foreign-interface/), you need to configure ForeignRegistrationFeature, but I don't know how to configure it

GraalVM has many restrictions affecting the Foreign Function and Memory (FFM) API. It neither supports upcalls nor calls to SymbolLookup.libraryLookup(). Unfortunately, they are required for this library. So the GraalVM support for FFM is currently insufficient to run this library on any platform.


Document licensing considerations around generated packages

:rocket: Feature Request
Affected Languages

[ ] TypeScript or Javascript
[X] Python
[X] Java
[X] .NET (C#, F#, ...)

Description
There is currently no documentation informing users about any licensing quirks (or absence thereof) that apply to the code generated by jsii. In particular, it's not clear to users whether attribution is necessary; or if the generated code contains any bundled OSS that they would need to worry about the licenses of / attribute to.

The current state of things is that:

jsii-pacmak generates code based on the API outline produced from jsii compiling the TypeScript, and slaps it with the same license than the source TypeScript/Node module. I'm not certain whether this requires any kind of attribution from the authors to jsii
jsii-pacmak generates code that does not bundle any other OSS product (at time of writing anyway). It includes dependency declarations that will cause other OSS products to be resolved on the users' computers upon installing a jsii generated module (e.g: Maven dependencies modeled in the package's pom.xml file, etc..). Those dependencies are not re-distributed and thus my understanding is they shouldn't require attribution.

Sorry - nothing yet.

Alright - packages generated by jsii-pacmak are licensed under the very same license that applies to the original npm library. It is however the author's responsibility to make sure that any licenses that attach to the original library are also applied to the output (for example - that any attributions document necessary is bundled in the npm package, etc...).
I'll be adding this to the documentation whenever I get two minutes :)

Cool. So, to be clear, jsii-pacmak does bundle up all of the dependencies of the npm package when publishing into other languages (ex: Python, Java, C#), correct? So, the NOTICE file must include all dependencies as distributions since the package is actually distributing them.

Licensing considerations are now documented here


Couldn't use Bart anymore

After updating to 1.8.0 all errors were gone, and that version worked for me for a little bit.
It randomly uploaded files after saving, until stopped working. Wanted to go back to 1.6.0 which is the one that I have on my desktop but is not compatible with the newest version of atom.
Please let me know what can I do to help.
That Bart plug in was amazing and it's the only one available for atom

Hi @jcassanyjcs,
thanks for reporting. Would be great to add more info so I can reproduce and fix the issue. I can't revert back to 1.6.0 because there is another issue.
Note, currently, I don't use atom for daily work hence can miss errors during smoke testing.
(I use VS Code with extention, but there are no file uploader, yet, dwupload can be used.)

Release 1.8.2 has a fix for watching CSS(and others) files, could you please verify if this fixes your case?

Hi @jcassanyjcs,
Is this issue still actual?


Adding migration status and cutover to extension

New Dashboard UX

Now you can see count of selected databases

Migration Status Table

Migration Cutover dialog

Migration completed

Pull Request Test Coverage Report for Build 609839449

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.003%) to 43.163%

Totals

Change from base Build 608902113:
0.003%

Covered Lines:
25082

Relevant Lines:
53182

💛  - Coveralls

screenshots for dark theme and High Contrast?

@alanrenmsft there is some work needed to make it compatible with dark mode.


Update README look

[x] Added Logo to the top
[x] aligned header elements to the center
[x] Added Table of contents

Signed off by - abhilash -<EMAIL_ADDRESS>Before:

After:

if this is fine, I can do the same for the translations readme files too

This changes not required, please pick the issue having Hacktoberfest label on it  and make a valid contribution. thanks


Data Consent checkbox click handler fails on custom logon page

Description of bug
Data consent check box does not trigger the removal of the disabled attribute from the submit button when the login control is placed on custom logon page.
Steps to reproduce

Create a new page called logon.
Add the Login Control
Set the sites default login to the the new page
Enable the Data Consent feature in the site privacy settings.
Log in as any regular user & you cannot proceed past the agree checkbox stage.

Current result
User logs in but can't enable the submit button after agreeing to the terms.
Expected result
User logs in and checks the box to agree to the Data Consent terms which should enable the submit.  Log in proceeds & user gets access.
Screenshots
Error log
No js error shows in the developer console
Additional context
It seems the browser is not executing this script found at the bottom of the  DesktopModules\Admin\Security\DataConsent.ascx control.  Tested placing an alert after the opening js script tag and before the click handlers but it is not executing.  Not seeing why..??  Tested a few different themes which should eliminate that as a possible cause.
Affected version
9.4.1
Affected browser

[ ] Chrome

I can reproduce in 9.4.2, the Submit button is not enabled by checking the checkbox

is there anyone, who wants to submit a fix?

https://github.com/dnnsoftware/Dnn.Platform/pull/3586


Proposed changes to balance, plates, energy use and pollution

Hello,
I've been playing with your mod and here's some tweaks I've made that I think would be good to add in your mod :

Boost Iron and Copper plate production from melting by ~33% (3 plates from 2 ore instead of 2 for 2 in vanilla furnace).
Increase coal usage in smelters to be similar than vanilla furnace
Increase energy usage accross the chain (smelters and casters) to be more than vanilla, but it's compensated as you get hot steam
Increase pollution to be similar than vanilla furnace
All in all you get more plates for less machines but a more complex setup

Vanilla

Burner smelters and basic casters

Electric smelters and advanced casters

No coal / fuel use and logistics, less machines, less pollution but much more energy usage and possibility to use modules

With efficiency modules in smelters

Here's the patch file of the changes :
From e266168868d56816b935957ca6e2d79483e9cfb0 Mon Sep 17 00:00:00 2001
From: Bruno NOGUER<EMAIL_ADDRESS>Date: Sun, 24 Apr 2022 10:22:37 +0200
Subject: [PATCH] boost iron and copper plate by melting, some balance more
 energy usage and pollution

---
 prototypes/vanilla/create.lua   |  4 ++--
 prototypes/vanilla/entities.lua | 12 ++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/prototypes/vanilla/create.lua b/prototypes/vanilla/create.lua
index c31ea8a..6f39608 100644
--- a/prototypes/vanilla/create.lua
+++ b/prototypes/vanilla/create.lua
@@ -52,9 +52,9 @@ end

 -- CASTING
-new_casting_recipe("copper-ore", "copper-ore", "copper-plate")
+new_casting_recipe("copper-ore", "copper-ore", "copper-plate", {2,3})
 new_casting_recipe("copper-ore", "copper-plate", "copper-cable")
-new_casting_recipe("iron-ore", "iron-ore", "iron-plate")
+new_casting_recipe("iron-ore", "iron-ore", "iron-plate", {2,3})
 new_casting_recipe("iron-ore", "iron-plate", "steel-plate", {1.6,2})
 new_casting_recipe("iron-ore", "iron-plate", "iron-gear-wheel", {1,1})
 new_casting_recipe("iron-ore", "iron-plate", "iron-stick", {1,1})
diff --git a/prototypes/vanilla/entities.lua b/prototypes/vanilla/entities.lua
index d744f5d..138adb2 100644
--- a/prototypes/vanilla/entities.lua
+++ b/prototypes/vanilla/entities.lua
@@ -49,12 +49,12 @@ data:extend({
     },
     source_inventory_size = 1,
     result_inventory_size = 1,
-		energy_usage = "270kW",
+		energy_usage = "1800kW",
     energy_source = {
       type = "burner",
       fuel_category = "chemical",
       effectivity = 1,
-      emissions_per_minute = 4,
+      emissions_per_minute = 40,
       fuel_inventory_size = 1,
       light_flicker =
       {
@@ -285,11 +285,11 @@ data:extend({
       fade_in_ticks = 4,
       fade_out_ticks = 20
     },
-    energy_usage = "525kW",
+    energy_usage = "3600kW",
 		energy_source = {
 			type = "electric",
 			usage_priority = "secondary-input",
-      emissions_per_minute = 1,
+			emissions_per_minute = 20,
 			smoke =	{
 				{
 					name = "smoke",
@@ -540,7 +540,7 @@ data:extend({
     energy_source = {
       type = "electric",
       usage_priority = "secondary-input",
-      emissions_per_minute = 3,
+      emissions_per_minute = 8,
     },
     animation = make_4way_animation_from_spritesheet({
       layers = {
@@ -873,7 +873,7 @@ data:extend({
     energy_source = {
       type = "electric",
       usage_priority = "secondary-input",
-      emissions_per_minute = 2,
+      emissions_per_minute = 10,
     },
     animation = make_4way_animation_from_spritesheet({
       layers = {
--
2.16.0.windows.2

Im currently testing your changes.
Also, i made several changes to the steam temperature. I've read multiple sites of wikipedia on various metals and their melting/boiling points and then forgot about it ^^
After my recent rediscovery i've changed the steam temperature to
math.max(math.min((temperature.max - temperature.min)/2, 1000), 100)
which

clamps the temp between 100 and 1000
results in a good variation in temperature
forces you to think about which steam to mix

EG the melting points of iron (1500) and lead (320) are so different that mixing the resulting steam would drastically decrease its temperture and so the potetial energy production.
The formula isn't final but represents the idea behind it.

Hello,
Thanks for your consideration on the changes.
About steam, I don't think it's possible to mix fluids with different temperatures,. Also Steam Engine are best used with 165° steam and turbine with 500° steam. Not sure if it's worth fidling with this, handeling steam as a by product is a already enough or a downside to the casting system imo.

It seems that max_temp in generators describes their max power output rather than their max usable temp. So this doesn't rly matter.
I also made it so that the steam temp is based on the meltin point of the ore but just to be save i've adde an option to toggle this so you can choose between 500°C static or let it calculate the temp. As long as you don't mix steam from tin and steam from aluminium it shouldn't matter. The only thing where this comes into play (or of which i can think of atm) is UPS in lategame when temps mix and have to be calcualted. But then again, there is an option.


feat: add queue for embedding

Please help me test if it can fix RAG issue, if ok please review i will merge @hiro-v


Add 4 columns to summary view

Please add the following 4 important columns to the summary view:

Uploader
Length
File Size
Upload Date

Hope this feature will be implemented soon.  Very useful!  :-)

Would LOVE to see this feature implemented.  👍

File size can't be accurately displayed until the streams are fully muxed.
As for Uploader/UploadDate, what's your use case that you need them visible on the main screen?


Upsert Compaction: CRC mismatch robustness

This issue of CRC mismatches across replicas for a segment has been discussed multiple times (https://github.com/apache/pinot/issues/12396, https://github.com/apache/pinot/issues/11004). I'm creating this parent issue to track how these mismatches affect the Upsert compaction flow overall. While eliminating CRC mismatches entirely would be ideal, until we find the best solution for that, we can focus on making the Upsert compaction flow robust enough to handle such mismatches.

[ ] https://github.com/apache/pinot/issues/13492
[ ] https://github.com/apache/pinot/issues/13491
[ ] https://github.com/apache/pinot/issues/13494

you could ad new parent-issue label


use prefect task name as remote function name

Closes #86
Example

from prefect import flow, task
from prefect_ray import RayTaskRunner
from time import sleep

@task(
    name="Worker Task Name",
)
def worker_function():
    sleep(100)

@flow(task_runner=RayTaskRunner)
def main(
):
    worker_function.submit()

if __name__ == "__main__":
    main()

Screenshots

Checklist

[X] References any related issue by including "Closes #" or "Closes ".

If no issue exists and your change is not a small fix, please create an issue first.

[X] Includes tests or only affects documentation.
[X] Passes pre-commit checks.

Run pre-commit install && pre-commit run --all locally for formatting and linting.

[X] Includes screenshots of documentation updates.

Run mkdocs serve view documentation locally.

[x] Summarizes PR's changes in CHANGELOG.md

this looks good to me - thanks a lot
Can we go ahead and merge this?

@PrefectHQ/open-source, sorry to chase, wondering if someone can do a quick review to unblock this? Code looks good and the feature is very nice to have

@desertaxle it would be great to receive some feedback on this :pray:

Tests are failing due to a new version of pytest-asyncio. I'll submit a PR to unblock CI.


⚠ TiendaEnLinea has degraded performance

In 3dc9be7, TiendaEnLinea (https://www.fahorro.com/) experienced degraded performance:

HTTP code: 200
Response time: 5457 ms

Resolved: TiendaEnLinea performance has improved in 84a0021.


npm test fails with assets imported from node_modules folder

I have published a number of in-house components that package up CSS and images so they can be included in a Webpack project like this:
import MyComponent from 'my-component'
import 'my-component/css/Styles.css'
import logo from 'my-component/img/CorporateLogo.png'

This has worked great with CRA and my apps run and build correctly.
However, any attempt to test code that includes CSS/images in this way with CRA 0.4.1 will fail - almost as if testing treats anything imported from node_modules as JavaScript.
e.g. when running a test of a component that imports a PNG from node_modules/my-component/img:
 FAIL  src\App.test.js
  ● Test suite failed to run

    C:\Users\<user>\Projects\my-app\node_modules\my-component\img\logo.png:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){�PNG
                                                                                ^
    SyntaxError: Unexpected token ILLEGAL

      at transformAndBuildScript (node_modules\react-scripts\node_modules\jest-runtime\build\transform.js:284:10)
      at Object.<anonymous> (src\App.js:3:38)
      at Object.<anonymous> (src\App.test.js:3:38)

Any ideas or workarounds would be welcome.

On further investigation this appears to be a problem with scopes. We are publishing packages to a private npm server and use scoping to avoid any clashes and to indicate this is a special package. So a sample package name may be:
@mycompany/my-component
https://docs.npmjs.com/private-modules/intro#setting-up-your-package
When you npm install the above it will end up in node_modules/@mycompany/my-component. This seems to be breaking the Jest config which then tries to actually import the assets as JS.
Further tests show it's that pesky @ sign that seems to break Jest. If I remove it from the folder name in node_modules then it will work OK.

Can you please file this in Jest repo and link to this issue? Thank you!

cc @cpojer

The problem seems to be in the moduleNameMapper Jest configuration used in create-react-app. It only matches paths consisting of alphanumeric characters, so files with special characters like @ are not correctly stubbed in the tests. I'm making a pull request to fix this.

Thanks @fson!

This should be fixed in 0.4.2.
Please verify!

Hi, apologies for commenting on such an old issue, but I seem to be having a similar issue as I reported in #4262.
Is this related and a regression? The moduleNameMapper  in scripts/utils/createJestConfig.js seems to have changed a great deal since this was fixed here.


Add edit ingredient command and tests

Resolves #75 . Edited EditClientCommandParser parse method to shorten it also.

Codecov Report

Merging #83 (a6f8a57) into master (252d487) will increase coverage by 0.72%.
The diff coverage is 93.67%.

@@             Coverage Diff              @@
##             master      #83      +/-   ##
============================================
+ Coverage     73.91%   74.64%   +0.72%
- Complexity      610      636      +26
============================================
  Files            94       96       +2
  Lines          1687     1759      +72
  Branches        184      192       +8
============================================
+ Hits           1247     1313      +66
- Misses          399      402       +3
- Partials         41       44       +3

Impacted Files
Coverage Δ

...22s1_cs2103t_w16_2/btbb/commons/core/Messages.java
0.00% <ø> (ø)

.../java/ay2122s1_cs2103t_w16_2/btbb/model/Model.java
100.00% <ø> (ø)

..._2/btbb/model/ingredient/UniqueIngredientList.java
76.92% <66.66%> (-3.08%)
:arrow_down:

...2/btbb/logic/descriptors/IngredientDescriptor.java
93.75% <83.33%> (-6.25%)
:arrow_down:

...gic/commands/ingredient/EditIngredientCommand.java
92.85% <92.85%> (ø)

...03t_w16_2/btbb/logic/parser/AddressBookParser.java
100.00% <100.00%> (ø)

...b/logic/parser/client/EditClientCommandParser.java
100.00% <100.00%> (ø)

...parser/ingredient/EditIngredientCommandParser.java
100.00% <100.00%> (ø)

...ay2122s1_cs2103t_w16_2/btbb/model/AddressBook.java
93.47% <100.00%> (+0.45%)
:arrow_up:

...y2122s1_cs2103t_w16_2/btbb/model/ModelManager.java
94.44% <100.00%> (+0.24%)
:arrow_up:

... and 1 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 252d487...a6f8a57. Read the comment docs.


access.log timestamp format changed - how can we recover former timestamp format?

Chef Server version:13.0.17
access.log's timestamp format used be like <IP_ADDRESS> - - [07/Jun/2018:01:05:11 +0900] but now it's <IP_ADDRESS> - - [2020-10-21T07:22:00+00:00]
In terms of log monitoring, we need to set it back to the former format, which goes like <IP_ADDRESS> - - [07/Jun/2018:01:05:11 +0900].
Please advise us how to change the timestamp format.
--
Formerly $time_local was used.
https://github.com/chef/chef-server/blob/12.4.0/omnibus/files/private-chef-cookbooks/private-chef/templates/default/nginx/nginx.conf.erb#L13
But now $time_iso8601 is used.
https://github.com/chef/chef-server/blob/13.2.0/omnibus/files/private-chef-cookbooks/private-chef/templates/default/nginx/nginx.conf.erb#L18
There seems no setting available in the chef-server.rb.
https://docs.chef.io/config_rb_server/#nginx-ssl-protocols
FYI here is the nginx docs explaining the time variables. http://nginx.org/en/docs/http/ngx_http_log_module.html
$time_iso8601
local time in the ISO 8601 standard format
$time_local
local time in the Common Log Format
It seems that modifying $time_local to $time_iso8601 in /var/opt/opscode/nginx/etc/nginx.conf may change the timestamp format, but it would bring the server out of support scope, wouldn't it?
To Reproduce
Steps to reproduce the behaviour.
Expected behavior
Chances of adding/Handling of Log_Format setting in chef-server.rb for Nginx service. So that end customer can make changes to it according to them.
Actual behavior
A clear and concise description of what actually happened.
Additional context
Any other additional context here.
Associated GitHub Issue
Any associated public GitHub Issue URL link will be included here

https://github.com/chef/customer-bugs/issues/259


test pivot

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


once we enable Run as Admin and restart Terminal wont start

Presumably OP figured this out on their own, but for the sake of issue tracking, I bet this is /dup #14501. Curious that we've had three of these in the last month...


Establish safe branching / commit procedures

Discovered when making a pull request we can select a specific branch for us to push to from local.

We are also adding notes to our code to specify what we'll be working on. Communicating changes once we push.


[State Manager] Base mapping file create

This is a base mapping file class for state Manager/

Code under review


Add blog post for crd2pulumi

TODO

[x] Add meta image
[x] Add cert-manager example
[x] Add GIF showing IDE usage

Are there pre-built binaries available? Also in the Learn More section, would be great to tell folks how to download and use crd2pulumi -- it's kind of implicit and the closest I could find is a hyperlink in the opening paragraph.

Are there pre-built binaries available?

There are. I'll update the post with more info