Generating/renewing letsencrypt certs from inside the container itself

Is your feature request related to a problem?
Managing letsencrypt certs need not be a manual and/or external process.  It could even be argued that this goes against the original idea of certbot.  It's a bot.  Let it do bot things. ;-)
Describe the solution you'd like
Automagical creation of certs from inside the container.  Automatic letsencrypt functions are already built into a wide range of software and information appliances.  This seems to be where we are already headed.
What have you done already?
I already host multiple webservers on multiple domains inside this docker instance and have an nginx-proxy-manager container directing all the traffic to the right service for each domain pointing to this host.  All those containers are in the same docker bridge network, so for my case I did the following:

Map port e.g. 13080 on the host, to port 80 inside docker-mailserver
Setup a bind mount volume from e.g. /usr/local/letsencrypt on the host to /etc/letsencrypt on the container
Run docker compose, start the container, add a user, etc.
Create a proxy host in nginx-proxy-manager for mail.mydomain.tld and set it to forward http traffic destined for that hostname to port 13080 on the docker host.
"docker exec -it mail /bin/bash" to get a root prompt in the container
"apt-get update; apt-get install certbot"
"certbot certonly --standalone -d mail.mydomain.tld"

Boom, done.  Extending this idea by integrating an nginx proxy into the mix (and a cron job) would fully insulate and automate the process.   There is much space in the wiki dedicated to that.  It could almost all go away.

Thank you @MakerMatrix for your idea, very much appreciated.
I am certainly not the only one who is deciding how we should go about this, but here is what I think: docker-mailserver uses a neatly packaged image with all you need to get a full-stack but simple mail server. Following this paradigm, we focus on the most important aspects of a mail server. The reason your idea hasn't been implemented yet is that, from my point of view, this goes against the paradigm of this image. With the current way, although not perfect, we are enabling everyone to use the method he or she want's to use when it comes to certificates.
Let's say we only use NGINX and certbot when the use decides to use SSL_TYPE=letsencrypt. This would imply the following:

The image would potentially grow
The image configuration becomes more complex
You would need to introduce another SSL_TYPE for users who use Let'sEncrypt but don't want to use NGINX and certbot (let's say for users who use Traefik which just works)
Large scrips would need large adjustments with integration tests that are not easily done

I especially dislike the third point.
From what I can tell, the documentation about this process is the real problem. I marked the issue #1549 as stale "to revive" it. Another idea would be to use Docker Compose or Swarm or whatever to start a second container which takes care of certificates. I think this is the more container-oriented solution and more idiomatic when it comes to use of containers.

I agree with @aendeavor, this should not go into the image. Why? Because it doesn't have to, it is about as easy to fix with an external helper container. That makes this container smaller, more focused and more flexible. Before 7.0 we had support for ELK inside the container. We removed that as it could be outsourced to another container, making the image smaller for those who don't use ELK. I think that fits better with the Docker/container philosophy.

All good points.  I agree the docs need an overhaul in this area.  For me getting the certs going was the hardest part and somewhat rough to troubleshoot.  In the end I tried semi-random educated guesses until it worked.
That and the fact that I just learned my ISP blocks outbound port 25 traffic.  sigh
The way the docs read now gives users the idea that if there is a web server running on the host container, this is a "hard" problem.  It isn't, if you configure a proxy to direct http traffic destined for the fqdn of your mail server to  and map that to 80 inside the container.  From then on it's incredibly simple to generate and automatically renew certs from inside the container.  Maybe a few lines at the start of this section of the docs would help point people in the right direction.
But yes, setting up the proxy is a lot of overhead and I can see how it would be viewed as out of scope.  Maybe I'll have a play with a certbot container and see if that can be made to automate the certs externally.  That could be useful in multiple contexts.

Thank you for acknowledging and closing this issue:)
You could use Traefik as well, if this suits your needs: https://doc.traefik.io/traefik/https/acme/

In case it's useful, here's a not-very-well tested user-patches.sh that more or less does what I want.  It just needs port 80 of the MX record to point at the container, and an environment variable to contain your registered certbot email.
# This installs certbot, auto-generates Let's Encrypt certificates, and adds a renewal
# certbot task to cron they will be auto-renewed before expiration.
#
# This script requires that you have port 80 of your MX record pointing at this container.

# Install some useful things if they aren't already
apt-get update
for pkg in vim less inetutils-telnet inetutils-ping net-tools certbot
do
 if ! dpkg -s $pkg > /dev/null
 then
    apt-get install $pkg
  fi
done

# Have certbot fetch a new cert if there isn't an appropriate one in
# /etc/letsencrypt/live/<hostname>
# BE CAREFUL WITH THIS - You'll get rate limited if the certbot certonly
# command is run even infreqently.  This is only meant to trigger the first
# time the container is created.

FQDNHOST=`hostname -f`
if ! [[ -d /etc/letsencrypt/live/$THISHOST ]]
then
        certbot certonly --non-interactive --standalone --agree-tos -m $MY_CERTBOT_EMAIL -d $FQDNHOST
fi

# Now create a deploy-hook script for certbot renew
cat << EOF > /usr/local/bin/certbot-deploy
#!/bin/bash
#
# To be run as the argument to: certbot renew --deploy-hook

postfix reload

# If we run dovecot, tell it to reload
if [ \$SMTP_ONLY -ne 1 ]
then
        echo "Refreshing dovecot"
        dovecot reload
fi
EOF

# Make it executable
chmod 700 /usr/local/bin/certbot-deploy

# Add the certbot renew command to crontab
# Runs at 1am on the first of the month
if ! crontab -l | grep "certbot renew" > /dev/null
then
  (crontab -l 2>/dev/null && echo "0 1 1 * * certbot renew --deploy-hook /usr/local/bin/certbot-deploy") | crontab -
fi

Why did you re-open?

In case it generated more discussion.  Guess not. ;-)

Wait, did you not see the script?  By “it”, I meant the script. I did not just randomly reopen, lol.  Is there a way for users to share these things here or do we wait for somebody to find it in a closed issue?

By “it”, I meant the script. I did not just randomly reopen, lol.

I know:)

Is there a way for users to share these things here or do we wait for somebody to find it in a closed issue?

There is currently no way to efficiently share many user-patches.sh scripts. Indeed, you'd go through all issues. You can, however, and I'd advise to do so, create a wiki page and show the script there.


Kjq/customDelta

This extends the delta system to allow objects to specify custom handlers to deal with interesting cases. It's necessary to do for tagserver.

After going over it with kent and lorna online, then another once-over offline, looks good to me. Thanks, Kent!


Adding several infrastructure to the same dashboard

Hi Guys,
First of all, I must say Codis is great.
I need to know what are the relationship between all components.
codis-fe, codis-dashboard, codis-proxy, codis-server.
Basically what I want to achieve is to have 1 dashboard with several projects and to use several proxies in each project.
By saying projects - I'm meaning to the left sidebar where I can see the apps I have.

Only codis-fe and Zookeeper/etcd cluster (and maybe sentinels ?) can be shared in different projects -- called product in Codis.
One Codis product includes:

some codis-servers
some codis-proxies
one codis-dashboard
one codis-fe (shared)
one ZK/etcd/...(shared)
some sentinel instances(if HA needed)

All above components can be deployed on any physical/virtual machines/servers/nodes.
Once booted with correct config files, Codis will work well.

Thanks @springlie.
As I checked you can use the same dashboard with several etcd instances for example.
What is the best way to achieve one dashboard for multiple servers where each pair of servers ahs proxy which uses the same redis.
So:
1 Dashboard.
3 products.
Each product his proxies and redis's placed on 2 or more physical servers.
Adn what about the codis-fe's and the etcd's.
I need 1 or several per product?
As I wrote above, I think etcd can be for each product.. Or should I use it as share...

Any comment on how to achieve it will be very appreciated.

In practice, Codis-fe and coordinator (ZK/etcd) can be shared between different Codis clusters.
What we care about is logical deployment (share the process) structure not physical, so you can placement the components as you want.

@springlie,
Thanks for the reply.
I have set up another server which uses the Codis-fe and the coordinator(etcd).
Now all the data there is <IP_ADDRESS> which means that it is using the loopback.
So using another server just for proxy with the Codis-fe and the coordinator will not work as it is trying to find redis on the local machine.
Is it good to use the local port to configure these redis instances?
My problem is that I have a network limit which I'm trying to resolve.
What can you suggest doing so i can scale up?

Codis is designed as a distributed system, which will be deployed on different Redis instances on different physical/virtual hosts.  So Codis does NOT care much about single host performance.
About single host performance:
Within a specified period of time:

local Redis provides enough data ( uses: CPU )
local proxy transfers enough data ( uses: CPU )
local network interface transfers enough data ( uses: bandwidth & CPU for interrupt )

Redis with loopback interface can only be accessed by local proxies.
And I think based on OS optimization, local IP is the same as <IP_ADDRESS>, which doesn't depend on network.


[helm] Support Workload Identity

Checklist

[x] The title of the PR is clear and informative
[ ] If applicable, the changes made in the PR have proper test coverage
[ ] Issues addressed by the PR are mentioned in the description followed by Fixes.

Description
To support Workload Identity, the helm chart should support define service account labels/annotations or BYO service account
Fixes

@jkroepke the annotation defined by workload identity was fixed and only needed input from the user is the clientID of the user assigned identity. Why should service account take multiple annotations as an input ? Is there any benefit to that ?
Also, AGIC would require the sidecar proxy for migration as azure identity sdk for go doesn't support using a federated identity as a credential.

@jkroepke the annotation defined by workload identity was fixed

The master branch does not accept annotations on service accounts?

Why should service account take multiple annotations as an input ? Is there any benefit to that ?

For 3rd party integration, for example Kyverno. Also the charts created via helm create allows to define multiple annotations on service account. From a helm chart maintainer perspective, there is no blocker to offer this.

Also, AGIC would require the sidecar proxy for migration as azure identity sdk for go doesn't support using a federated identity as a credential.

Yes, I'm aware of this.

Any further support on this? I am just moving all the rest of our services over to workload identity from pod identity but the use of AGIC means that I will still have at least 1 component using podIdentity which, I would love to remove.

Any further support on this? I am just moving all the rest of our services over to workload identity from pod identity but the use of AGIC means that I will still have at least 1 component using podIdentity which, I would love to remove.

@AnthonyDewhirst. we are in the same boat. I went through the RC for 1.6 and I am not seeing where the comment from @akshaysngupta is handled. I do not want to enable pod identity after rewriting all of our deployments to use workload identity on new, production clusters, just for the AGIC if the bits are out there and even if we have to fork it for the time being.

Does the following mean that we can use a solution without the sidecar now:
https://dev.azure.com/AzureContainerUpstream/Azure Workload Identity/_build/results?buildId=68454&view=results

No, Identity Workload is not nativly implement in the Go SDK

https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/azidentity#key-concepts #2 doesn't this imply that it does? The diagram calls this out that it does.
And the following was what prompted my previous comment even though I didn't like directly to it:
https://github.com/Azure/azure-workload-identity/blob/main/go.mod
Forgive me if I am missing something in the detail here.

@AnthonyDewhirst The content is available only on main branch, but not available in the current released version https://github.com/Azure/azure-sdk-for-go/tree/sdk/azidentity/v1.2.0/sdk/azidentity

So I guess in January when 1.3.0 will be released we'll be able to use it in AGIC ? 😊

I will start working on this next week. Will shoot for a release candidate mid next month.

So I guess in January when 1.3.0 will be released we'll be able to use it in AGIC ? 😊

I guess in 2024, since yearly relase scheudle

Here is a "WIP" PR to support workload identity. Please leave any questions/comments on the PR.
https://github.com/Azure/application-gateway-kubernetes-ingress/pull/1498

Thanks @akshaysngupta  for providing a more native way!


Add junit report action

Improves #4202
Example reports: https://github.com/sake92/mill/actions/runs/12563637492
If you click on a failed job on the left, you will see annotations section on the top.
It shows which tests failed and the reason message.

Thanks @sake92 ! it looks great


GH-43194: [R] R_existsVarInFrame isn't available earlier than R 4.2

Rationale for this change
R_existsVarInFrame doesn't exist before R 4.2, so we need to fall back to Rf_findVarInFrame3 if it is not defined.
Resolves #43194
What changes are included in this PR?
ifdefs
Are these changes tested?
Yes, in our extended CI test-r-versions, test-r-rstudio-r-base-4.1-opensuse155
Are there any user-facing changes?
No

@github-actions crossbow submit test-r-versions

@github-actions crossbow submit test-r-rstudio-r-base-4.1-opensuse155 r-binary-packages

crossbow submit test-r-versions

@github-actions crossbow submit test-r-versions


Revert Merge Branch-DOB with Master

Reverts AY2223S1-CS2103-F09-2/tp#55

Codecov Report
Base: 66.35% // Head: 66.88% // Increases project coverage by +0.53% :tada:

Coverage data is based on head (78b4b36) compared to base (f64fbfd).
Patch coverage: 70.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##             master      #61      +/-   ##
============================================
+ Coverage     66.35%   66.88%   +0.53%
+ Complexity      460      447      -13
============================================
  Files            83       82       -1
  Lines          1602     1528      -74
  Branches        170      158      -12
============================================
- Hits           1063     1022      -41
+ Misses          478      460      -18
+ Partials         61       46      -15

Impacted Files
Coverage Δ

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

...ain/java/seedu/address/logic/parser/CliSyntax.java
91.66% <ø> (-0.65%)
:arrow_down:

...in/java/seedu/address/logic/parser/ParserUtil.java
70.90% <ø> (+0.90%)
:arrow_up:

.../java/seedu/address/model/util/SampleDataUtil.java
20.00% <0.00%> (ø)

src/main/java/seedu/address/ui/PersonCard.java
0.00% <ø> (ø)

...rc/main/java/seedu/address/ui/PersonListPanel.java
0.00% <ø> (ø)

...c/main/java/seedu/address/model/person/Person.java
80.00% <50.00%> (+2.58%)
:arrow_up:

...java/seedu/address/logic/commands/EditCommand.java
95.89% <100.00%> (+0.95%)
:arrow_up:

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

.../seedu/address/logic/parser/EditCommandParser.java
92.85% <100.00%> (+6.19%)
:arrow_up:

... and 1 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


change jrf docker image to OCR

Changed the fmw infra docker image to container-registry.oracle.com/middleware/fmw-infrastructure:<IP_ADDRESS>
updated the README.md

The jrf tests and integration tests passed on local run.
The integration tests also passed in Jenkins run:
http://wls-jenkins.us.oracle.com/job/weblogic-kubernetes-operator-javatest/1721/


add min pytorch-lightning version to allow checkpoint override

this replaces
https://github.com/weecology/DeepForest/pull/298
and closes #301

sorry for the late reply. I am trying again with checkpoint callbacks...
 model.create_trainer(callbacks=[...])

It is still not possible
/opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/connectors/callback_connector.py in _configure_checkpoint_callbacks(self, checkpoint_callback, enable_checkpointing)
    154         if self._trainer_has_checkpoint_callbacks() and enable_checkpointing is False:
    155             raise MisconfigurationException(
--> 156                 "Trainer was configured with `enable_checkpointing=False`"
    157                 " but found `ModelCheckpoint` in callbacks list."
    158             )

MisconfigurationException: Trainer was configured with `enable_checkpointing=False` but found `ModelCheckpoint` in callbacks list.

enable_checkpointing=False should still not be hard coded. isn't it?
https://github.com/weecology/DeepForest/blob/0c7c881ada5e01a3fc33827b0eeffa96265680eb/deepforest/main.py#L130

@bw4sz the #301 should be re-opened... :(


fmemopen is missing

Hi,
I used your parser in my project, but I had to manually add fmemopen from you other repo which is not very convenient :)
Did you think about pushing your project to cocoapods? You can declare all dependencies and allow other users to integrate your parser in just one line. It would be very cool :)
Anyway, great stuff!
Kamil Burczyk

Same here, had to add https://github.com/NimbusKit/memorymapping manually as a Submodule and import the src files to my project. Now it works.


actualización changelog datos cliente porcentaje socios y columna rec…

Describe the PR content and subject

Se actualiza changelog por actualización de información
Proof of completion

Type of change

[x] New feature (non-breaking change which adds functionality)

Checklisk

[x]  Ensure the code follows the project's coding standards

[x]  Choose descriptive and unambiguous names.
[x]  Make meaningful distinctions.
[x]  Use pronounceable names.
[x]  Use searchable names.
[x]  Replace magic numbers with named constants. (Also magic text)
[x]  Avoid encodings. Don’t append prefixes or type information.

[x]  Check if the new code has proper unit tests
[x]  Verify that the code is properly commented for understandability

[x]  Remove poor quality, not meaningful comments
[x]  Use comments on non standard code and hard

[x]  Check if the code changes are relevant to the pull request description
[x]  Ensure the new code does not introduce any new bugs
[x]  Check if the pull request contains minimal and logical commits
[x]  Check if the code changes affect performance and suggest improvements if it does
[x]  Review if the pull request resolves the issue it is linked to

[ ]  If not, describe why the PR y needed/split

[x]  Do not include extensive refactoring if not requested
[x]  Ensure all continuous integration checks are passed
[x]  Provide proof of completion on issue or pull request

Thank you!

Cambios aplicados en la misma rama


Drop typings

@stubailo

I will finish fixing type errors later, but if someone wants to help that would be great

@stubailo ready

We can wait for 2ddfa4 to be published. This way we can keep noImplicitAny enabled.

@kamilkisiela why are we doing this? And should I do the same for react-apollo? 👍

@jbaxleyiii "The Future of Declaration Files"
It's way more convenient to use npm to install declarations than to have separate tools to do that.
With this approach all you have to do is to run npm install.

@kamilkisiela  awesome! I'll do the same 🎉


Seamless Reading progress

Like YouTube works. You opened the video on any device and it started right from timepoints where finished it last time whatever device.

[x] #9
[x] #10

Translating scrollTop into top offset (#page=2&zoom=100,0,top offset) (https://github.com/mozilla/pdf.js/wiki/Viewer-options)
// [top offset] [0..792]
// by = 791, bx = 1320, a = 11
// top_offset = round(by - (mod(scrollTop, bx + a) - a)*by/bx)

The whole logic could be find in draft PR - https://github.com/mozilla/pdf.js/pull/17033


[CONTROLLER/RECORDER] fix cache bug

This PR is for:

Server

Fixes cache bug
Steps to reproduce the bug
Changes to fix the bug
Affected branches

main

Checklist

[ ] Added unit test to verify the fix.

 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.zhengya 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.


Rotary encoder support?

Just finished assembling my Yampad v2 i got from custom kbd, it comes with the EC-11 rotary encoder but there's no support in the keymapping, it would be nice if i could get an updated keymap or an explanation on how to do it myself?

Hello there @ScomosLastName,
I was not aware of this hardware revision. Please contact your seller for support: without knowing how the encoder is connected to the MCU there's nothing I can do.


navidrome: fix darwin build, version numbering, and tests

Description of changes
Fix darwin build, version numbering, and tests.
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@ofborg build navidrome

Pinging this, now that https://github.com/NixOS/nixpkgs/pull/182665 has hit master.

Result of nixpkgs-review pr 182647 run on aarch64-darwin 1

1 package built:

navidrome


docs: add warning for access token

#82

@Atinux ready to roll 1.2.2 when this one is merged 🎉

v1.2.3 released :)


Upgrade of PSN-Access

As an engineer we need to ensure our pipelines are being used in the latest format. It has been established that the PSN-Access needs to be upgraded in the correct source code in Gibhub.
This pipeline is used by the Gateway team and the contact for that team is<EMAIL_ADDRESS>Link ticket with - #365

upgraded the source action to github version 2 to use
Arn
arn:aws:codestar-connections:eu-west-2:683290208331:connection/494d5bc3-587a-4514-ad63-30805d6a494f

Background: These pipelines are created over 2 year ago using this repo which is very much out of date and tightly coupled with other resources which are part of PaloAlto product suites in the same state file. After reviewing the code it looked appropriate not try reusing the same code as there are couple of issues

We do not have the TFVARs that is required to work on the code
Not having background of the other resources on the same state file.
Hardcoded value which are sensitive in nature.

We collectively agreed to proceed with upgrading the GitHub source action to GitHub version 2 using NVVS codestar connection on the AWS console and unblock these pipelines. As it would not add much of a value having the immutability(DR perspective) of the AWS CodePipleines as its a managed regional service offering from AWS.  And future aspiration is to move these pipelines to Github Actions.


Fix:Change content-type from Non-Dynamic to Static

Fixes #506
Change content type from Non - Dynamic to Static , to make it similar to Android one
Screenshots for the change:

@chashmeetsingh , @jogendra  , Please review the PR.


Webpack 2: You may need an appropriate loader to handle this file type (HTML)

i'm using Webpack 2 + Angular 1.x + es6 with babel loader and i'm facing some problems when i have to use the HTML template, i'm already using html loader and tried raw loader.
ERROR in ./src/app/components/FirstAccess/firstAccess.html
Module parse failed: C:\Projects\webpack-saas\src\app\components\FirstAccess\firstAccess.html Unexpected token (1:0)
You may need an appropriate loader to handle this file type.
|
|

|
Primeiro Acesso

 @ ./src/app/components/FirstAccess/firstAccess.component.js 1:0-42
 @ ./src/app/components/FirstAccess/firstAccess.js
 @ ./src/app/components/components.js
 @ ./src/app/app.js

My webpack.config.js

var path = require('path')
var webpack = require("webpack");
var CopyWebpackPlugin = require('copy-webpack-plugin')
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var cleanPlugin = require('clean-webpack-plugin');
var cssnano = require('cssnano');

const PROD = process.argv.indexOf('-p') !== -1;

const config = {
    entry: {
        app: "./src/app/app.js"
    },
    output: {
        filename: PROD ? "scripts/[name].min.js?[hash]-[chunkhash]" : "scripts/[name].js?[hash]-[chunkhash]",
        chunkFilename: PROD ? "scripts/[name].min.js?[hash]-[chunkhash]" : "scripts/[name].js?[hash]-[chunkhash]",
        path: path.resolve(__dirname,"/dist"),
        publicPath: "/dist/"
    },
    devServer: {
        port: 8080,
        contentBase: __dirname + "/dist/",
        historyApiFallback: true
    },
    module: {
        loaders: [
            { test: /\.js$/, exclude: [/app\/lib/, /node_modules/], loader: 'ng-annotate-loader!babel-loader'},
            { test: /\.html$/, loader: 'raw' },
            { test: /\.png$/, loader: "file-loader" },
            { test: /\.(woff|woff2)$/, use: ['url-loader'], }
        ],
        rules: [
            {
                test: /\.(scss|sass)$/,
                loader: ExtractTextPlugin.extract({
                    use: 'css-loader!sass-loader',
                }),
            }
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: './src/index.html',
            inject: 'body',
            hash: true,
            filename: 'html/index.html'
        }),
        new webpack.HotModuleReplacementPlugin(),
        new ExtractTextPlugin({
            filename: "css/[name].css?[hash]-[chunkhash]-[contenthash]-[name]",
            disable: false,
            allChunks: true
        }),
        new OptimizeCssAssetsPlugin({
            cssProcessor: cssnano,
            cssProcessorOptions: { discardComments: { removeAll: true } },
            canPrint: false
        }),
        new webpack.optimize.CommonsChunkPlugin({
            name: "Commons",
            filename: PROD ? "scripts/commons.min.js" : "scripts/commons.js"
        }),
        new CopyWebpackPlugin([{
            from: './src/app/public',
            to: 'html/'
        }])
    ]
};

if (PROD) {
    config.plugins.push(
        new webpack.optimize.UglifyJsPlugin({
            compress: {
                warnings: false
            }
        })
    )
}

module.exports = config

Packages.json

"angular": "^1.5.7",
    "angular-route": "^1.6.4",
    "angular-ui-router": "^0.4.2",
    "babel-core": "^6.24.0",
    "babel-loader": "^6.2.5",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-polyfill": "^6.23.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "babel-register": "^6.24.1",
    "babel-runtime": "^6.23.0",
    "clean-webpack-plugin": "^0.1.16",
    "copy-webpack-plugin": "^4.0.1",
    "css-loader": "^0.25.0",
    "cssnano": "^3.10.0",
    "extract-text-webpack-plugin": "^2.1.0",
    "file-loader": "^0.11.1",
    "html-loader": "^0.4.5",
    "html-webpack-plugin": "^2.28.0",
    "ng-annotate-loader": "^0.2.0",
    "node-sass": "^4.5.2",
    "nodemon": "^1.11.0",
    "optimize-css-assets-webpack-plugin": "^1.3.0",
    "postcss-cssnext": "^2.10.0",
    "postcss-import": "^9.1.0",
    "postcss-loader": "^1.3.3",
    "raw-loader": "^0.5.1",
    "sass-loader": "^4.0.2",
    "style-loader": "^0.13.2",
    "webpack": "^2.3.3",
    "webpack-dev-middleware": "^1.10.1",
    "webpack-hot-middleware": "^2.18.0",
    "write-file-webpack-plugin": "^4.0.0"

Closing since its unrelated to ExtractTextPlugin, something else in your setup is conflicting and the HTML is not passed to a loader and therfore webpack throws


🐛 Bug Report: File Upload not working

👟 Reproduction steps
When I want to create a file using createFile I get the error:
AppwriteException: Network request failed at Appwrite._callee56$ (http://<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:261917:25) at tryCatch (http://<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:28085:19) at Generator.invoke [as _invoke] (http://<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:28255:24) at Generator.throw (http://<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:28127:23) at rejected (http://<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:258615:34) at tryCallOne (http://<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:32938:14) at http://<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:33039:17 at http://<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:33479:21 at _callTimer (http://<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:33367:9) at _callImmediatesPass (http://<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:33406:7)

I debugged the request at the server and I get the POST request:
"POST /v1/storage/buckets/default/files/ HTTP/2.0" 400 1527 "-" "okhttp/3.14.9"

But when I do it with the appwrite web console I get:
"POST /v1/storage/buckets/default/files HTTP/2.0" 201 216 "https://appwrite.oberhauser.dev/console/storage/bucket?id=default&project=619d57cbe54c9" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:98.0) Gecko/20100101 Firefox/98.0"

So it looks like projectID and bucketID is missing.
And indeed, if I add the two params to this line https://github.com/appwrite/sdk-for-web/blob/6bedd589a9be12407d7756dd3231b4459a7f8631/src/sdk.ts#L2935
payload['id'] = bucketId;
payload['project'] = this.config.project;

and also add the query params to POST requests: https://github.com/appwrite/sdk-for-web/blob/6bedd589a9be12407d7756dd3231b4459a7f8631/src/sdk.ts#L1098
then the request is accepted, but returns an empty error message.
Appwrite version is 0.13.3, couldn't select it from this template.
👍 Expected behavior
It should be able to upload the file, so it should lead to this request + body:
"POST /v1/storage/buckets/default/files HTTP/2.0" 201 216 "https://appwrite.oberhauser.dev/console/storage/bucket?id=default&project=619d57cbe54c9" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:98.0) Gecko/20100101 Firefox/98.0"

👎 Actual Behavior
It leads to this request:
"POST /v1/storage/buckets/default/files/ HTTP/2.0" 400 1527 "-" "okhttp/3.14.9"

🎲 Appwrite version
Different version (specify in environment)
💻 Operating system
Linux
🧱 Your Environment
Using this in a react-native app and accessing an appwrite server on a Raspberry PI 4, running Ubuntu Server 21.10
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

@Gustl22 The request is fine, the project id is set in the header by SDKs (you need to call .setProject()) in the SDK.
The request is giving 400 error which means some params are missing. Was the file properly provided? Please check the console error docker-compose logs appwrite you will see the log there, also the SDK should throw proper exception, seems this is being used in Expo and something is not right. So please provide us the docker console logs immediately after this failed request.

I don't see where in code the projectId is set for the request createFile, see here. For other requests sure. And even then, the server doesn't consider the project param in Form-Data as valid param. Only query param lead to different outcome.
I think I already searched the logs but nothing relates to it. But I'll double check in a few days.

I don't see where in code the projectId is set for the request createFile, see here. For other requests sure. And even then, the server doesn't consider the project param in Form-Data as valid param. Only query param lead to different outcome.
I think I already searched the logs but nothing relates to it. But I'll double check in a few days.
And yes I did call setProjectand I also can use the auth the user etc...

I don't see where in code the projectId is set for the request createFile, see here. For other requests sure. And even then, the server doesn't consider the project param in Form-Data as valid param. Only query param lead to different outcome.
I think I already searched the logs but nothing relates to it. But I'll double check in a few days.
And yes I did call setProjectand I also can authenticate the user etc...

We don't set project id per request, it's already set in the header and every request use that header. Project param is not form field. Server accepts projectid as both header as well as query param. So if the project is set via header you don't have to worry that your request doesn't have it in query param.

This is a problem due to a quirk with how FormData and is implemented in RN (a File on the web is different than a File in RN).
For a workaround, see https://github.com/appwrite/sdk-for-web/issues/27#issuecomment-1179476286.
Closing this as a duplicate


SCB-373 change Rest args code/encoding to HttpClientFilter/HttpServer…

…Filter，so some body can do something through writing other Filters around args coding
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a JIRA issue filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
[x] Each commit in the pull request should have a meaningful subject line and body.
[x] Format the pull request title like [SCB-XXX] Fixes bug in ApproximateQuantiles, where you replace SCB-XXX with the appropriate JIRA issue.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Run mvn clean install to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Coverage increased (+0.04%) to 87.21% when pulling 5e52d4ac295009b3e83354a0f25e9db59e23beca on hwcse:SCB-373 into c3010365254b64d344694277f777c43f5b02116c on apache:master.

If user direct invoke rest producer by explorer, explorer will try to get favicon first,then producer will throw an null point exception


fix: chroma documentation to demonstrate usage of chroma not pinecone

Describe the bug
Currently the example in the Chroma connector docs references the Pinecone connector not Chroma.
To Reproduce
View in the docs here: https://unstructured-io.github.io/unstructured/ingest/destination_connectors/chroma.html#
Expected behavior
The example in the Chroma connector doc should demonstrate how to use the Chroma connector

I'm gonna fix this.


Added fragments reset and fixed line endings normalizing.

:+1:

Thanks @jakubjosef and @theigl!
Code looks good. Merging them into the master.


Kibana deployed with no config?

Did the terraform apply and out of the box I receive a “Kibana server is not ready”. I ssh and check kibana.yml and everything is commented out

The "Kibana server is not ready" message is completely normal - Kibana takes a while to load on first launch. It should have resolved itself after a few minutes. If not, please reopen and paste the kibana.yml contents and /var/log/user-data.log


NgxMasonryModule is not an NgModule

Hi
Firstly, thanks for supporting project. I encounter issue which I did not have in previous angular2-masonry plugin. I follow your documentation on installing and importing the module. When I compile error happens:
ERROR in Error: NgxMasonryModule is not an NgModule
    at _getNgModuleMetadata (D:\vugar\Lessons-app\node_modules\@angular\compiler-cli\src\ngtools_impl.js:140:15)
    at _extractLazyRoutesFromStaticModule (D:\vugar\Lessons-app\node_modules\@angular\compiler-cli\src\ngtools_impl.js:109:26)
    at D:\vugar\Lessons-app\node_modules\@angular\compiler-cli\src\ngtools_impl.js:129:27
    at Array.reduce (<anonymous>)
    at _extractLazyRoutesFromStaticModule (D:\vugar\Lessons-app\node_modules\@angular\compiler-cli\src\ngtools_impl.js:128:10)
    at Object.listLazyRoutesOfModule (D:\vugar\Lessons-app\node_modules\@angular\compiler-cli\src\ngtools_impl.js:53:22)
    at Function.NgTools_InternalApi_NG_2.listLazyRoutes (D:\vugar\Lessons-app\node_modules\@angular\compiler-cli\src\ngtools_api.js:91:39)
    at AotPlugin._getLazyRoutesFromNgtools (D:\vugar\Lessons-app\node_modules\@ngtools\webpack\src\plugin.js:207:44)
    at _donePromise.Promise.resolve.then.then.then.then.then (D:\vugar\Lessons-app\node_modules\@ngtools\webpack\src\plugin.js:443:24)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)

Project version:
"@angular/cli": "1.4.5",
"@angular/core": "^4.2.4",
"ngx-masonry":   "^0.5.4",

I hope you solve this problem,

Thanks for raising the issue, unfortunately my time is pretty limited right now but I'll take a look at this when I can.

@vugar005 This looks similar to the error I had with this gem (#1 ). I got around it by downloading the source and building it locally (and then everything was fine). I think the error has something to do with how it was packaged into an an npm package.

@thefliik  . Thanks. But it might be temporary solution because this way is error -prone. I hope you solve this problem.

+1
I have this issue when run "ng build -prod" from angular-cli. On local machine everything works fine.

Exactly the same issue trying to build with angular CLI, please help.


Check get_url_parts return value in automatic redirect creation

Addresses #7999. get_url_parts should always return a valid result since we only run it on sites that the page belongs to, but if it doesn't, we don't want it to error out (since this is only a background task).

Merged in 78bd8e43940e2c5058d8ade4bcd59ea2e4f1f810 (main) and 4273ad28a07beb4322838aea8edabd6fd7fd09bc (stable/2.16.x).


get reverse cosine similarity results?

How can we get the reverse results from the knnQuery?
By reverse i mean, it computes the cosine dist let's say as -1*cosine_dist?
i.e. the one which has the highest cosine dist should come first after i run the knnQuery..

@AdityaSoni19031997 it's very easy to do in Python, e.g., using numpy.


improper result for date command.

Please fill out the below information:

Your Windows build number:  (Type ver at a Windows Command Prompt)

Microsoft Windows [Version 10.0.19041.1]

What you're doing and what's happening:  (Copy&paste the full set of_specific_ command-line steps necessary to reproduce the behavior, and their output. Include screen shots if that helps demonstrate the problem.)

$ date --iso-8601=ns
2019-12-24T19:00:27,357428100+09:00
$ date --iso-8601=ns
2019-12-24T19:00:29,109509200+09:00
$ date --iso-8601=ns
2019-12-24T19:00:29,806925600+09:00
$ date --iso-8601=ns
2019-12-24T19:00:30,290930200+09:00
$ date --iso-8601=ns
2019-12-24T19:00:30,679012400+09:00
$ date --iso-8601=ns
2019-12-24T19:00:31,184642700+09:00

What's wrong / what should be happening instead:

Make sure the last two digits of nanosecond are 00.
It works only when php is WSL in the following cases.

But "u" can only parse microseconds up to 6 digits, but some language (like Go) return more than 6 digits for the microseconds, e.g.: "2017-07-25T15:50:42.456430712+02:00" (when turning time.Time to JSON with json.Marshal()). Currently there is no other solution than using a separate parsing library to get correct dates.

golang truncates when trailing 0.
https://www.php.net/manual/en/datetime.formats.php

Make sure the last two digits of nanosecond are 00.

Can you clarify the ask on this one a bit? WSL 2 (what I checked) does appear to always (sic) end the ns clock as '00', whereas Native Linux on metal returns rando two-digits (with a one in a hundred chance of '00'). That's a resolution thing, and probably the case on Hyper-V too.
But either way, your repro command always returns nine digits (as it must, because billions).

Can you clarify the ask on this one a bit?

Thanks for the reply.

WSL 2 (what I checked) does appear to always (sic) end the ns clock as '00',

That's exactly right.
I want to behave like Native Linux.
But it turned out to be difficult, thanks to you.
PHP applications developed with WSL may not work on Native Linux.
I will be careful about that.

PHP applications developed with WSL may not work on Native Linux.

Thanks for the follow-up. Either you've identified a bug in your PHP stack where your scenario (whatever it is) would fail 1/100 calls. This is possible but unlikely. Or there is something wrong with your scenario (the code) itself.
It sounds like you're unblocked by "being careful" (careful by whatever means), so that's good news. You might want to try a PHP group (stack overflow maybe), post a minimal script exhibiting the behavior, and get feedback on what went wrong and/or the best approach. Minimal is going to be critical to getting a good reply.
One could hypothetically contort this into a timer resolution ask, but that doesn't appear to be what is going on here. [You are going to come up zeros on Real Linux eventually too.]


Remote debugging with Docker doesn't work

Environment data
dotnet --info output: dotnet 6
VS Code version: 1.85
C# Extension version: 2.13.10
OmniSharp log
Steps to reproduce

Create a new IoT Edge Solution according to the documentation https://learn.microsoft.com/en-us/azure/iot-edge/tutorial-develop-for-linux?view=iotedge-1.4&tabs=csharp&pivots=iotedge-dev-ext
Run edge solution locally
Try to attach to the remote process according to the documentation https://learn.microsoft.com/en-us/azure/iot-edge/debug-module-vs-code?view=iotedge-1.4&tabs=c&pivots=iotedge-dev-ext
See error

Expected  behavior
VS Code is attached to the remote process.
Actual behavior
The VSDBG is not installed:

The error appears:

Starting: "docker" exec -i DataProcessor sh -c "~/vsdbg/vsdbg --interpreter=vscode"
Error from pipe program 'docker': sh: 1: /home/moduleuser/vsdbg/vsdbg: not found
The pipe program 'docker' exited unexpectedly with code 127.

Additional context
Docker file:

FROM mcr.microsoft.com/dotnet/runtime:6.0 AS base
RUN apt-get update &&
apt-get install -y --no-install-recommends unzip procps &&
rm -rf /var/lib/apt/lists/*
RUN useradd -ms /bin/bash moduleuser
USER moduleuser
RUN curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Debug -o out
FROM base
WORKDIR /app
COPY --from=build-env /app/out ./
ENTRYPOINT ["dotnet", "DataProcessor.dll"]

Launch config:

      {
        "name": "DataProcessor Remote Debug (.NET Core)",
        "type": "coreclr",
        "request": "attach",
        "processId": "${command:pickRemoteProcess}",
        "pipeTransport": {
            "pipeProgram": "docker",
            "pipeArgs": [
                "exec",
                "-i",
                "DataProcessor",
                "sh",
                "-c"
            ],
            "debuggerPath": "~/vsdbg/vsdbg",
            "pipeCwd": "${workspaceFolder}",
            "quoteArgs": true
        },
        "sourceFileMap": {
            "/app": "${workspaceFolder}/modules/DataProcessor"
        },
        "justMyCode": true
    }

I am not enough of a Docker expert to tell you why that doesn't work, but clearly there must be something wrong with that way of trying to run the getvsdbgsh script. Do docker verbose logs spit anything out? If you use docker exec after the fact, does that fail too?

Unfortunately there are no errors.
VS Code logs:

Docker Desktop logs:

You want to try something like this:
docker exec -it your-container-name-here /bin/sh
$ curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/test
/bin/sh: 6: curl: not found

Unfortunately, this does not help fix debugging issues.

To be clear: the idea is this will hopefully tell you why the command is failing. If it passes when run from docker exec then you will need to figure out how to get docker image building to actually print failures. But hopefully this is an easy way to see failures.

You are the best!
The following command helped to solve the issue:
RUN apt-get -y update; apt-get -y install curl

Glad you got it working!


Some key bindings not effect in popup windows.

Observed behavior
Some key bindings not effect in popup windows.
Expected behavior
I want map! macro can define key binding for all window type stability.
Steps to reproduce

open a buffer in popup window(M-x doom/open-scratch-window, "gd"...)
switch to that windows:scrach/message/help... (someone switch automatic)
then some key binding not effect. typical is I can't switch workspace with M-1..9
if i C-` toggle popup window , switch workspace action seems unnormally.

System information

Click to expand
DOOM Doctor
Running Emacs v<IP_ADDRESS>, commit 4dbca5b21fa0e380b70ae83d286ad56416d218b1

shell: /usr/bin/zsh
Compiled with:
  XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
  NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
  TOOLKIT_SCROLL_BARS GTK3 X11 MODULES XWIDGETS
uname -a:
  Linux office 4.10.0-38-generic #42~16.04.1-Ubuntu SMP Tue Oct 10
  16:32:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Attempt to load DOOM: success!

The dashboard is now back in normal mode, by default, which should fix many of these keys. A better solution will be needed later (because these keys may still break for non-evil users), but it should fix your issue. Let me know if it didn't!

dashboard work fine, but the key issue is when focus in windows with popup property especially doom:scratch/message... then switch workspace key binding invalid, and can't split window in frame.

yeah, It works fine,thx


Add a note explicitly saying Create Synonym is not supported in Azure SQL DB

We had a customer encounter the error "This feature is not supported in this version of SQL Server" when trying to run the Create Synonym query against their DB. It would be helpful to specifically call this out for Azure SQL DB for customers to find that it's not supported.

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

ID: 9ea61c98-ff11-ad36-8f1a-ce7e61ef707d
Version Independent ID: a419d1b1-2cca-c2d3-839e-af13668480d2
Content: Resolving T-SQL differences-migration - Azure SQL Database
Content Source: articles/azure-sql/database/transact-sql-tsql-differences-sql-server.md
Service: sql-database
Sub-service: single-database
GitHub Login: @stevestein
Microsoft Alias: sstein

Hi, we are investigating your issue and will update you shortly.

@jcbrooks92 The creation for the Synonym is available in Azure DB.
If you are looking for using Synonym for Cross DB joins that feature is not currently available and you can upvote the Azure Feedback here.

@jcbrooks92 Please get back to us for any further info regarding this,

@NavtejSaini-MSFT thank you. Yes it was for the cross db join operations that was being inquired about. Thank you for the link to the feedback request. I think this provides the information needed. Thank you


No Dzongkha?

I can't find the entry for Dzongkha language spoken in Bhutan. I even search the ISO 639-3 name but can't find anything.

Hi,
Dzongkha (ISO 639-3 dzo, correct?) was not part of WALS' compilation (see details here) and hence is also not available in the CLDF version of the data.

Yes, that's what i meant, thank you for the respond!


Refactor codebase to improve maintainability

This PR splits everything up into separate modules in an attempt to improve maintainability. I'm not super familiar with Lua yet, but imo this makes it a little bit easier to poke around.

And as mentioned in the commit message this should make it fairly easy to split out the color definitions to separate files which might be useful as the list of highlight groups grows.

I think this makes sense to me, going to review a bit more and test it out.
@f3fora may have thoughts on this, though.

One downside about this is that I usually use a mapping to run :luafile % to source changes quickly but that doesn't work anymore because:
Error while calling lua chunk: lua/nordbuddy/colors.lua:1: module 'nordbuddy.utils' not found:
        no field package.preload['nordbuddy.utils']
        no file './nordbuddy/utils.lua'

Not a huge deal, but definitely kind of annoying.

It makes sense!
I personally prefer having a nordbuddy/init.lua rather than a nordbuddy.lua.
Following this philosophy, should we split the different colors in different files? For example:
norbuddy/colors
|
+--- init,lua
+--- standart.lua
+--- diff.lua
...

One downside about this is that I usually use a mapping to run :luafile % to source changes quickly but that doesn't work anymore because of the modules.

Yeah. And even if you source the main file you won't get changes from the modules because they're cached and has to be cleared by doing some manipulation on a global (I think plenary has a nice utility function for this actually). I get how this can be a bit annoying.

I personally prefer having a nordbuddy/init.lua rather than a nordbuddy.lua.

I find this to be a bit nicer as well. This has been renamed.

Following this philosophy, should we split the different colors in different files?

I think this would be a good idea.

I've split up the color definition files now. I settled on making it so that colors/init.lua simply returns a table of all the module filenames and let the initialization function require these files.
Let me know if you'd rather want the require of modules to be on the top-level as this was my first strategy that I can easily revert to.

Happy to merge whenever the PR is ready!

I'm fairly happy with the result and haven't run into any issues so far, so I'd say it's ready to go :blush:
Maybe @f3fora has some input on these latest changes ?

Nice! Everything looks good to me, going to merge and can address in smaller follow ups since the overall idea is solid 👍.

Awesome. Sounds good to me! :)


GUI Shows "Laadplan start at ...."

Describe the bug
When you activate( Min+ ) PV mode with a charge plan in future the status show " Laadplan begint op maandag 04:22"
You dont see status update from the current moment (Charging, not enough pv, swithcing phases  etc etc)
Maybe move charge plan message next to plan.

Steps to reproduce

Make charge plan for tomorrow.
activated PV or Min + PV

...
Configuration details
It is gui thing

Log details
It is gui thing

What type of operating system are you running?
Linux
Version
0.126.4

Please share /api/state

{
result: {
auth: {
vehicles: { }
},
battery: [ ],
batteryDischargeControl: false,
batteryMode: "unknown",
bufferSoc: 0,
bufferStartSoc: 0,
circuits: {
main: {
power: -77,
current: 5,
maxPower: 15870,
maxCurrent: 23
}
},
currency: "EUR",
fatal: null,
greenShareHome: 1,
greenShareLoadpoints: 0.6886153846153846,
gridConfigured: true,
gridCurrents: [
5,
-3,
-2
],
gridPower: -77,
homePower: 0,
interval: 20,
loadpoints: [
{
chargeCurrent: 7,
chargeCurrents: [
7.012000560760498,
0,
0
],
chargeDuration:<PHONE_NUMBER>00,
chargePower: 1625,
chargeRemainingDuration:<PHONE_NUMBER>0000,
chargeRemainingEnergy: 28990.555555555587,
chargeTotalImport: 4663.159,
chargedEnergy:<PHONE_NUMBER>9996362,
chargerFeatureHeating: false,
chargerFeatureIntegratedDevice: false,
chargerIcon: null,
chargerPhases1p3p: true,
chargerPhysicalPhases: null,
charging: true,
connected: true,
connectedDuration: 0,
disableThreshold: 200,
effectiveLimitSoc: 80,
effectiveMaxCurrent: 16,
effectiveMinCurrent: 6,
effectivePlanSoc: 80,
effectivePlanTime: "2024-05-27T05:00:00Z",
effectivePriority: 0,
enableThreshold: 0,
enabled: true,
limitEnergy: 0,
limitSoc: 0,
maxCurrent: 16,
minCurrent: 6,
mode: "minpv",
phaseAction: "inactive",
phaseRemaining: 0,
phasesActive: 1,
phasesConfigured: 0,
phasesEnabled: 1,
planEnergy: 0,
planOverrun: 0,
planProjectedStart: "2024-05-27T04:22:27+02:00",
planTime: "0001-01-01T00:00:00Z",
priority: 0,
pvAction: "inactive",
pvRemaining: 0,
sessionCo2PerKWh: null,
sessionEnergy:<PHONE_NUMBER>9996362,
sessionPrice: 0.02908748174438244,
sessionPricePerKWh: 0.17628776814781122,
sessionSolarPercentage: 29.765829423182783,
smartCostActive: false,
smartCostLimit: 0.2,
title: "Oprit",
vehicleClimaterActive: false,
vehicleDetectionActive: false,
vehicleLimitSoc: 0,
vehicleName: "Tesla",
vehicleOdometer: 0,
vehicleRange: 248,
vehicleSoc: 48.18109756097557
}
],
prioritySoc: 0,
pv: [
{
power: 1119
}
],
pvEnergy: 0,
pvPower: 1119,
residualPower: 0,
siteTitle: "Thuis",
smartCostType: "priceforecast",
sponsor: "xxxx",
sponsorTokenExpires: 0,
statistics: {
30d: {
avgCo2: 0,
avgPrice: 0.14214661391394842,
chargedKWh: 57.90686463441976,
solarPercentage: 47.511930578926304
},
365d: {
avgCo2: 0,
avgPrice: 0.14214661391394842,
chargedKWh: 57.90686463441976,
solarPercentage: 47.511930578926304
},
total: {
avgCo2: 0,
avgPrice: 0.14214661391394842,
chargedKWh: 57.90686463441976,
solarPercentage: 47.511930578926304
}
},
tariffGrid: 0.251,
tariffPriceHome: 0,
tariffPriceLoadpoints: 0.07815753846153846,
vehicles: {
Tesla: {
title: "Tesla",
capacity: 82,
limitSoc: 80,
features: [
"CoarseCurrent"
],
plans: [
{
soc: 80,
time: "2024-05-27T05:00:00Z"
}
]
}
},
version: "0.126.4"
}
}

Moving this info to the bottom does not work on mobile, but I'll think of a good way to combine both information in the status text.


Update import path

Logrus renamed the uppercase "Sirupsen" to "Sirupsen":
https://github.com/sirupsen/logrus/pull/384
Several libraries that integrate with Logrus are using the new lowercase import
path, for example the graylog hook:
https://github.com/gemnasium/logrus-graylog-hook/commit/daf02e0efe6f4dee3f7085184f5d527cf5cf0f6b

Coverage remained the same at 83.747% when pulling cea7300703e7819c8f73a3069928d70ba4692880 on Carpetsmoker:import-path into 7c1b7faba7ed5772effc03db8e1faa8c90624660 on evalphobia:master.

Coverage remained the same at 83.747% when pulling cea7300703e7819c8f73a3069928d70ba4692880 on Carpetsmoker:import-path into 7c1b7faba7ed5772effc03db8e1faa8c90624660 on evalphobia:master.

Coverage remained the same at 83.747% when pulling cea7300703e7819c8f73a3069928d70ba4692880 on Carpetsmoker:import-path into 7c1b7faba7ed5772effc03db8e1faa8c90624660 on evalphobia:master.

Can this please be merged?

Oh, finally. Thanks!
Note: https://github.com/evalphobia/logrus_sentry/releases/tag/v0.3.0


Removes OpenRangeValidator and use maliput's instead.

Related to https://github.com/maliput/maliput/issues/528
Relies on https://github.com/maliput/maliput/pull/529
Summary
What the title says.
Checklist

[x] Signed all commits for DCO
[x] Added tests
[ ] Added example and/or tutorial
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] Consider updating Python bindings (if it affects the public API)

action-ros-ci-repos-override: https://gist.githubusercontent.com/francocipollone/b218a7671b9bb6b6be2c22ac19f85793/raw/32dd30eff956e45ad3110af433d3ee7051aee2be/maliput_malidrive.repos

Fpr__maliput_malidrive__ubuntu_focal_amd64  CI will fail until a new maliput's release is done.

@ros-pull-request-builder retest this please


add gulp-changed module to development env

I think we need to introduce gulp-changed to fasten the dev speed, and I would like to remove cleanup step for development env.
what do you think?

@cctuan , sorry for the late response, I think this is useful to decrease the time when re-building. Can you help to provide an updated PR based on latest master ? Thanks !!!!

Thanks @cctuan, @rickychien already fixed this !


Passing pointer to out of scope local variable

https://github.com/MolSSI-MDI/MDI_Library/blob/54a477c3ab067384916059b5cc8b881b24babeff/MDI_Library/mdi.c#L2126
This piece of code is problematic since it creates a pointer to a local variable (allocated on the stack) and passes it to a function after the stack frame has been released. It can only work by chance. Here is the info from Coverity scan static code analysis.

Thanks very much for pointing this out Axel.  This should be resolved by commit 6760fd2.

Thanks again!  The v1.4.26 release includes this fix.


[WIP] am proxy

Description
This PR adds support for an am proxy command, which would

Start serving explorer, as usual (can still be configured via --listen-address and --explorer-address)
Optionally proxy requests to /prometheus to a user-specified url (configured via --prometheus-url)
NOT download or launch a local Prometheus

So, if we already had prometheus running on http://localhost:8063 for some odd reason, we could run:
am proxy --prometheus-url http://localhost:8063

And am would not download/launch prometheus, but explorer would still be accessible and automagically connected to the Prometheus instance we're interested in connecting to.
For what it's worth, I tested that scenario, and it does indeed work.
Where I need help
I wanted to create a handler factory, but struggled immensely with the type definition, because you can't use impl Trait to describe the return type for a Fn trait (https://github.com/rust-lang/rust/issues/99697).
What I wanted was something that looked like:
if is_proxying_prometheus {
        app = app
            .route("/prometheus/*path", any(prometheus::handler_factory(prometheus_upstream_base)))
            .route("/prometheus",  any(prometheus::handler_factory(prometheus_upstream_base)));
    }

Ultimately, I gave up, and opted to use inline blocks/closures to define the handlers for this functionality.
Additionally, I figured we would need to rewrite the path of any requests to /prometheus/* before forwarding to the external prometheus. There has to be a better/more concise way than I chose.
Basically, this PR still needs some cleanup, api review (is proxy the right command name even?), and probably some tests.
Checklist

[ ] Changelog updated

Additionally, I figured we would need to rewrite the path of any requests to /prometheus/* before forwarding to the external prometheus. There has to be a better/more concise way than I chose.

I think this is the correct way of dealing with this :+1:

Basically, this PR still needs some cleanup, api review (is proxy the right command name even?), and probably some tests.

I think proxy is the best name.


Library maintence? Point to alternatives?

Hi there! Are you still maintaining this project? If not would you point to other libraries who are solving similar problems?
Full disclosure I maintain a library called yubaba (https://github.com/madou/yubaba) which has been around for a few years. It solves a similar problem to react-overdrive while also providing other animations, a really handy orchestration layer to manage the animations, and a method for consumers to make their own animations.
Cheers

While I don't actively add features or improve it, react-overdrive should still work and is a simple solution to the problem.
I just taken a look into yubaba and it looks good! I won't be adding links to components I haven't used myself, but people can find this issue and find yubaba.


update test RSA certificate to use SHA-256 instead of SHA-1

closes #1519
Status
READY
ssl_client1.c when running with ssl_server.c output before:
 . Seeding the random number generator... ok
  . Loading the CA root certificate ... ok (0 skipped)
  . Connecting to tcp/localhost/4433... ok
  . Setting up the SSL/TLS structure... ok
  . Performing the SSL/TLS handshake.../home/iluxonchik/Documents/GitHub/mbedtls/library/ssl_tls.c:4641: x509_verify_cert() returned -9984 (-0x2700)
 ok
  . Verifying peer X.509 certificate... failed
  ! The certificate is signed with an unacceptable hash.

ssl_client1.c when running with ssl_server.c output after:
. Seeding the random number generator... ok
. Loading the CA root certificate ... ok (0 skipped)
. Connecting to tcp/localhost/4433... ok
. Setting up the SSL/TLS structure... ok
. Performing the SSL/TLS handshake... ok
. Verifying peer X.509 certificate... ok

Details
I used the CA certificate and private key present in the source code and simply generated a new certificate. The new certificate is valid until May 04 2027.
Basically, I ran the following commands:
openssl rsa -in ca_key.pem -out ca_key_clear.pem

openssl x509 -in srv_cert.pem -signkey srv_key.pem -x509toreq -out out.csr

openssl x509 -req -in out.csr -CA ca_cert.pem -CAkey ca_key_clear.pem -out out.pem -extfile v3.ext -days 3325

Where:

ca_key.pem is the const char mbedtls_test_ca_key_rsa[] from certs.c
ca_cert.pem is the const char   mbedtls_test_ca_crt_rsa[] from certs.c
srv_cert.pem is the const char mbedtls_test_srv_crt_rsa[] from certs.c
srv_key.pem is the const char mbedtls_test_srv_key_rsa[] from certs.c
ca_key_clear.pem is the decrypted ca_key.pem

Raw Updated Certificate String:
-----BEGIN CERTIFICATE-----
MIIDPzCCAiegAwIBAgIJANBEZkZxdopmMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNV
BAYTAk5MMREwDwYDVQQKDAhQb2xhclNTTDEZMBcGA1UEAwwQUG9sYXJTU0wgVGVz
dCBDQTAeFw0xODAzMjcxNDEzMjFaFw0yNzA1MDQxNDEzMjFaMDQxCzAJBgNVBAYT
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDESMBAGA1UEAxMJbG9jYWxob3N0MIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwU2j3efNHdEE10lyuJmsDnjkOjxK
zzoTFtBa5M2jAIin7h5rlqdStJDvLXJ6PiSa/LY0rCT1d+AmZIycsCh9odrqjObJ
HJa8/sEEUrM21KP64bF22JDBYbRmUjaiJlOqq3ReB30Zgtsq2B+g2Q0cLUlm91sl
c0boC4pPaQy1AJDh2oIQZn2uVCuLZXmRoeJhw81ASQjuaAzxi4bSRr/QuKoRAx5/
VqgaHkQYDw+Fi9qLRF7iGMZiL8dmjfpd2H3zJ4kpAcWQDj8n8TDISg7v1t7Hxydr
xwU9esQCPJodPg/oNJhby3NLUpbYEaIsgIhpOVrTD7DeWS8Rx/fqEgEwlwIDAQAB
o00wSzAdBgNVHQ4EFgQUpQXoZLjc32APUBJNYKhkr02LQ5MwCQYDVR0TBAIwADAf
BgNVHSMEGDAWgBS0WuSls97SUva51aaVD+s+vMf9/zANBgkqhkiG9w0BAQsFAAOC
AQEAcvY0HeIT7zmweE5/xk20kvFc0Qbc9dLzdxDlGLv7kDx/9brxjCRTa0/YejuT
Pm8diFs1U6OvlzdROkbZpncW9c62mkg5zRrCo3T2E0SZx9GP8JNlo7MhiESjDsFO
hcCGCKRnjOlyX4w25hA9JkwnkayeeTWnLwXS0BoFI2liWZNOLlxaSudffD4P1Hls
vYOE0cU99bIkaZa9/aNygcjB08dUrD5AFvQO7S7gPCrpDrnuHEXi8EFlbGZfTAHy
u+ozycErFLhYhZjtKUs2d1YsK4QKlI1PVjlucfrRXaEnLbi37cKqT68EceHh6ztd
lPlhwRx+VicKsW8NHZ3k/wl3Yg==
-----END CERTIFICATE-----

Backports
[edited by mpg] Needed: mbedtls-2.16 and mbedtls-2.7

Hi @iluxonchik I have thought of something. Since you are already working on this file and area, would it be too much trouble for you to change all the certificates from "Polar SSL" to "Mbed TLS" in the subject \ issuer ?

@RonEld it wouldn't cause me any troubles at all :) I was going to ask if it's okay to re-generate the SHA-1 certificate too, so that both of them have the same expiry date.

@RonEld okay :) I'm making changes in small commits, so that things can be rolled back easily, if needed.

I meant keeping the previous structure of CA section and CRT section

I can define it in a separate #if defined() block underneath, if you prefer so. I'm not sure if that's what you mean.
I'm going to refactor this part (create a separate entry for TEST_SRV_CRT_RSA_SOME).
#if !defined(TEST_CA_CRT_RSA_SOME) || defined(MBEDTLS_SHA1_C)

I did add a minor comment on wrong comment, and asked if possible to rename PolarSSL to Mbed TLS, if not too much trouble

I'ts not problem at all :) I'm going to do it.

@iluxonchik

I can define it in a separate #if defined() block underneath, if you prefer so. I'm not sure if that's what you mean.

You can keep the struct it as is. I would like to hear @AndrzejKurek opinion as well though

@RonEld okay
There is one thing might be confusing though: if TEST_CA_CRT_RSA_SOME is defined, TEST_SRV_CRT_RSA_SOME will be defined too. Despite that, there are two separate if blocks. I think I should either add a comment on that or marge both of defines into a single one (like TEST_CA_AND_SRV_CRT_RSA_SOME).
Also, what does SOMEin TEST_CA_CRT_RSA_SOME stand for? Does it mean that "some" RSA certificate has been defined already (in this case and SHA-256 cert)?

@iluxonchik

Also, what does SOME in TEST_CA_CRT_RSA_SOME stand for? Does it mean that "some" RSA certificate has been defined already (in this case and SHA-256 cert)?

yes

I've made a commend here about a possible bug. If it's not a bug, but rather the desired behavior/default fallback case, I have a refactoring suggestion to the current code.
Regarding the last commit. How about refactoring it like this?
if defined(MBEDTLS_SHA1_C) or not defined(TEST_CA_CRT_RSA_SOME) or not defined(TEST_CA_CRT_RSA_SOME):
    TEST_CA_CRT_RSA_SHA1 = " "----- BEGIN CERTIFICATE --- ..."
    TEST_SRV_CRT_RSA_SHA1 = "----- BEGIN CERTIFICATE --- ..."

    if not defined(TEST_CA_CRT_RSA_SOME):
        ca_cert = TEST_CA_CRT_RSA_SHA1
    if not defined(TEST_SRV_CRT_RSA_SOME):
         server_cert = TEST_CA_SRV_RSA_SHA1

The if is longer, but I think it's easier to read it that way, since everything is in one place and follows the same logic.

@iluxonchik I am not sure what bug you are referring.
If you think there is a bug in the existing code, please open an issue, and we will look at it. I prefer not to lose track of the current topic.
As for your suggestion, I believe you have some copy\paste errors.
If you think it's better, please push your commit, so we could look at the full picture, but in superficial check, it seems reasonable. I would prefer the code to be readable, so I believe your suggestion may be good.

@AndrzejKurek I don't understand what you mean.
I think it is better to have the blocks seperated logically to CA block and CRT block, as I think it's a bit more readable.
@iluxonchik would you mind splitting the two blocks into CA block ( containing the SHA2 and SHA1 certificate) and into CRT block ( containing the SHA2 and SHA1 certificate)?

@RonEld I don't mind at all.
I'm not sure if I understand what you want me to do correctly though. So you want me to do the SHA-1 and SHA-2 certificates definitions all in one place for the CA and the Server. This would mean that I would have some duplicate code in both of the blocks (e.g. two #if defined(MBEDTLS_SHA256_C) one when defining the CA's cert and one when defining the Server's cert), correct?

@iluxonchik Yes, I am talking about #ifdef duplications. But I think this would be more readable to users.
To clarify what I mean, in draft:
#if defined(MBEDTLS_SHA256_C)
#define TEST_CA_CRT_RSA_SHA256  ....
#define TEST_CA_CRT_RSA_SOME
#endif /* MBEDTLS_SHA256_C */

#if !defined(TEST_CA_CRT_RSA_SOME) || defined(MBEDTLS_SHA1_C)
#define TEST_CA_CRT_RSA_SHA1 ...

#if !defined (TEST_CA_CRT_RSA_SOME)
...
#endif /* TEST_CA_CRT_RSA_SOME */
#endif /*  !defined(TEST_CA_CRT_RSA_SOME) || defined(MBEDTLS_SHA1_C) */

#if defined(MBEDTLS_SHA256_C)
#define TEST_SRV_CRT_RSA_SHA256  ....
#define TEST_SRV_CRT_RSA_SOME
#endif /* MBEDTLS_SHA256_C */

#if !defined(TEST_SRV_CRT_RSA_SOME) || defined(MBEDTLS_SHA1_C)
#define TEST_SRV_CRT_RSA_SHA1 ...

#if !defined (TEST_SRV_CRT_RSA_SOME)
...
#endif /* TEST_SRV_CRT_RSA_SOME */
#endif /*  !defined(TEST_SRV_CRT_RSA_SOME) || defined(MBEDTLS_SHA1_C) */

Okay, I figured out the issue.
If the provided CA cert is SHA-1 while the server cert is SHA-256, the certificate check fails on the client side. I always had this in mind, but thought that it was allowed. Is there a problem with having a CA SHA-1 cert and a server SHA-256 cert in the chain?
The reverse (CA with SHA-256 cert and server with SHA-1 cert) is also true: the connection fails.
I checked and the SHA-1 and SHA-256 CA certs seem to be signed with the same private key.

I'm not sure if this is a gnutls-cli peculiarity, because using openssl s_client verifies the certificate fine.
Here's what's happening:
In the test you mentioned, the server will use an SHA-256 signed certificate. The specified CA certificate is the SHA-1 signed one. certs.c has two CA RSA certificates: one SHA-1 signed and one SHA-256 signed.
When using the openssl req ... command if the certificate provided in the -CA option is the SHA-1 signed one (the one that's specified as the CA in the gnutls-cli command), everything works fine. If you specify the SHA-256 signed one in the -CA option, it fails.

@RonEld / @gilles-peskine-arm - Can you please re-review?

@iluxonchik I apologize for delay in reply
When I look at the failure message from gnutls-cli I see the following message:
- Status: The certificate is NOT trusted. The certificate issuer is unknown.

The issuer of the certificate is:
issuer `C=NL,O=PolarSSL,CN=PolarSSL Test CA'

gnutls-cli runs with the following certificate as the CA:
$GNUTLS_CLI --x509cafile data_files/test-ca_cat12.crt"

looking at this CA certificate I see the following subject:
 Subject: C=NL, O=PolarSSL, CN=PolarSSL Test CA

Please note the whitespace after the comma.It's a long shot, but perhaps it's nothing, but perhaps openssl knows how to parse the white space and gnutls-cli doesn't.
In addition, note that the certificate sent is a SHA256 hashed certificate, while the CA used is a SHA1 . In anyway, this test is for sending SHA1 certificate, and in fact, the certificate sent is a SHA256,
You should change the code, to be able to send a SHA1 certificate when asked `allow_sha1=1"
You can see in the next test: "ClientHello without extensions, SHA-1 forbidden in certificates on server", that the server is set with a device certificate and a key, which are SHA1, to make the gnuttls-cli accpet them.
I suggest adding to the "ClientHello without extensions, SHA-1 allowed" the key and server to be sent, because before this fix, the default device certificate used was a SHA1 certificate. A proper fix though , in my opion, is to  use a CA with SHA256 on openSSL and gnutls-cli

I tested my suggestion, and when changing in the test "ClientHello without extensions, SHA-1 allowed" the server to use the Sha1 certificate:
"$P_SRV debug_level=3 key_file=data_files/server2.key crt_file=data_files/server2.crt" \

The test passes.
I ran:
./tests/scripts/all.sh --no-yotta --no-armcc --keep-going

as suggested by @gilles-peskine-arm
@iluxonchik I understand this has taken long time, and that you might not be available at the moment.
Will you be able to do this change?

I created #2008 for the task of changing all certificates used in ssl-opt.sh to SHA256, unless explicitely testing SHA1

Hello @RonEld I will look into this later today and write back. Thank you for the updates.

@RonEld hello, I will gladly do the change. I'm very tight on time and full of work now, so this might take a few days.

@AndrzejKurek Can you please re-review this? This has been reworked by Ron and approved by Krzys, and is now waiting for a second approval.
@RonEld Can you prepare backports? Even with a second review, we can't merge this without backports.

This is now fully approved and passes CI, but is held back by lack of backports.

@k-stachowiak @AndrzejKurek I have made minor modifications, to use certificates from our data_files.
Please review

Backports raised in #2435 and #2436

Removing the "needs backports" label, as all backports have been fully approved.
cc @sbutcher-arm @mpg

CI only failed in the know-fragile timing test on BSD, so as good as a pass.

CI passed, two approvals, has a ChangeLog entry, no need for documentation change, and is covered by existing tests, has backports to all relevant branches that are ready, so "ready for merge".


[ru] Add "Tightly Coupled Architecture"

Describe your changes
[ru] Add "Tightly Coupled Architecture" #3203
Related issue number or link (ex: resolves #issue-number)
Checklist before opening this PR (put x in the checkboxes)

[x] This PR does not contain plagiarism

don’t copy other people’s work unless you are quoting and contributing it to them.

[x] I have signed off on all commits

signing off (ex: git commit -s) is to affirm that commits comply DCO. If you are working locally, you could add an alias to your gitconfig by running git config --global alias.ci "commit -s".

@hcz Thanks for your contribution! Please note that you have to use dev-ru both as a source to create your own branch when editing/adding files and as a target one to merge your PR into.

/lgtm


Security issue: Sessions of logged out users

Describe the bug
The sessions seem strange. After log out I clear my cookies, log in as a user (A) with admin rights. All works. I log out. (it seems a record page has to be open at log out - not approved)
Now i choose a user (B) which has no roles at all, so only the role Everyone should be valid. After i log in i can see the correct user (->B) in the upper right corner - the one i logged in with. But i still have the permissions of my administration user (A) and if i create a record the field createdBy says the record was created by A.
To Reproduce
As reported here with user token payloads:
Forum report
and here
Forum report 2
Expected behavior
Under no circumstances it should be possible to steal permissions from other users.

solved: 2021.3.5


Stablize dependency versions

When attempting to install the google/apiclient library at two different times, breaking changes were introduced in on of the google/apiclient's dependencies (google/apiclient-services).
This is due to the fact that a .gitignore file is not versioned controlled, which would allow locking down only stable versions of dependencies.
Additionally, the dependency that was updated (google/apiclient-services) is referenced by @dev which allows going from v0.2 to v0.3.
There are breaking changes in the v0.3 of google/apiclient-services, namely class name changes.

@AwesomeBobX64 this is not the correct way to handle this problem. composer.lock is not supposed to be committed to utility libraries such as these, and only to deployed applications.
What you need to do is declare a composer.json in your own application, which will generate its own composer.lock that you can then commit. Because this library locks to @dev, it's actually allowing you to define v0.2 OR v0.3 in your own project. So in your project, your composer.json should look something like this:
{
    "require": [
        "google/apiclient":"^2.0",
        "google/apiclient-services":"v0.2"
    ]
}

I'm confused as to why this PR was declined.  I ran into a breaking API change between minor versions of your package; a bug that can be prevented by the exact changes proposed here.
Bundler, npm, and most other dependency managers recommend committing the lockfile, and Composer is no exception:
https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file
The justification is simple: 3rd party packages change, so don't let those breaking changes creep into your project.  The solution you're proposing requires that users of the Google API Client have knowledge of your package's dependencies, a prospect that seems to undermine the case for using libraries.

@AlecHFerguson If this library included a composer.lock file, it would not have any affect in your project. Instead, your library should include a composer.lock file to lock these dependencies.
The downstream google/apiclient-services repository has 100+ APIs which are often updated. They do not follow semantic versioning, which makes it impossible to provide both the flexibility to update to the latest version and the guarantee that updating won't break your code.
The current implementation allows you to lock the downstream google/apiclient-services dependency to a version if you need to, or get the latest APIs when desired.

That is not true. I don't believe you understand the semantic versioning specification that your package versions imply. Please check out semver.org and reconsider our pull requests.
Sent from my iPhone

On Jul 14, 2016, at 10:38 AM, Brent Shaffer<EMAIL_ADDRESS>wrote:
@AlecHFerguson If this library included a composer.lock file, it would not have any affect in your project. Instead, your library should include a composer.lock file to lock these dependencies.
The downstream google/apiclient-services repository has 100+ APIs which are often updated. They do not follow semantic versioning, which makes it impossible to provide both the flexibility to update to the latest version and the guarantee that updating won't break your code.
The current implementation allows you to lock the downstream google/apiclient-services dependency to a version if you need to, or get the latest APIs when desired.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@AwesomeBobX64
Your PR does two things:

Includes a composer.lock - this will have no effect for projects pulling this library in as a dependency. The linked-to article refers to committing the lock file for applications, but this repository is not an application, it is a dependency, and therefore does not need a lock file.
Sets the dependency for google/apiclient-services to v0.2. This is too strict of a requirement, as the APIs are constantly updating.

That composer.lock file WILL lock the consumers of this package to only download the dependency versions identified in the composer.lock file. That is the purpose of including the composer.lock file in version control.
If your dependencies aren't stable, lock down to stable versions via the composer.lock file. v0.3 vs v0.2 completely changed the interfaces of the classes and is a breaking change. This is why it is important to lock down these dependency versions.

An update in the auth package caused our dependency on the google/apiclient to fail because even though we had locked into 2.0.0 of the google/apiclient package, it's dependency on the google/auth package was loose enough that even though my code hadn't changed, the dependency code HAD and I was encountering bugs from the now updated google/auth package.
The dependencies should be locked down in a composer.lock file because of problems like these. When you have tested new versions of your dependencies still work with your package, then release a new version of your package with an updated composer.lock file which locks in which dependencies were tested to work with the new version of your package.
This is not an uncommon practice with mature, versioned package development processes.
Please reconsider.

I have explained the rationality behind these decisions, as well as how composer lock files work. There is nothing more to consider.


Virtual /WEB-INF/lib entries do not work corretly with Tomcat 7

Hi,
It turns out that when using latest version of Gretty with Tomcat 7 ServletContext.getResourcePaths("/WEB-INF/lib") returns collection containing always one entry only, no matter how many jars are in WEB-INF/lib when the actual war is built. Tomcat 8  and Jetty 9 work as expected.
And minor thing - in the docs http://akhikhl.github.io/gretty-doc/Web-app-virtual-webinflibs.html, the example is ServletContext.getResourcePaths("WEB-INF/lib"), while it will work only with leading slash, like this: ServletContext.getResourcePaths("/WEB-INF/lib")
Thanks,
Vadim

Hi Vadim,
I fixed the doc.
I confirm: the bug is reproducible on tomcat7 and tomcat8, but not on Jetty. Will have a look.

This will be fixed by https://github.com/saladinkzn/gretty/issues/20


python3Packages.tox: 3.27.1 -> 4.0.16

Description of changes
(Keeping this as a draft PR while waiting for feedback, because there are many changes involved here...)
Bump tox to new major version, bringing along updates for dependencies.
Main question: should I break into multiple PRs instead (especially for packaging and virtualenv, since they trigger many updates)? Or is using one commit per package updated enough?
Tox 4 changelog and breaking changes:
https://tox.wiki/en/latest/changelog.html#v4-0-16-2022-12-20
https://tox.wiki/en/latest/faq.html#breaking-changes-in-tox-4
Load bearing packages that trigger many updates:
https://packaging.pypa.io/en/latest/changelog.html#id1
https://virtualenv.pypa.io/en/latest/changelog.html#v20-17-1-2022-12-05
Updated packages:
https://github.com/tox-dev/py-filelock/releases/tag/3.8.2
https://github.com/chardet/chardet/releases/tag/5.1.0
New package:
https://github.com/tox-dev/pyproject-api/blob/main/docs/changelog.rst#v121---2022-12-04

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Please split into one commit per package with correctly formatted committ messages, e.g. python310Packages.tox: 3.27.1 -> 4.0.16.

Broke into one commit per message, and rebased to python-updates instead of staging.
Should I mark it ready to review and run more CI checks?

I have cherry picked all changes into my local python-updates tree. Building towards tox on staging takes a while and I have to fix issues along the way. Will push the changes later tonight.


Device Request - Water level Monitor - Smart TLC2205 EPT Tech _TZE200_lvkk0hdg

Prerequisites:

Before requesting a device addition, please ensure there is not already a request for the device among the open issues.
Make sure your Homey is upgraded to firmware v5 or higher.
You need a physical example of the device.

Device Information

Device Name: Water Level Monitor
Device Model: _TZE200_lvkk0hdg
Device Description: Water Level Monitor EPT Tech
Link to device image: https://m.media-amazon.com/images/I/41N6M470ZzL.AC.jpg

Device Interview
{

  "ids": {
    "modelId": "TS0601",
    "manufacturerName": "_TZE200_lvkk0hdg"
  },
  "endpoints": {
    "ieeeAddress": "94:b2:16:ff:fe:f3:cf:25",
    "networkAddress": 30825,
    "modelId": "TS0601",
    "manufacturerName": "_TZE200_lvkk0hdg",
    "endpointDescriptors": [
      {
        "status": "SUCCESS",
        "nwkAddrOfInterest": 30825,
        "_reserved": 20,
        "endpointId": 1,
        "applicationProfileId": 260,
        "applicationDeviceId": 81,
        "applicationDeviceVersion": 0,
        "_reserved1": 1,
        "inputClusters": [
          0,
          4,
          5,
          61184
        ],
        "outputClusters": [
          25,
          10
        ]
      }
    ],
    "deviceType": "enddevice",
    "receiveWhenIdle": false,
    "capabilities": {
      "alternatePANCoordinator": false,
      "deviceType": false,
      "powerSourceMains": false,
      "receiveWhenIdle": false,
      "security": false,
      "allocateAddress": true
    },
    "extendedEndpointDescriptors": {
      "1": {
        "clusters": {
          "basic": {
            "attributes": [
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 0,
                "name": "zclVersion",
                "value": 3
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 1,
                "name": "appVersion",
                "value": 65
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 2,
                "name": "stackVersion",
                "value": 0
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 3,
                "name": "hwVersion",
                "value": 1
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 4,
                "name": "manufacturerName",
                "value": "_TZE200_lvkk0hdg"
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 5,
                "name": "modelId",
                "value": "TS0601"
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 6,
                "name": "dateCode",
                "value": ""
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 7,
                "name": "powerSource",
                "value": "battery"
              },
              {
                "acl": [
                  "readable",
                  "writable",
                  "reportable"
                ],
                "id": 65502
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65533,
                "name": "clusterRevision",
                "value": 2
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65534,
                "name": "attributeReportingStatus",
                "value": "PENDING"
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65504
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65505
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65506
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65507
              }
            ],
            "commandsGenerated": "UNSUP_GENERAL_COMMAND",
            "commandsReceived": "UNSUP_GENERAL_COMMAND"
          },
          "groups": {
            "attributes": [
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 0,
                "name": "nameSupport",
                "value": {
                  "type": "Buffer",
                  "data": [
                    0
                  ]
                }
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65533,
                "name": "clusterRevision",
                "value": 2
              }
            ],
            "commandsGenerated": "UNSUP_GENERAL_COMMAND",
            "commandsReceived": "UNSUP_GENERAL_COMMAND"
          },
          "scenes": {
            "attributes": [
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 0
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 1
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 2
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 3
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 4
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65533,
                "name": "clusterRevision",
                "value": 2
              }
            ],
            "commandsGenerated": "UNSUP_GENERAL_COMMAND",
            "commandsReceived": "UNSUP_GENERAL_COMMAND"
          }
        },
        "bindings": {
          "ota": {},
          "time": {
            "attributes": [],
            "commandsGenerated": "UNSUP_GENERAL_COMMAND",
            "commandsReceived": "UNSUP_GENERAL_COMMAND"
          }
        }
      }
    }
  }
}

Additional Comments:

Note: Provide any other relevant information or requests related to the device. Link to where you bought the device can be of help

How to interview a device

Add the device as a generic Zigbee device in Homey
Navigate to https://developer.athom.com/tools/zigbee.
Interview the device, the button for this is to the right of the device in the list of Zigbee units.
Click the copy button/icon to capture the device information.
Paste the copied information above.

Note: To be able to add more devices to the Tuya Zigbee app, we rely on community members like you to provide interviews of the devices you want to be added. Thank you for your contribution!

In this device you have to define the maximum and minimum levels and alarm settings, in addition to the Tuya driver there is also a driver for Hubitat with open source

Device Configuration Options screen (device driver for HE).

I don't know how this device would behave on Homey. I installed it on Hubitat and it sends too many messages (10,000/hour). I ended up leaving it on the Tuya platform.


Add pytest fixtures and reuse_driver_session config param

Add pytest fixtures to start and stop drivers
Add reuse_driver_session config param to reuse driver in all tests

Fix https://github.com/Telefonica/toolium/issues/82

Coverage decreased (-0.3%) to 90.129% when pulling dff645f778661e99173156232903d2315b9c1179 on feat/pytest into 67a5769a0fe28b888d1e9637f84d472507d3d948 on master.

Coverage decreased (-0.3%) to 90.129% when pulling dff645f778661e99173156232903d2315b9c1179 on feat/pytest into 67a5769a0fe28b888d1e9637f84d472507d3d948 on master.

Coverage increased (+0.2%) to 90.706% when pulling 7fa9895f2502f607c7d54ae1a6af04cddf86e0f8 on feat/pytest into 67a5769a0fe28b888d1e9637f84d472507d3d948 on master.


Experimental fourmolu branch.

[ ] I have ...

Comments

Issue Number

Should we decide to move to fourmolu, which I think we should, we need another branch as this is completely outdated. Closing.


Type 'Accordion' is not assignable to type 'AccordionItemsView

Hi, i found a new issues when i try to build the project.
[18-10-23 11:03:23.238] (CLI) node_modules/nativescript-accordion/angular/index.d.ts(103,14): error TS2416: Property 'nativeElement' in type 'AccordionComponent' is not assignable to the same property in base type 'AccordionItemsComponent'.
[18-10-23 11:03:23.238] (CLI)   Type 'Accordion' is not assignable to type 'AccordionItemsView'.
[18-10-23 11:03:23.238] (CLI)     Types of property 'itemContentTemplateSelector' are incompatible.
[18-10-23 11:03:23.238] (CLI)       Type 'string | ((item: any, parentIndex: number, index: number, items: any) => string)' is not assignable to type 'string | ((item: any, index: number, items: any) => string)'.
[18-10-23 11:03:23.238] (CLI)         Type '(item: any, parentIndex: number, index: number, items: any) => string' is not assignable to type 'string | ((item: any, index: number, items: any) => string)'.
[18-10-23 11:03:23.238] (CLI)           Type '(item: any, parentIndex: number, index: number, items: any) => string' is not assignable to type '(item: any, index: number, items: any) => string'.
[18-10-23 11:03:23.238] (CLI)  node_modules/nativescript-accordion/angular/index.d.ts(104,15): error TS2416: Property 'accordionItemsView' in type 'AccordionComponent' is not assignable to the same property in base type 'AccordionItemsComponent'.
[18-10-23 11:03:23.238] (CLI)   Type 'Accordion' is not assignable to type 'AccordionItemsView'.

I have same problem

Same or similar problem here
node_modules/nativescript-accordion/angular/index.d.ts(103,14): error TS2416: Property 'nativeElement' in type 'AccordionComponent' is not assignable to the same property in base type 'AccordionItemsComponent'. Type 'Accordion' is not assignable to type 'AccordionItemsView'. Types of property 'itemContentTemplateSelector' are incompatible. Type 'string | ((item: any, parentIndex: number, index: number, items: any) => string)' is not assignable to type 'string | ((item: any, index: number, items: any) => string)'. Type '(item: any, parentIndex: number, index: number, items: any) => string' is not assignable to type 'string | ((item: any, index: number, items: any) => string)'. Type '(item: any, parentIndex: number, index: number, items: any) => string' is not assignable to type '(item: any, index: number, items: any) => string'. node_modules/nativescript-accordion/angular/index.d.ts(104,15): error TS2416: Property 'accordionItemsView' in type 'AccordionComponent' is not assignable to the same property in base ty pe 'AccordionItemsComponent'. Type 'Accordion' is not assignable to type 'AccordionItemsView'.


generate-all is mentioned, but does not exist

The <target name="help"> mentions the generate-all target, but it does not exist.

The target is available in the development branch:
<target name="generate-all"
    description="Generates all shells and modules for both DTD and XSD syntax"
    depends="init, clean, generate-dtd, generate-xsd-url, generate-xsd-urn, generate-catalogs"
>

https://github.com/oasis-open/dita-rng-converter/blob/develop/build.xml

The target is also available in @ToshihikoMakita's pull request even if it strangly doesn't show up in the diff.

Target is available on develop branch.


Wallet Transaction

Does this mean there have been no transactions?

hm, i think not. Must be from the source parseResponse.php

saya test barusan masih bisa


Customize 'Context' location

I have a clean organization structure that does not allow top-level notes and uses lowercase naming convention, yet when installing this plugin and wanting to use the context feature, it writes Context note to top-level which does not align with my data rules.
Having said that, can we add the ability to change the default location of this file, and more generally change opinionated decisions like this to be customizable?
Also, I do not want the Spaces tab to be the default when opening Obsidian, how do I change this?
Also UI nitpick: the icons for this plugin dont match the main style/line weight for Obsidian overall and makes the interface look clunky/unpolished; specifically the home/subspaces and blink icons in spaces, which is weird because the space icon works fine, seems like its getting resized somehow.

Loving the cover and properties functionality.
Thank you.

In the latest version, the default spaces can now be disabled which will prevent the creation of the Spaces folder. The Context folder is now deprecated for the Spaces folder. The Default Spaces when disabled will no longer allow Tag Spaces and Tag Contexts to be customized. You can also move the Spaces folder with a hidden setting, make sure there's no trailing slash or it may not work.