Double encoded %-signs for web sockets

Do you want to request a feature or report a bug?
Bug
What did you do?
Collabora CODE (https://www.collaboraoffice.com/code/) is an online office suite which can be integrated with Nextcloud. In order to run Nextcloud and Collabora in docker containers, traefik is deployed on the host system and forwards all requests to an nginx reverse proxy which in turn forwards requests either to Nextcloud or Collabora.
For Collabora web sockets to work correctly, some requests (in this case, a web socket request) can't be modified in the slightest and require some URL parts to remain encoded.
What did you expect to see?
The browser sends the following websocket request to traefik:
/lool/https%3A%2F%2F${HOST}%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F${FILEID}%3Faccess_token%3D${TOKEN}%26access_token_ttl%3D0%26permission%3Dedit/ws

This URI needs to be received by nginx and in turn by Collabora to open a websocket.
What did you see instead?
What nginx actually receives (recorded by tcpdump between traefik and nginx):
/lool/https%253A%252F%252F${HOST}%252Fapps%252Frichdocuments%252Fwopi%252Ffiles%252F${FILEID}%253Faccess_token%253D${TOKEN}%2526access_token_ttl%253D0%2526permission%253Dedit/ws

The percentage sign has been encoded by traefik again (each percentage sign has been replaced with %25). This leads to a malfunction of Collabora.
Output of traefik version: (What version of Traefik are you using?)

Oct 01 14:25:40 ${HOST} traefik[5500]: time="2017-10-01T14:25:40Z" level=debug msg="No provided certificate found for domains [${HOST}.${DOMAIN}], get ACME certificate."
Oct 01 14:25:40 ${HOST} traefik[5500]: time="2017-10-01T14:25:40Z" level=debug msg="Challenge GetCertificate ${HOST}.${DOMAIN}"
Oct 01 14:25:40 ${HOST} traefik[5500]: time="2017-10-01T14:25:40Z" level=debug msg="ACME got domain cert ${HOST}.${DOMAIN}"
Oct 01 14:25:40 ${HOST} traefik[5500]: time="2017-10-01T14:25:40Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 17.478607ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:25:40 ${HOST} traefik[5500]: time="2017-10-01T14:25:40Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 383.859932ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:25:41 ${HOST} traefik[5500]: time="2017-10-01T14:25:41Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 49.218061ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:25:41 ${HOST} traefik[5500]: time="2017-10-01T14:25:41Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 52.214589ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:25:41 ${HOST} traefik[5500]: time="2017-10-01T14:25:41Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 83.688344ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:25:41 ${HOST} traefik[5500]: time="2017-10-01T14:25:41Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 16.336702ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:25:42 ${HOST} traefik[5500]: time="2017-10-01T14:25:42Z" level=debug msg="Look for provided certificate to validate [${HOST}.${DOMAIN}]..."
Oct 01 14:25:42 ${HOST} traefik[5500]: time="2017-10-01T14:25:42Z" level=debug msg="No provided certificate found for domains [${HOST}.${DOMAIN}], get ACME certificate."
Oct 01 14:25:42 ${HOST} traefik[5500]: time="2017-10-01T14:25:42Z" level=debug msg="Challenge GetCertificate ${HOST}.${DOMAIN}"
Oct 01 14:25:42 ${HOST} traefik[5500]: time="2017-10-01T14:25:42Z" level=debug msg="ACME got domain cert ${HOST}.${DOMAIN}"
Oct 01 14:25:44 ${HOST} traefik[5500]: time="2017-10-01T14:25:44Z" level=debug msg="Look for provided certificate to validate [${HOST}.${DOMAIN}]..."
Oct 01 14:25:44 ${HOST} traefik[5500]: time="2017-10-01T14:25:44Z" level=debug msg="No provided certificate found for domains [${HOST}.${DOMAIN}], get ACME certificate."
Oct 01 14:25:44 ${HOST} traefik[5500]: time="2017-10-01T14:25:44Z" level=debug msg="Challenge GetCertificate ${HOST}.${DOMAIN}"
Oct 01 14:25:44 ${HOST} traefik[5500]: time="2017-10-01T14:25:44Z" level=debug msg="ACME got domain cert ${HOST}.${DOMAIN}"
Oct 01 14:25:59 ${HOST} traefik[5500]: time="2017-10-01T14:25:59Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 67.95867ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:26:02 ${HOST} traefik[5500]: time="2017-10-01T14:26:02Z" level=debug msg="Look for provided certificate to validate [${HOST}.${DOMAIN}]..."
Oct 01 14:26:02 ${HOST} traefik[5500]: time="2017-10-01T14:26:02Z" level=debug msg="No provided certificate found for domains [${HOST}.${DOMAIN}], get ACME certificate."
Oct 01 14:26:02 ${HOST} traefik[5500]: time="2017-10-01T14:26:02Z" level=debug msg="Challenge GetCertificate ${HOST}.${DOMAIN}"
Oct 01 14:26:02 ${HOST} traefik[5500]: time="2017-10-01T14:26:02Z" level=debug msg="ACME got domain cert ${HOST}.${DOMAIN}"
Oct 01 14:26:11 ${HOST} traefik[5500]: time="2017-10-01T14:26:11Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 97.180186ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:26:29 ${HOST} traefik[5500]: time="2017-10-01T14:26:29Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 85.964157ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:26:41 ${HOST} traefik[5500]: time="2017-10-01T14:26:41Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 51.248306ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:26:48 ${HOST} traefik[5500]: time="2017-10-01T14:26:48Z" level=debug msg="Look for provided certificate to validate [${HOST}.${DOMAIN}]..."
Oct 01 14:26:48 ${HOST} traefik[5500]: time="2017-10-01T14:26:48Z" level=debug msg="No provided certificate found for domains [${HOST}.${DOMAIN}], get ACME certificate."
Oct 01 14:26:48 ${HOST} traefik[5500]: time="2017-10-01T14:26:48Z" level=debug msg="Challenge GetCertificate ${HOST}.${DOMAIN}"
Oct 01 14:26:48 ${HOST} traefik[5500]: time="2017-10-01T14:26:48Z" level=debug msg="ACME got domain cert ${HOST}.${DOMAIN}"
Oct 01 14:26:59 ${HOST} traefik[5500]: time="2017-10-01T14:26:59Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 41.122709ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:27:02 ${HOST} traefik[5500]: time="2017-10-01T14:27:02Z" level=debug msg="Look for provided certificate to validate [${HOST}.${DOMAIN}]..."
Oct 01 14:27:02 ${HOST} traefik[5500]: time="2017-10-01T14:27:02Z" level=debug msg="No provided certificate found for domains [${HOST}.${DOMAIN}], get ACME certificate."
Oct 01 14:27:02 ${HOST} traefik[5500]: time="2017-10-01T14:27:02Z" level=debug msg="Challenge GetCertificate ${HOST}.${DOMAIN}"
Oct 01 14:27:02 ${HOST} traefik[5500]: time="2017-10-01T14:27:02Z" level=debug msg="ACME got domain cert ${HOST}.${DOMAIN}"
Oct 01 14:27:11 ${HOST} traefik[5500]: time="2017-10-01T14:27:11Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 48.687697ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"
Oct 01 14:27:29 ${HOST} traefik[5500]: time="2017-10-01T14:27:29Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 200, duration: 86.184942ms tls:version: 303, tls:resume:false, tls:csuite:c030, tls:server:${HOST}.${DOMAIN}"

Closed by #2199.

Thank you for writing the test. May I hint though, that with this line:
c.Assert(r.URL.Path, Equals, "/%3A%2F%2F")

you are actually comparing the decoded (as stated in https://golang.org/pkg/net/url/#URL) version of the URL?

Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/. A consequence is that it is impossible to tell which slashes in the Path were slashes in the raw URL and which were %2f. This distinction is rarely important, but when it is, code must not use Path directly. The Parse function sets both Path and RawPath in the URL it returns, and URL's String method uses RawPath if it is a valid encoding of Path, by calling the EscapedPath method.

I wrote a patch for this issue myself and applied it to current as well as the stable version 1.3.8 which resolves my initial issues with collabora. I will shortly fork this project and create a pull request if you don't mind.
Thank you for any comments and reviews from your side.

Please see containous/oxy#30

Can you try with 1.5.0-rc2 ?

@Juliens Was this last question directed at me?

@shieldwed yes 😉

I just installed 1.5.0-rc3 and tried to open an ods document on Nextcloud with collabora code. It worked just fine. Thank you all for helping out.

@shieldwed are you running CODE behind traefik without apache/nginx with docker? Can you share your config? I can't make it work :-(

I'm running Collabora behind an nginx server. You can find my configuration here: https://gist.github.com/shieldwed/7e1496a42fe066ca419b9a8b4f6cf1f0.
The uppercase shell variables are replaced by effective values configured on the docker container once it is started. Each software has its own container:

nginx
nextcloud
collabora
redis
mariadb

Traefik is running on the docker host for IPv6 support.

@bd8392 I replicated the config on discussed on this reddit thread and it mostly works for me.  For some reason creating a new file I get websocket errors, but closing and opening the now-existent file works just fine.


Add dom_model and allow multiplexor to use it so that multiple connec…

…ted WIP clients don't stomp on each other when working with the DOM.

I am going to split some of the changes in here to different tests, so don't review this yet.

lgtm!
I bounced the test bot - I think it lost track of the last change. https://travis-ci.org/google/webkit_inspection_protocol.dart/jobs/64957064


Replace globs.py module with a context manager

Problem

Not good to use global state unless you really have to! Especially with GIL going away in later Python versions
Requested feature

Instead of:
# enables all `get` functions to turn `strict` on, though super hacky global stuff
m = Mapper(some_fn, strict=True)

Try using a context manager:
# Have user manually specify this context to pass all parameters. Offers opportunity for flexibility later too
with MappingContext(strict=True):
   ... # expect all `get` calls in this scope to have the variable on

Alternatives considered

Additional context
Claude Sonnet-suggested code:
from contextlib import contextmanager

class MapperContext:
    def __init__(self):
        self.strict = False
        self.trace_len = 0

    @contextmanager
    def config(self, strict=None, trace_len=None):
        old_strict, old_trace_len = self.strict, self.trace_len
        if strict is not None:
            self.strict = strict
        if trace_len is not None:
            self.trace_len = trace_len
        try:
            yield
        finally:
            self.strict, self.trace_len = old_strict, old_trace_len

mapper_context = MapperContext()

def your_function():
    # Use mapper_context.strict and mapper_context.trace_len here

# Usage
with mapper_context.config(strict=True, trace_len=5):
    your_function()

Closed by #7 !


New package: Exodus v0.1.0

Registering package: Exodus
Repository: https://github.com/cmhamel/Exodus.jl
Created by: @cmhamel
Version: v0.1.0
Commit: 64a932ec8a20fe4637351e5ec229c177a162a27e
Git reference: HEAD
Description: A julia interface for accessing the ExodusII data format

Hi
This package leverages an old C/FORTRAN library SEACAS https://github.com/gsjaardema/seacas so I'm not sure the best way to set up tests, dependencies, etc. that take that library into account.
I'm assuming those issues are what caused the unsuccessful checks.

This package leverages an old C/FORTRAN library SEACAS gsjaardema/seacas so I'm not sure the best way to set up tests, dependencies, etc. that take that library into account.

When else fails, read the README.md file: https://github.com/JuliaRegistries/General/blob/bb354958cb2a7ea5ac13e84de658dd3e20027336/README.md#my-package-fails-to-load-because-it-needs-proprietary-softwareadditional-setup-to-work-what-can-i-do

I'm assuming those issues are what caused the unsuccessful checks.

There are also failed checks about dependencies versions (why do you even require on Revise?  That's a dev tool) and the package is missing the text of an OSI-approved license.
[noblock]

Looks like everything is fine now. Is there anything else I need to do to make this available through Pkg?


install: Return more user-friendly response on eexists

Most newcomers hit helm's 'feature' there deleted instalations are not really deleted.
Use-case
helm install  --name gitlab-ce-1 ./stable/gitlab-ce
helm delete gitlab-ce-1
helm list
helm install  --name gitlab-ce-1 ./stable/gitlab-ce
Error: a release named "gitlab-ce-1" already exists
There is a lot duplicated bugs in bugzilla which simply explains that packages
should be deleted with --pure flag. But such bugs appeared again and again
because this behavior is not obvious.
Let's help user to figure out what happens ASAP.

We are not sure whether the test failure is related to the AWS outage, but we're waiting for CircleCI to fix itself up.

Ok


What is the difference beetwen Firewall and Workstation section? What would you recommend?

Well, the title speaks for itself

Good question.

Workstation
is a standalone computer like laptop or desktop which basically has a single network connection and the goal is to protect the computer from that one network.  That network is usually a connection to to the internet typically via some other network (campus, cafe, hotel, your own internal LAN etc).
Firewall is a server which is in between 2 networks (e.g. the internet and internal LAN)  and it routes (or NAT's) between the 2 networks.  The goal here is to protect both the Firewall server as well as the LAN from the internet. This can also forward services to other internal servers on your LAN - such as web server or mail server. It will also NAT the LAN client computers to the internet.

So if you have a standalone computer then the Workstation is all you need.
If you're looking to protect and entire LAN network then the Firewall is the one to use. The Firewall has a lot more to do  obviously: e.g. protect the LAN as well as itself, NAT all the LAN computers to the internet, redirect various services to the servers running somewhere on the LAN and so on.
Hope that  helps clarify.


Added podcast

Added "Developer Tea" link to list of podcasts.

@sdmg15 Are you referring to not having a description of the podcast included? If so I chose not to include it as none of the other podcast links did

Oh yeah, I see adding description to all of them is in project.


Add git submodule for ADAL.js

Adds ADAL.js as a submodule. This allows us to pull in the ADAL.js code into this repo, while keeping it separate and maintaining its Git history.
Pros (versus copying files over):

Simpler
Maintains history
Keeps repos separate

Cons:

More complex
Requires some additional setup for tooling and CI
Might not work with lerna / beachball
Commits will be made in ADAL.js repo, instead of MSAL.js repo

Coverage remained the same at 83.244% when pulling 3a04c6888172511235599f65a7b6c12aba256a70 on adaljs-submodule into 94ad2b78f1acdaff9f54de869124cef8525b6804 on dev.


Allow Tab to create a new raw

Originally reported on Google Code with ID 240
What steps will reproduce the problem?
1. When you press on "tab" key on keyboard, while you are on the value (last value
input field) create a new row and focus on the key of the new row.

This would help speed up some time, so we don't have to click on add new all the time,
it's flow-disruptive.
Alternatively allow a shortcut key to create a new row (with focus).

Reported by valtid.caushi on 2014-03-17 16:39:40

It is fixed in the repo. Soon will be updated in CWS.


Implement a train model function

Put a function to train a model in either preprocessing or the model files

Part of TFX Trainer component


Nette 3 compatibility

I've merged master to this upgrade branch, fixed Bootstrap 4 renderer and replaced ObjectMixin::setExtensionMethod
with Container:extensionMethod
in my case regular forms are now working with BS4 and nette 3.

For Nette 3, nextras/forms were split into two different libraries:

https://github.com/nextras/forms-rendering
https://github.com/nextras/form-components


local cluster upgrade does not work

I edited my local cluster and selected a newer version of Kubernetes in order to upgrade it. However, the upgrade did not happen and it's now flashing in the cluster view as upgrading all the time. GIF:

Already tried to restart the Rancher server and the node hosting the Rancher itself but nothing helps. Also, since it's "upgrading", I can't revert to an older version.

Useful
Info

Versions
Rancher v2.5.0 UI: v2.5.0

Route
undefined

@felipecrs Can you provide more information on how you installed it? Was it a docker install? We have disabled upgrading k3s   on docker install in 2.5.2, please refer to this: https://github.com/rancher/rancher/issues/29412

Yes, it's installed in a VM through Docker, not in a cluster.
Thank you so much for letting me know. I'll try to upgrade Rancher and see if it stops "upgrading".

The same behavior persists with v2.5.1, but as said, it was changed in v2.5.2. So I'll wait for its release before testing.

I upgraded to v2.5.2 but the problem still persists:

I meet the same problem, Is there anybody know how to solve it ?

 I run a single node docker install as well, currently running v2.5.5 and the option to upgrade was available for me.. The local cluster was running K3s v1.18.8+k3s1, tried upgrading it to 1.19.5+k3s2 as the option was there and now it's just blinking on and off. The API shows it as:
state": "upgrading",
"transitioning": "yes",
"transitioningMessage": "cluster is being upgraded",
"type": "cluster",
"uuid": "f42d4b29-9116-4552-8449-909xxxxxxx",

I tried editing the k3sConfig field in the API to see if I can revert it back but it won't let me (error 422, unprocessable entity)

@maggieliu It appears that the fix for that isn't fool proof. I run a single node docker install as well, currently running v2.5.5 and the option to upgrade was available for me.. The local cluster was running K3s v1.18.8+k3s1, tried upgrading it to 1.19.5+k3s2 as the option was there and now it's just blinking on and off. The API shows it as:
state": "upgrading",
"transitioning": "yes",
"transitioningMessage": "cluster is being upgraded",
"type": "cluster",
"uuid": "f42d4b29-9116-4552-8449-909xxxxxxx",

I tried editing the k3sConfig field in the API to see if I can revert it back but it won't let me (error 422, unprocessable entity)

Ok I managed to sort of fix / work around it. Note: This might have unforeseen consequences down the line (maybe somebody else can judge this)...
Steps:

Go to your local cluster
Go to edit cluster
Set control plane concurrency and Worker concurrency to 1
Press save
Now you  should be back at your local cluster
Go to view/edit in API
In the top right corner click on Edit
Edit the value of k3sConfig and set it to {"k3supgradeStrategy":{"drainServerNodes":false,"drainWorkerNodes":false,"serverConcurrency":1,"type":"/v3/schemas/clusterUpgradeStrategy","workerConcurrency":1},"kubernetesVersion":"v1.18.8+k3s1","type":"/v3/schemas/k3sConfig"}.
Click Show Request
Click on Send Request
You should get a HTTP response 200

After that the upgrade message will stop flashing. However where there used to be Edit cluster / View edit in Api etc. I now see "No actions available". I am not sure if I broke something by doing these steps, or if this was the intended behavior since 2.5.2.
Other things I noticed: If you press save on editing the cluster at step 3 without setting them to 1, it'll refuse because it can't be empty or 0. Which is likely why simply editing the field in the API before didn't work, because it refused the value for my k3sConfig. So it might be you only need steps 6 through 11, but I wrote down exactly what I did to be sure.

Ok I managed to sort of fix / work around it. Note: This might have unforeseen consequences down the line (maybe somebody else can judge this)...
Steps:

Go to your local cluster
Go to edit cluster
Set control plane concurrency and Worker concurrency to 1
Press save
Now you  should be back at your local cluster
Go to view/edit in API
In the top right corner click on Edit
Edit the value of k3sConfig and set it to {"k3supgradeStrategy":{"drainServerNodes":false,"drainWorkerNodes":false,"serverConcurrency":1,"type":"/v3/schemas/clusterUpgradeStrategy","workerConcurrency":1},"kubernetesVersion":"v1.18.8+k3s1","type":"/v3/schemas/k3sConfig"}.
Click Show Request
Click on Send Request
You should get a HTTP response 200

After that the upgrade message will stop flashing. However where there used to be Edit cluster / View edit in Api etc. I now see "No actions available". I am not sure if I broke something by doing these steps, or if this was the intended behavior since 2.5.2.
Other things I noticed: If you press save on editing the cluster at step 3 without setting them to 1, it'll refuse because it can't be empty or 0. Which is likely why simply editing the field in the API before didn't work, because it refused the value for my k3sConfig. So it might be you only need steps 6 through 11, but I wrote down exactly what I did to be sure.

I eventually reverting a back-up. But yeah I can confirm @maggieliu, in Rancher v2.5.3 the option for a local upgrade is not there, however in v.2.5.5 the option is available for the local cluster.
Perhaps the title should be updated to reflect the real issue: Local cluster k3s upgrades are available for single node docker installs in v2.5.5 where they shouldn't be.

I eventually reverting a back-up. But yeah I can confirm @maggieliu, in Rancher v2.5.3 the option for a local upgrade is not there, however in v.2.5.5 the option is available for the local cluster.
Perhaps the title should be updated to reflect the real issue: Local cluster k3s upgrades are available for single node docker installs in v2.5.5 where they shouldn't be.

I would rather change it to "Can't stop upgrading local cluster".

I would rather change it to "Can't stop upgrading local cluster".

I've got the same issue.. does anybody found a working solution to get rid of this "Cluster is being upgraded" messages blinking in the cluster overview?

I have the same problem too. Anyway to get rid of it?

Had the same issue this morning in rancher 2.5.6 : i wanted to upgrade k3s local cluster as it was proposed in the cluster "edit" properties... and after that, the message "cluster is being upgraded" was blinking every about 10sec :(
I restored from a backup (i'm using the backup/restore feature of rancher scheduled to run every 6h), and after that the message (cluster upgrade) disappeared and i was able to use rancher again normally.

Thanks @TiTidom-RC . I just restored using the same feature and it appears to have removed the error too.

Got the same, trying to update my "local" from v1.18.8+k3s1 .  Also running it in a single docker.

I ran into the same issue and reverted my /var/lib/rancher directory to a pre-upgrade backup.  I use a cronjob to stop the rancher container nightly and backup the /var/lib/rancher volume with restic over s3 via minio.
My question is.  How do we upgrade k8s on a docker container?  I assume there will eventually be a need to?

EDIT: Err I did the following (see below) and currently I can no longer access my main Rancher Cluster Overview. I can access other parts of Rancher through various URLs though. So yeah, it might be a bad idea. I see 2 problems in my logs. Fleet-system gitjob can't be updated because another change has been in between and [ERROR] could not convert gke config to map - so proceed with caution.
Ok I managed to sort of fix / work around it. Note: This might have unforeseen consequences down the line (maybe somebody else can judge this)...
Steps:
1. Go to your local cluster

2. Go to Edit cluster

3. Set control plane concurrency and Worker concurrency to 1

4. Press save

5. Now you  should be back at your local cluster

6. Go to View in API

7. In the top right corner of the API click on Edit

8. Edit the value of k3sConfig and set it to `{"k3supgradeStrategy":{"drainServerNodes":false,"drainWorkerNodes":false,"serverConcurrency":1,"type":"/v3/schemas/clusterUpgradeStrategy","workerConcurrency":1},"kubernetesVersion":"v1.18.8+k3s1","type":"/v3/schemas/k3sConfig"}`. (Or the version your k3s version used to be, you can still see the old version on the Dashboard).

9. Click Show Request

10. Click on Send Request

11. You should get a HTTP response 200

After that the upgrade message will stop flashing. However where there used to be Edit cluster / View in API etc. I now see "No actions available". I am not sure if I broke something by doing these steps, or if this was the intended behavior since 2.5.2.
Other things I noticed: If you press save on editing the cluster at step 3 without setting them to 1, it'll refuse because it can't be empty or 0. Which is likely why simply editing the field in the API before didn't work, because it refused the value for my k3sConfig. So it might be you only need steps 6 through 11, but I wrote down exactly what I did to be sure.

Fixed it for me. I do see the buttons though in latest rancher version v2.5.7.

Glad to hear my tinkering fixed it for you. I tested this recently in 2.5.8 and the upgrade button is no longer available.

I ran into the same issue and reverted my /var/lib/rancher directory to a pre-upgrade backup. I use a cronjob to stop the rancher container nightly and backup the /var/lib/rancher volume with restic over s3 via minio.
My question is. How do we upgrade k8s on a docker container? I assume there will eventually be a need to?

Nope. Rancher in a single node docker install uses K3s internally to set up a cluster. K3S is basically K8S in a binary. Upgrading that (when used as an actual cluster, NOT INSIDE THIS CONTAINER*) is nothing but stopping K3s, replacing the binary and restarting K3s. In this case you don't have to worry about that as new versions of the Rancher Docker image will automatically be bundled with newer versions of K3s and thus upgrade the kubernetes version.

For real, don't go replacing the binary in this container. I've tried doing this on an older version of Rancher, it didn't go over well. (Mind you that was a really old version of K3s and the reason I was attempting it is because that old version didn't have automatic certificate renewal yet and I was dealing with expired certificates and running out of options).


Port of sbt/zinc#441 to sbt/sbt 1.0.x

I was affected by the same log4j exception while testing using scripted, so porting the zinc scripted fix https://github.com/sbt/zinc/pull/441 over to sbt/sbt.
Note: copy/paste unavoidably leads to outdated code; we should strive to factor out common code in a separate library.

Now we have this fix twice in the same repo 😆
https://github.com/sbt/sbt/commit/0b33c195efa861d2ec83de284dbab4a56fda15e6

As I was saying, factoring out libraries...


Unable to build project on pod update

I have updated "CHIPageControl" pod to latest version '0.1.7'. On building the project I am getting error - "Type 'RunLoopMode' has no member 'common'"
PFA for the error screenshot.

Hi @pranita-mindstix ,
v 0.1.7 was updated to swift 4.2. Please use v 0.1.6 instead.

Ok Thanks for quick reply!


Rule proposal: Require/Disallow passing an object to setState() if not using previous state

setState(updater) accepts a function, or an object for the updater if not relying on previous state.

The first setState() argument is an updater function...You may optionally pass an object as the first argument to setState() instead of a function...If the next state depends on the previous state, we recommend using the updater function form." - docs

Proposal: add a rule with the option to either -

Make setState(updater) always take an object if not relying on previous state
Make setState(updater) always take a function, regardless

e.g., if using the former:
/* Before: */ this.setState(() => ({quantity: 2}));
/* After: */  this.setState({quantity: 2});

This is perhap an extension off of no-access-state-in-setstate.

I'm not sure why the former would be particularly useful; it'd also make for code churn if you suddenly started or stopped making it rely on previous state.

Given that only one other person has indicated interest in the last 4 years, I'm going to close this. If folks think it's worth reopening, we can.


Facet size (length) based on desktop/mobile

Thought.
Would it be possible to change the 'size' of a facet based on browser type, eg desktop 1000 items, mobile 20?

The default size of 20 seems to work in most situations, it can be changed in facet configuration if  larger size desired.


add backlinks for each property (automatic inverse)

For example:
id2obj.Gordon.calls.$id // -> Alyx
id2obj.Gordon.calls.$$calls.$id // -> Gordon

It would also be nice to allow replacement of certain "inverse" and maybe also "symmetric properties:
const invPropMap = {
  calls: 'calledBy',
  knows: 'knows' // symmetric property
}
mutateInverseProperties(invPropMap)(id2obj)

id2obj.Gordon.calls.calledBy.$id // -> Gordon
id2obj.Gordon.knows.$id // -> Alyx
id2obj.Gordon.knows.knows.$id // -> Gordon

currently, we have mutateAddInverse (for a single property, e.g $$type for $type)


Change HTML links to Markdown links.

This fix is for #658  to find all instances of using HTML links in the config descriptions and change them to Markdown.
Overview
This change converts all of the HTML  style links in the config descriptions to be markdown style links, and it converts the absolute paths to relative paths.
Related Github Issue
#658
Testing
All of the existing default_source tests still pass.
Reviewer Checklist

[ ] Perform code review
[ ] Add performance label
[ ] Perform appropriate level of performance testing
[ ] Confirm all checks passed
[ ] Add version label prior to acceptance

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


[form][ux] Layout form

per mockup layout of 2 columns. Change https://github.com/inveniosoftware/react-invenio-deposit/issues/88 to mimicking this layout:
Label ____________________Content
OR go the grid layout

Closing, as because of the changes to some of the larger fields, we can maintain the current layout

Closing, as because of the changes to some of the larger fields, we can maintain the current layout


Kindly Focus on improving speed, fix minor bugs. Also add proper updated flutter support

Unstable, buggy and not helpful. Specially it does not have knowledge of Google Flutter SDK, and gives wrong suggestions which never work most of the times.
The team should focus on improving flutter SDK support and proper Dart language.
Kindly increase context and make the extension use less resources.

hey @fisforfaheem, Docs PM here, is the information you're looking for on GitHub somewhere? What repositories would this context live in?

Flutter's docs are in https://github.com/flutter/website and Dart is https://github.com/dart-lang/site-www

But copilot doesn't seem to give the current updated information and gives
mostly wrong 😕information, kindly improve
On Tue, Oct 31, 2023, 11:35 PM Harald Kirschner @.***>
wrote:

Flutter's docs are in https://github.com/flutter/website and Dart is
https://github.com/dart-lang/site-www
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode-copilot-release/issues/513#issuecomment-1787774860,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIRXJSG6DLBDBDHKF2XGKKLYCFAGVAVCNFSM6AAAAAA6RUYTEKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBXG43TIOBWGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Kindly nake sure that copilot works with Flutter, atleast flutter from 2023...most the answers i get are useless and they are from flutter 1.5 era


Add Crowdstrike

CrowdStrike is a cybersecurity company that provides endpoint protection, threat intelligence, and incident response services. Its flagship product, the CrowdStrike Falcon platform, uses artificial intelligence and machine learning to detect and prevent cyber threats in real-time. The platform also provides detailed insights into attacker behavior and post-attack forensics to help organizations understand and respond to security incidents.
@sivolko
https://github.com/CrowdStrike/crowdstrike-container-extension/

On it

Raised PR for the same

Added.


How to lock your phone?

Is there a simple way to lock the phone, the equivalent of pressing the physical lock button on the side of the phone?

Ctrl+p

Ctrl+p

doesn't work.

@Gasic18 Now the default modifier is Alt, so it's Alt+p.
See https://github.com/Genymobile/scrcpy/blob/master/doc/shortcuts.md


Suggestions for this script to work with Manjaro

Hello,
I'm not a  developer but I have a few suggestions for this to work with Manjaro, meaning the modifications I had to do be successfully tuya-cloudcutting. I understand that you made this with with the objective to be running it in debian (or Raspbian) but this could be compatible with those 2 fix:
the first thing I had to do is to modify the script to change the "service" command to the systemctl appropriate equivalent. My suggestion: is there an if statement that can be used to check if "service" or "systemctl" is used?
second, I had to turn off Apparmour (#692)  for the script to continue. Again, if there's a way to check if it's running and then running the "sudo aa-teardown" command? Souce

Debian & Raspbian are both systemd, so systemctl exists there, so we can simply just switch to that.
As for apparmour, can you try adding the following to a script and seeing if it works correctly?
  if type "aa-enabled" &> /dev/null && aa-enabled | grep -qw Yes; then
      echo "Detected app armour"
      echo "This has been known to block hostapd, which is required to complete the exploit"
      read -p "Do you wish to stop the app armour service? [y/N] " -n 1 -r
      echo
      if [[ $REPLY =~ ^[Yy]$ ]]; then
          sudo aa-teardown
      fi
  fi

If it does, we can add that to safety_checks.

Just note that systems that aren't based on systemd (such as OpenRC/Alpine Linux) don't have the systemctl command, but do have service.

True, but systemd has become pretty standard across most distros like Debian, RedHat, and Arch.  There are probably more distros that support systemctl than service.
If someone wants to write a patch that safely checks for either, it would certainly be accepted though, but for now, it is switched to systemctl by default.

@Cossid

As for apparmour, can you try adding the following to a script and seeing if it works correctly?

Thank you for your patience, Yes, It worked successfully.

The last line states that apparmor is loaded, but no profiles are active (compared to earlier).

Thanks for verifying.  I have added it to safety_checks, and added a line about it being disabled until turned back on or OS reboot.


Fix broken test/index.html mutation

If ember build -prod is used the test file won't be built and the corresponding fs.readFileSync() operation would fail.
Resolves #48

It looks like the CI failure it unrelated and caused by the latest Ember CLI version no longer supporting Node.js 6

Make sense, thanks :)


iwr : The request was aborted: The connection was closed unexpectedly.

Any idea how to fix this? While trying to install Windows tool

Use the other command listed : [Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12;iex(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/winutil.ps1')


[Feature Request]: Improving Ninety-Nine Game

How would you like to enhance the existing project.
Currently, there is no button to restart the game after it ends. I wish to work on this issue.
Describe breifly how would you implement the same.
I want to add a page with results when the Ninety-Nine game concludes, along with a restart button similar to the one in Trivia Game
Ninety-Nine Game
https://github.com/ssitvit/Games-and-Go/assets/127978268/a88dd1bc-4265-46cf-bf34-7d394f87fa19
Trivia Game
https://github.com/ssitvit/Games-and-Go/assets/127978268/9adda985-9ac0-40c0-80fa-48ca55101c54
Are you contributing for a program?
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hi @akankshachanana1 , I am assigning this issue to you. Kindly complete your work within a week. Good luck !

@panwar8279 mam i want to work on this issue under gssoc'23


Added Huawei as DC/OS membership

Description

Urgency

[ ] Blocker
[V] High
[ ] Medium

Requirements

Test all commands and procedures.
Build content locally and test for formatting/links.
Add redirects to dcos-website/redirect-files.
Change all affected versions (e.g. 1.7, 1.8, and 1.9).
See the contribution guidelines.

submit again

Sam there's no such thing as DC/OS membership. That's what I was trying to tell Fiona when she wanted the first Chinese log on this page. These were our launch partners, not current users of DC/OS, and we're removing all the logos from the community page, Hopefully, today.


Evaluating a custom VGG-16 model with LIME visualization

Thanks for this awesome visualization tool. I would like to make use of this tool for visualizing a custom VGG16 model that has only two outputs to classify normal and abnormal chest x rays. I cant usse the default decode_predictions function. My class indices are 0 for abnormal and 1 for normal. Can I use these indices directly in the computation of temp and mask?
Do you have an example of applying LIME visualization to custom models to share? Or can you suggest the modifications to be made to the code to suit my problem requirements?
Do I have to use plt.imshow(images[0] / 2 + 0.5) and plt.imshow(mark_boundaries(temp / 2 + 0.5, mask))even for my custom VGG16 model?  Thanks and looking forward.

hopefully you figure it out : )


Bug? - Collection cannot handle events if the data come from JSON

I was trying to handle the click event in collection, but jQuery/JS didn't do anything in my project. When I clicked in the element, nothing appeared but an alert had to show in the browser.
I tryed in codepen and jsFiddle and it worked well but I was trying in this sites with local data. When I tryed retriving a JSON from a website, the error appeared another time. So I conclude the problem is this. Following this I will paste a CodePen with the two scenarios.
CodePen
Is there a problem with Materialize or with the jQuery? And are there approaches to solve this problem?

It seems that since the content is loaded through Ajax you will have to bind the event listener to the document or a parent instead of the actual element like so:
$(document).on('click', '.event-click', function(e) {
    //your code here
});

Updated codepen: http://codepen.io/anon/pen/gapzQz

did this solve the issue? Closing for now assuming this fixes it


AutoPinEdgeToSuperviewEdge not working

Hi,
Since updating xcode to 6.3 and iOS to 8.3 the following constraints just aren't working for me:
[self.prefsView autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:(self.navigationController.navigationBar.frame.size.height )];
 [self.prefsView autoPinEdgeToSuperviewEdge:ALEdgeLeft];
[self.prefsView autoPinEdgeToSuperviewEdge:ALEdgeRight];

The view I'm using these on just isn't visible when these are enabled

Have you checked if the constraints have been installed?
First of all, make sure you can see your autoPinEdgeToSuperviewEdge layouts in self.prefsView.constraints
check if your view has been added, and from my experience, view debugging feature in Xcode can help a lot.

Hi @ryderjack,
You'll need to provide more information on what is happening, and preferably a small sample project to reproduce the issue, if you want help debugging this. I can tell you that the issue almost certainly doesn't have to do with PureLayout, since nothing has changed around this recently and I've seen no other reports of any issues. So it's probably something specific to your project, or maybe a general auto layout issue.

@ryderjack
Your view doesn't have a constraint for "height".
And you can rewrite your first constraint with
 - (NSLayoutConstraint *)autoPinToTopLayoutGuideOfViewController:(UIViewController *)viewController withInset:(CGFloat)inset

after  updating xcode to 6.3 constraints just aren't working. same issue

Hi @hamdan,
Are you able to reproduce the issue using the PureLayout example project/demos? Are you compiling against the iOS 8.3 Base SDK in Xcode 6.3? What version of iOS are you running on where you see this issue? Is this the simulator or device (which device, if so)?
I know that Apple has changed Auto Layout as of iOS 8.3, I don't know all the details but there was at least one significant bug fix that made it in to the release. So that could be causing the problem(s).
However, I don't see any issues myself, so if you're looking for help figuring out what is happening you'll need to provide more info.

PureLayout's unit tests are also passing on iOS 8.3/Xcode 6.3.1, so if there is some issue at hand, let's make sure to write new tests to cover it.

Apologies for the delay, I'm using the latest versions of Xcode and iOS. It's just odd that the constraints worked before updating my xcode

@ryderjack As I've mentioned, I'm going to need more information to help figure out what is going on.

@ryderjack could you paste your view's constraints from lldb?

smileyborg  i am using xcode 6.3.1  ios sdk 8.3 ....  code work fine in device but in simulator its not working .  In previous version of xcode 6.1.1 its work perfectly on both simulator and device .

 So you'll need to provide exact steps on how to reproduce this issue and/or share a sample project that does so, if you would like me to help investigate further.
I don't have any reason to believe this is an issue related to PureLayout at this time, and without the additional information I have requested, I am unable help you or @ryderjack here. So I am closing this issue for now.


Tutorial figure is cropped

I have not checked if I'd get the same results running this locally, but in our rendered docs, I just came across one figure (but there's probably more than this one?) which appears to be cropped:

(Tutorial: https://mne.tools/dev/auto_tutorials/preprocessing/plot_50_artifact_correction_ssp.html#repairing-ecg-artifacts-with-ssp)
I think this is something we should aim to get fixed before the next release.
compulsory ping @drammock 😅😁

Also we probably should ensure there's no line break in "PCA" 👌 Not sure if there's an easy way to do this though

Oh, and the EEG head is huge compared to the MEG heads. :smile:

Oh, and the EEG head is huge compared to the MEG heads. 😄

I think we got this in #8651, but if not feel free to reopen

@larsoner I think this PR fixed the head size inconsistency between MEG and EEG, but not the title being cropped.

Ahh okay, I'll reopen. Setting the milestone to 0.23 because I don't think it's a blocker for release


fix "Expected SDF" error message

currently SDF is the name of the structure, not the expected token/keyword
this breaks for eg. END-OF-DEFINITION

not sure it will fix it completely, eg CLASIMPLEMENTATION expected, for which only displaying "Expected CLASS" is not good enough


[openvpn3] update to 3.7

Describe the pull request

What does your PR fix?
Fixes #24356

Which triplets are supported/not supported? Have you updated the CI baseline?
Unchanged

Does your PR follow the maintainer guide?

Yes

Thanks for the update!


Upgrade the sbt plugins we use to versions compatible with sbt 1.0.

This PR does not upgrade bintray-sbt yet, because that is blocked by https://github.com/sbt/sbt-bintray/issues/130.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/4233/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/5648/
Test PASSed.


broken read_raw_kit when using test.hsp

Adapted from mne/io/kit/tests/test_kit.py
import mne
import numpy as np
import os.path as op

from mne import __file__ as mne_init_path
from mne.io import read_raw_kit
from mne.viz import plot_alignment

KIT_PATH = op.join(op.dirname(mne_init_path), 'io', 'kit', 'tests', 'data')
KIT_HSP = op.join(KIT_PATH, 'test.hsp')
KIT_ELP = op.join(KIT_PATH, 'test.elp')
KIT_SQD = op.join(KIT_PATH, 'test.sqd')
KIT_MRK = op.join(KIT_PATH, 'test_mrk.sqd')

data_path = mne.datasets.sample.data_path()
subjects_dir = data_path + '/subjects'

def get_trans():
    trans = mne.Transform(fro='head', to='mri')
    trans['trans'] = np.array([[0.99981296, -0.00503971,  0.01867181,  0.00255929],
                               [0.00692004,  0.99475515, -0.10205064, -0.02091804],
                               [0.01805957,  0.10216076,  0.99460393, -0.04416016],
                               [0.,          0.,          0.,          1.        ]])
    return trans

raw = read_raw_kit(input_fname=KIT_SQD, mrk=KIT_MRK, elp=KIT_ELP, hsp=KIT_HSP)
fig = plot_alignment(raw.info, trans=get_trans(), subject='fsaverage', dig=True,
                     eeg=['original'], meg=[],
                     coord_frame='head', subjects_dir=subjects_dir,
                     fig=None)

I get the same when using raw_txt = read_raw_kit(sqd_path, mrk_path, elp_txt_path, hsp_txt_path)

using read_dig_montage is also corrupted.
from mne.channels.montage import read_dig_montage

names = ['nasion', 'lpa', 'rpa', '1', '2', '3', '4', '5']
montage = read_dig_montage(hsp=KIT_HSP,
                           hpi=KIT_MRK,
                           elp=KIT_ELP,
                           point_names=names, transform=False)

my_info = mne.create_info(ch_names=[],
                          sfreq=1,
                          ch_types='eeg',
                          montage=montage)

fig = plot_alignment(my_info, trans=get_trans(), subject='fsaverage', dig=True,
                     eeg=['original'], meg=[],
                     coord_frame='head', subjects_dir=subjects_dir,
                     fig=None)

Ok, I think I get it. Both test.hsp and test_hsp.txt have 500 points, but test_hsp.txt's header says:
% 346306 3D points, x y z per line

Therefore the files are incomplete, and what the plot shows is a subset of the digpoints (all in the lateral area)

@teonbrooks do you have the complete file?
@mne-tools/contributors do anyone have a complete hsp file to share (if possible with not lots of points)?

followed up offline with some files to help

Closing, I'll reopen-and-close if I do a PR updating the test files.


workspace snapshot like R's save.image()

there are a couple of questions on this on Stackoverflow:
http://stackoverflow.com/questions/35465534/how-do-i-save-the-entire-workspace-in-pandas-like-rdata
http://stackoverflow.com/questions/12504951/save-session-in-ipython-like-in-matlab
Even the individual dataframe saving is a bit confusing - http://stackoverflow.com/questions/17098654/how-to-store-data-frame-using-pandas-python
From IRC, the following comments were made

You can use hdf5, but in this case, always roundtrip it before using it, even when it was just computed -- unfortunately, the to_hdf/read_hdf won't necessarily give you the dataframe you started with
pickle is undebuggable, non-version-compatible, Python-only, insecure-to-unserliazed, and potentially-incorrect-given-the-right-data

The recent news that Pandas is collaborating with Apache Arrow is encouraging - but what is going to be the long term official way for persisting the workspace ?
A lot of workflows come from R, where the entire workspace is snapshotted (and backed up to s3,etc) . This is perfectly production ready in R - but in Pandas a lot of creative invention is needed to make this work (for example - http://cyrille.rossant.net/moving-away-hdf5/).

you seem to be a bit misinformed.

Both pickle and HDF5 provide perfect fidelity when round-tripped thru serialization. This is certainly not true for most other formats.
When round tripping you essentially have to pick from: fidelity, performance, and compatibility, you have varying degrees of each.
your reference to cyrill's blog is nonsensical, he is referring to a very special case of a large multi-user collaboration. Clearly not what you are referring.
further yes Apache Arrow is vaporware, and will have all of the same constraints / restrictions as the above (they are choosing compatibility, so certainly will lose on the fidelity aspects from a particular platforms perspective).

Of course this is issue not about this at all, rather about persisting a workspace which is in jupyter's domain, or if you want a desktop app, use spyder
So not really sure what you are asking from pandas. We have quite a suite of IO compatibility, see the docs here, you as the user need to choose how to use it.

oh wow - thanks for the info. there's been a lot of retweets for https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces87
with the following quote

"Arrow's cross platform and cross system strengths will enable Python and R to become first-class languages across the entire Big Data stack," said Wes McKinney, creator of Pandas.

BTW - none of these are my claims, this is info that I have gotten from people on pydata IRC channels when I have been attempting to move from R to Pandas.  So your comment on nonsensical is perhaps a consequence of widespread misinformation.
Just to be clear - I'm not talking about persisting a workspace configuration. I am talking of persisting the data frames inside a pandas session (which could even be 8-10 GB). For example, here's a snippet on how you can actually load a persisted RData dump into Pandas dataframes.
I'm trying to figure out a production flow for Pandas where I need to have 8-10 GB of data in memory and then incrementally update that every hour. We do this in R by snapshotting all the data frames in one shot, backing them to S3 and then continuing. If our machine fails (on AWS for example), we restore the last snapshot from S3 and just resume. So in that respect, I think I'm close to cyrill's blog.
Is that  a feature request that could be accepted ?

@sandys what exactly are requesting.
HDF5 is THE best IMHO solution for something like this.
cyrilles solutions IMHO just make another set of issues. When dealing with multi-user mutli-source systems are not trivial.

Jeff,
I'm requesting for something like R save.image which works something like
Dill (a python library for saving ALL the data structures in memory).
Saving an individual data frame works perfectly, but saving everything is
what's a little tricky (for a data scientist... I'm sure Pandas developers
find this pretty easy).
It is one of  the most productivity enhancing commands in R.
On Feb 18, 2016 7:22 PM, "Jeff Reback"<EMAIL_ADDRESS>wrote:

@sandys https://github.com/sandys what exactly are requesting.
HDF5 is THE best IMHO solution for something like this.
cyrilles solutions IMHO just make another set of issues. When dealing with
multi-user mutli-source systems are not trivial.
—
Reply to this email directly or view it on GitHub
https://github.com/pydata/pandas/issues/12381#issuecomment-185732786.

@sandys then use dill or pls put in a request for spyer and/or jupyter. This is out of scope for pandas.
python is about being explict, while R has somewhat of an opposite philosphy.

Thanks for the reply. Will do - just wanted to highlight one last time that
the reason why I believe this should be part of pandas is because this is a
fairly common production flow.. Especially in context of the "cloud" (where
anything may fail at any moment).
I hesitate to file it on jupyter because I'm not really looking at it as a
workspace configuration but rather a data snapshot strategy.
Thanks!

Agreed with @jreback that this doesn't feel very pythonic. Even some R people seem down on workspace images.

hi Tom,
just trying to reply to you -
https://stat.ethz.ch/pipermail/r-sig-db/2013q1/001272.html  or
https://stat.ethz.ch/pipermail/r-sig-db/2013q1/001272.html
there are tons of usecases where models are run in production using
snapshots. In a lot of ways, it can be argued that Docker snapshots are
un-linux like (exactly what a lot of people from the Puppet or Chef world
argue about system composability).
But it is a godsend for production. if I had to guess.. I would say the
vast majority of R production flows work like this.

@sandys I appreciate you want to make it 'easy', but in reality you should have a cleaner / reproducible workflow. Simply saving a workspace IMHO is not a good answer, except in 1-off small scale situations.

But it is a godsend for production. if I had to guess.. I would say the
vast majority of R production flows work like this.

Not to inflame language wars, but this is just a recipe for disaster. Sure may work right now, but it is not security, resilent, nor reproducible.

hi jeff,
I grant you that  I might be totally wrong - in which case I am trying to
find out how do people build a 10GB model that gets updated incrementally
(every 6 hours based on new data) ? What happens if the machine breaks down
and I have to spin another server up - I dont want to recompute the 10GB.
do we use a database with Pandas to persist the model - I'm ok with that,
but I cant find any real documentation on what are the best practices
around that. If I may say so - the only form of serialization is the
disk-based ones (that you linked).
So I'm really confused and wondering if the canonical recommended way is to
recompute everytime. Is this something that can stand upto the conditions
of cloud servers
On Thu, Feb 18, 2016 at 9:32 PM, Jeff Reback<EMAIL_ADDRESS>wrote:

@sandys https://github.com/sandys I appreciate you want to make it
'easy', but in reality you should have a cleaner / reproducible workflow.
Simply saving a workspace IMHO is not a good answer, except in 1-off small
scale situations.
But it is a godsend for production. if I had to guess.. I would say the
vast majority of R production flows work like this.
Not to inflame language wars, but this is just a recipe for disaster. Sure
may work right now, but it is not security, resilent, nor reproducible.
—
Reply to this email directly or view it on GitHub
https://github.com/pydata/pandas/issues/12381#issuecomment-185791241.

@sandys this is a vast and complicated topic. you should start simple and see if that serves your needs. 10GB to be honest is not that big nowadays, you could easily do this with HDF5. E.g. saving intermediate state, and then append, or use a db, or even a flat file and recompute. as the data owner you will have to weight the costs/beneifts and esp the complexity here. Using an opaque tool to do this (like save.image()) does not really help you at all.


Podspec not updated for 2.3.0

Can we please get the podspec pushed to the main specs repo? Looks like this got lost in the update shuffle again.

cc @ashfurrow who I think holds the keys still

Sure sure, I'll do my best to get that in this afternoon.

Okay, should be good. Let me know 👍

Installing Action 2.3.0 (was 2.2.1)
you're the best, thanks Ash 😘


Notifications: Allows custom downtime messages

Hey, thanks for contributing! Can you please make the patch in index.ts rather than the compiled dist/index.js?

Sure, I'll do that right now.

I have read the CLA Document and I hereby sign the CLA

@AnandChowdhary The patch has been moved into index.js

Yeah, it's been added. Let me know if there's anything else to change.


⚠ Fortnite has degraded performance

In 86b85dc, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1348 ms

Resolved: Fortnite performance has improved in f88a969.


(C/C++) Wrong REACHING_DEF edge and node of pointer

The C++ code is:
int f(int x, int *y)
{
    *y = 10;

    y = &x;

    *y = 20;

    return x;
}

The ddg is:

There is a IDENTIFIER node in ddg and an edge from that node to return x node with label x.
This does not make sense.
And, there should be a REACHING_DEF  edge from *y = 20 to return x, but there isn't.

There is currently a major dataflow engine rewrite in the works that most likely will change a lot here.
We will keep you posted on that. Hence, this issue here is on hold.


Change FPS

Hello!
The player is working fine!
But my fllow of frames is 7fps.
The player "buffer" a few frames, play it in (30 fps maybe) and stuck until next "buffer".
I made a few test, but without success...
Where in the code I can change the fps of the mp4?
Thank you!

Hi,
I have not try frame rate other than 30 fps.
That need to control duration time and time stamp.
You may try to change "this.H264_TIMEBASE" in "mp4-remuxer.js" and "h264-demuxer.js" .


Change ToolButton title and Onclicke in AfterLoadEntity

Hello
I want to change one of Toolbarbuttons(its title and Onclick) in some conditions.
The condition is : one boolean value of form entities is true.
AnyBody knows How to ??

One ways is:

Do an override "Toolbarbuttons" methods and then (if condition ? do action else do other action).
Catch the boolean field method and then override the caption with jQuery for instance...

@brunobola
In "getToolbarbuttons" method I don't have values of form. it returns undefined.

It's better to add a new button instead of modify an existing button's title and onclick event.
protected getToolbarButtons() {
    let buttons = super.getToolbarButtons();
    buttons.push({
        cssClass: 'some-button',
        title: 'Some Button',
        icon: 'fa-eye',
        onClick: () => {
            doSomeThing();
        }
    });
    return buttons;
}

Then toggle the new button visibility according to the form value
protected updateInterface() {
    super.updateInterface();
    this.toolbar.findButton('some-button').toggle(this.form.IsEnabled.value);
}

@wezmag
Thank you.


Added ALWAYS_RENDER_RAW_FILES option to the repository section

Used for serving raw files with the right content type, instead of text/plain. Fixes (#683).
This option is disabled by default as it could be a potential security risk because the html in raw mode would render on the same domain as gitea.

For reference: https://github.com/go-gitea/gitea/issues/683#issuecomment-273061000

Hi. 👍 for merging this :)

I'm with @tboerger on this, this is a really bad idea...

@bkcsoft Some people like me really need this option. Maybe it could be a build tag, and not offer prebuild builds with this option?

@geek1011 well, if one has to compile it themselfs anyway, it could just be a patch-set outside the project, because this is a really bad idea and a huge security risk.

So let's move it to 1.x.x

Doesn't the csrf request token prevent this from being a security risk?

Sorry it's not clear to me what the security risk is. I understand is about running arbitrary javascript code embedded in HTML files put in a user repository. Now, cannot this be already done, only not by default ?

@strk I think it would be submitting a form to delete a user or something like that.

I understand is about running arbitrary javascript code embedded in HTML files put in a user repository.

Yes that's the issue…
CSRF tokens won't help since these are (as the name says) to protect from cross-site request forgeries, but here you are on the same site and an attacker can easily request a file with an CSRF token and extract it to use it in a request later.
Basically the attack is an XSS issue AFAIK. By opening a specific URL (with a file saved) untrusted code can be executed in the context of the Gitea installation. This can do anything…
So the fix is to disable it by default and if users need it add an option to enable parsing there. Even in Gogs it has been fixed already, so please don't get even slower than the original version. (Maybe also use the same config option for compatibility…)

Now, cannot this be already done, only not by default ?

Uh, no? I don't understand what you mean…

On Thu, Mar 23, 2017 at 09:01:22AM -0700, rugk wrote:

So the fix is to disable it by default and if users need it add an option to enable parsing there. Even in Gogs it has been fixed already, so please don't get even slower than the original version. (Maybe also use the same config option for compatibility…)

Thanks for the pointer, I think it is good to be compatible as much
as possible. And yes, I do feel your pain about becoming slower than
the original version... (want to help us ?)

Now, cannot this be already done, only not by default ?

Uh, no? I don't understand what you mean…

Passing the render=1 parameter lets you receive HTML with arbitrary
javascript embedded, already.

(want to help us ?)

You already have this PR, so what?
Or just use the code/patch from Gogs…

Passing the render=1 parameter lets you receive HTML with arbitrary javascript embedded, already.

Exactly that's the behaviour that needs to be disabled (by default!).

Ah I saw that this PR does the opposite of fixing the render issue and should therefore be abolished.
Just as in https://github.com/gogits/gogs/commit/b3c4a39208331fd3798923bde01bf556b9e90c0d disable the rendering completely. Raw file means raw file meaning no parsing at all…
Of course you can allow users to use the render=1 parameter if the admin enables a special option. Or just remove it entirely - if admins really want to use it they could configure their reverse-proxy server to add/change the Content-Type header or so.

On Thu, Mar 23, 2017 at 11:13:07AM -0700, rugk wrote:

(want to help us ?)

You already have this PR, so what?

It's not just code that a project needs, but also organizational figures :)

I'll keep posting issues and complaining about security-stuff, be sure… 😊

I still don't like this option. This is something that should be handled by a Webserver. If the option is there, we will have users that enable it because they simply don't understand the risk. And than somebody will complain about it.

Then remove it entirely…

I think there are valid use cases where the security implication is not a concern: private hosting with only trusted users. For those cases, it's ok to let the admin allow rendering (even by default) the content. This is @geek1011 usecase, I think.

Yes, but as @tboerger says, just use a reverse-proxy and add/modify then headers. There is no need to have this option in Gitea. (Users could not be aware of the risk ad enable it more or less accidentally or for just trying it out etc.)
On the other hand there is of course no need to discuss this. I am fine with an option, but please, please, finally disable it by default.

@lunny? @bkcsoft? I'm against this option.

Thats a good idea. I might write some caddy middleware to fix the content type.
 This is something that should be handled by a Webserver. If the option is there, we will have users that enable it because they simply don't understand the risk. And than somebody will complain about it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/go-gitea/gitea/pull/685#issuecomment-288861322, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ANQ-1YRCbqA8Ig_W2Csq153-tM6H73-nks5rouAVgaJpZM4LlGBh.
 This is something that should be handled by a Webserver. If the option is there, we will have users that enable it because they simply don't understand the risk. And than somebody will complain about it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/go-gitea/gitea/pull/685#issuecomment-288861322, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ANQ-1YRCbqA8Ig_W2Csq153-tM6H73-nks5rouAVgaJpZM4LlGBh.
 This is something that should be handled by a Webserver. If the option is there, we will have users that enable it because they simply don't understand the risk. And than somebody will complain about it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/go-gitea/gitea/pull/685#issuecomment-288861322, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ANQ-1YRCbqA8Ig_W2Csq153-tM6H73-nks5rouAVgaJpZM4LlGBh.

General concensus seems to be that this is a bad idea all together, so I'm closing this 🙂
Feel free to reopen if someone wants to discuss it further

So can we now implement/disable the rendering properly?

To recap: the reason raw rendering is considered unsafe is because
an attacker user could publish (via pushes to a repository)
malicious javascript code that would steal service credential from other
users watching the published code.
This means that administrators trusting all users to not be malicious
could really as well want to ALWAYS_RENDER_RAW_FILES, while those who
cannot trust users should NEVER_RENDER_RAW_FILES instead.
Rendering raw files from a different domain would remove the danger
altogether.
So my proposal for a "proper" way to do things is:

Allow setting a ROOT_URL_RAW variable to be used for serving
raw files rendering. When set, raw files would be served only
from the given domain, when unset, raw files would be disabled.

People trusting their users and NOT wanting to register another domain
could set ROOT_URL_RAW = %ROOT_URL, the others could leave that unset
(the default).
What do you think ?

Great idea!

@strk I'm fine with that proposal 🙂

So anyone willing to implement ?
@geek1011 ?


Merge redgreen-optimized into develop

This will bring GPU capability into the develop branch.
@wdeconinck and I discussed again the issue of how to do this merge yesterday. As @wdeconinck pointed out before, if we just merge develop into redgreen-optimized before submitting a PR of the latter, we should be able to do the merge in one go rather than first preparing develop with the cpu/gpu subdirectory structure. That's what I've tried here. It seems to have worked, so if we merge this PR we no longer need https://github.com/ecmwf-ifs/ectrans/pull/103.
This is a draft as I want to carry out tests on both cpu and gpu versions first. According to Meld there are (literally) no differences between src/trans in develop and src/trans/cpu in rgo-develop. So I think this PR shouldn't screw anything up on the CPU side at least.
Note that this branch is still not stable on AMD platforms due to an outstanding issue with HIPFFT. Solving this is on the todo list. In the meantime, for AMD support you have to fall back on redgreengpu, which is the unoptimised but more portable branch.

Tests failing for unknown reasons. Investigating...

Tests were failing because the arrays containing time step stats were not resized for the extended (by two elements) time step loop in the benchmark program. Intel and NVHPC were happy with this for some reason.

I think we probably want to aim for a single (unified) interface folder, rather than have separate ones for cpu and gpu?

I think we probably want to aim for a single (unified) interface folder, rather than have separate ones for cpu and gpu?

I guess it could be done after this PR

I think we probably want to aim for a single (unified) interface folder, rather than have separate ones for cpu and gpu?

I guess it could be done after this PR

We need to work on a unified interface for any combination of double, single, cpu, gpu. Part of this work is already in develop on avoiding duplicate symbols.

I can confirm that all norms produced by the tests are identical between the CPU version in this branch and develop. To check this I had the norms before and after the benchmark loop dumped in hexadecimal to a text file and compared this between the full CTest suite between both branches. That's a nice feature we might like to implement properly at some point.

The include directories are definitely borked in this branch. Until we have unified interfaces, for now I suggest we aim for
install
|
 --> include
     |
      --> ectrans
          |
           --> cpu
           --> gpu

I tried implementing this first for the CPU version but I got lost and ended up creating an cpu/cpu directory at some point. Need a bit of help there.

Looking great so far. Some conflicts need resolving. I suggest merging 'develop' into this branch once more to resolve conflicts.

Is something substantial holding this back? (perhaps holidays :) )

Apologies, I should have given an update here. One big thing which makes me hesitant to merge is the fact that this branch is not yet usable within the IFS even on Nvidia platforms. When I use this branch within IFS-RAPS, I get numerical instabilities. This issue only appeared a couple weeks ago when I gave the branch a spin in RAPS on JSC/JURECA-DC (A100). This was a surprise to me as I successfully used an earlier version of rgo-develop within RAPS with (GPU enabled). I'm sure we can get to the bottom of it, but it's hard to say how long it will take.
We could just get this PR over the line now with big warning signs that it is unstable. Or we could nail this bug beforehand. Any thoughts from others?

I'd say as long as CPU and GPU works in the standalone benchmark and doesn't add regression over current behaviour (i.e., CPU version fully functional in IFS) there's nothing that should prohibit merging this and fixing incrementally going forward.

Great, so all good for integration.
Could I please propose a squash-merge of this branch into develop to keep history manageable?

By all means, do whatever you think will give us the cleanest history.

I will attempt to merge the latest develop into rgo-develop now.

Oh ffs. I have to open a new PR now?


You update the addon to v2.0.3. But, I installed the addon that has v2.0.2. Why, I don't get the updated addon from the website!?

@SageTendo, You update the addon named MAL-Stremio-Addon. But, I don't get any update from the website where I connect my MAL account and install the addon in Stremio. Currently, my Stremio app MAL-Stremio-Addon's version is v2.0.2. But, you already updated the addon to v2.0.3. but why don't we get an updated addon from the website.

The update is a minor backend update, it is still compatible with older version.  I had forgotten to change the version in the manifest. I'll update the manifest so it reflects on your side when you reinstall the addon.
Sorry about that.


Separate vnet for PEs

added a separate static vnet for PEs
added peerings between RP and PE vnets
changed PE creation - PEs should now be created in the PE vnet.
I'm not sure if modifying the env (pkg/env) definition is the right way to go, or if I should hard code the pe vnet name for now.

rebased and pushed to fix conflicts and a couple of typos


Always add ASP.NET Core env vars

#700
/cc @Tratcher @DamianEdwards

Note this will regress https://github.com/aspnet/MusicStore/pull/637/files again if the server is being specified by environment variable.

@Tratcher lets close on this Monday with a plan to remove UseDefaultHostingConfiguration


Add C++ solution for 981: Time Based Key-Value Store

Thank you!

Hi @arrufat ! Thanks for the contribution, and apologies for the delay in reviewing. This problem has already been solved, closing as duplicate!


Bug/cidrnotvalid

@jesuspg @jframos

Some previous comments from the closed PR should be taken into account...

comments were already taken into account https://github.com/telefonicaid/fiware-paas/pull/155

LGTM

LGTM


how to generate video visualizations?

We used the GUI of instant-ngp to obtain the camera trajectory. Please refer to their repo.


Qt 5.6 is deprecated, need to shift to next LTS

Qt 5.12 is next LTS, but 5.12 is missing Win32 version on Appveyor, only 64bit is available. https://www.appveyor.com/docs/windows-images-software/#qt
I suggest migrating as follows:

Update Appveyor to build 5.12 instead of 5.11, and use 64bit only. Review this build and fix all issues (as a separate task, with assistance of @anastasiia-kornilova) and make 5.12-x64 a default one for all platforms instead of 5.6.3, since 32bit can be considered obsolete.
Shift for 32bit windows builds from 5.6.3 to something like 5.11 later, since majority of users has 64bit OSes.

AppVeyor has 5.12 both 32- and 64-bit with MinGW 7.3. Let's stick to Qt5.12 for desktop builds for everything.


Install React-Hook-Form and Zod libraries

Brief description:
React-hook-form is a library we are going to be using to make our lives easier for verifying and sending information from form inputs. Zod is a schema validating library which works with React-hook-form to validate the inputs
How to achieve it:

Read the documentations of both libraries. Go to the front-end part of the project and install the libraries.
React-hook-form
Zod

I installed the libraries.


UnsatisfiedLinkError

Getting exception:
Caused by: java.lang.UnsatisfiedLinkError: lib: libkeyboardhook-darwin-x86_64.dylib not found in lib directory
Running on mac, does this means this lib is not supported for mac?

Nvm, didn't say that its windows only
my bad


Remove ShouldUseParameterizedProofs switch

Not directly. That feature flag is used to enable sock puppets to try proof types ahead of all users. For example theqrl used some sock puppets with the flag to try out their integration on prod.


feat: added spike report for custom form system

Related Issue(s)

resolves #119

Quick overview of the change
Added design doc for custom form

1 challenge that was not yet fully ironed out is what happens to responses when the version of the form changes. It should be something we need to figure out.


docker-on-arm.md missing, broken link in readme.md

hey @luxas, it looks like the https://github.com/luxas/kubernetes-on-arm/blob/master/docs/docker-on-arm.md is missing. not that there isn't other information out there, but i just wanted to let you know in case there was any specific information that could help out new users using your repo. keep up the great work, man!

Hi @v1k0d3n! I'm glad you're still following my project so you're able to create issues :)'
I deleted the file because if I would keep it, it would be misleading because so much things have happened since I wrote it.
I hadn't time to rewrite the doc when I made the release, but maybe I'll write up something for the next release :)

Hi,
I started a new document :-) hope you find this useful

Fixed at dev with #97


Provide a standalone .deb package

Currently, we provide a .tar.gz and a .tar.xz package for Linux.
It's not clear how to use it after extraction to have a better integration with the system.
We need to document the installation steps.
We can also provide a .deb package easily with the CPack generator but we need help for testing.

@whiiiskyy FYI

Definitely agree, I will take care of documenting the installation steps !

@whiiiskyy You can try to fork F3D and modify this line https://github.com/f3d-app/f3d/blob/ad0c670d931119bf82b3d640a30f755350d1df47/cmake/packaging.cmake#L77
You can add DEB after TXZ and create a pull request so the CI pipeline is triggered on our side and it will generate the .deb automatically so you can download it and test it.
There is a good chance you will have to add more information to the DEB package, in which case you can set additional CMake variables (please refer to the documentation)
We would appreciate it if you can contribute, please let me know in case you need more help.

EDIT: DEB package is working like a charm.
@Meakk I believe only once in life I created a .deb package (Ubuntu back in the day).
It does nothing more than what I did but in an automated process.
This is my first Git public help so sorry for my mess.
.tar.gz and a .tar.xz package for Linux provided by you guys, have everything organised in the structure it has to be, 10/10. The only missing thing was that share bin lib should be within a folder called usr. I didn't notice so during my first test nothing happened.
After the copy/paste I did this morning, F3D fully integrated with Linux Mint which is awesome. Usually, things get ugly.
It should work exactly the same with Ubuntu/ Debian, etc.
Regarding to "There is a good chance you will have to add more information to the DEB package", I opened few DEB packages here, like Slack for example, and the structure is:

file "debian-binary" with the value of " 2.0" --------- The same value appears within other DEB package. No idea.
data.tar.xz: a folder called "."(dot), and then the same folders structure available within F3D .tar.gz as explained above
control.tar.xz: a folder called "."(dot), a file called control which requests dependencies, suggestions, architecture, size, etc, like:

Package: f3d
Version: 1.2.0
Section: cad
Priority: optional
Homepage: https://github.com/f3d-app/f3d/
Architecture: amd64
Installed-Size: 76176 -------------------- I checked the size of the folder
Maintainer: F3D<EMAIL_ADDRESS>Description: A fast and minimalist 3D viewer

I've checked Slack, Telegram, Discord, all DEB files have the same structure above.
With all of that being said, the only missing part from which my first test failed was missing the folder usr.
The TEST folder structure looks like:
├── DEBIAN
│   └── control
└── usr
    ├── bin
    │   └── f3d
    ├── lib
    │   └── libf3d.so
    └── share
        ├── applications
        │   └── f3d.desktop
        ├── doc
        │   └── f3d
        │       ├── LICENSE
        │       ├── README.md
        │       └── THIRD_PARTY_LICENSES.md
        ├── icons
        │   └── hicolor
        │       ├── 32x32
        │       │   └── apps
        │       │       └── f3d.png
        │       ├── 48x48
        │       │   └── apps
        │       │       └── f3d.png
        │       ├── 64x64
        │       │   └── apps
        │       │       └── f3d.png
        │       └── scalable
        │           └── apps
        │               └── f3d.svg
        ├── metainfo
        │   └── com.f3d-app.F3D.metainfo.xml
        ├── mime
        │   └── packages
        │       ├── f3d-3d-exodus-formats.xml
        │       ├── f3d-3d-formats.xml
        │       ├── f3d-3d-image-formats.xml
        │       ├── f3d-assimp-formats.xml
        │       ├── f3d-cad-formats.xml
        │       └── f3d-vtk-formats.xml
        └── thumbnailers
            └── f3d.thumbnailer

To keep things simple, I removed non-essential folders like zsh fish bash, just to make things simpler for now.
Then I run dpkg-deb --build --root-owner-group TEST (TEST is the folder name, yeah, I should have used something more professional) which generated a TEST.deb file, so I deleted the installation I did this morning and installed the package I just generated:
 /home/w/SO/3/f3d-1.2.0-Linux ▓▒░ dpkg -i F3D.deb                                            ░▒▓ ✔ │ root@OptiPlex-7040
Selecting previously unselected package f3d.
(Reading database ... 497821 files and directories currently installed.)
Preparing to unpack F3D.deb ...
Unpacking f3d (1.2.0) ...
Setting up f3d (1.2.0) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.24+linuxmint1) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for shared-mime-info (1.15-1) ...

Everything is working like a charm, all files were copied to their system location, 100% integrated with the system, I can find F3D under the applications menu. This only happened because F3D isn't a complex tool, it is simple, light and powerful.
The only thing I am not sure if the DEB package can do is to send the file config.json under ~/.config/f3d/
The documentation @mwestphal mentioned, should cover the ~/.cache in case the thumbnail doesn't work, my case.
I hope you guys understand my messy explanation. I will check on this tomorrow, 00 AM Aussie time now!

Thanks a lot for the tests @whiiiskyy, it's very useful!
It seems like providing a .deb archive would be great addition for Debian-based users.

Then I run dpkg-deb --build --root-owner-group TEST

This is great for testing, but we need to rely on CPack to generate it automatically during the CI pipeline execution (see my previous message).
Let me know if you need help to create a pull request, I know it can be confusing if you are not a developer.

The only thing I am not sure if the DEB package can do is to send the file config.json under ~/.config/f3d/

config.json should be installed system-wise in /etc/f3d/config.json by the package
The file ~/.config/f3d/config.json can be added by the user so it takes precedence over the system config file.

The documentation @mwestphal mentioned, should cover the ~/.cache in case the thumbnail doesn't work, my case.

I'm confused, what's in ~/.cache folder?

Sure thing @Meakk , I will do the test you requested using the PR. Please, allows me some time tomorrow, well, within few hours. 1AM bow.
The .cache folder I mentioned is covered under troubleshooting section. At first, my 3D STL files thumbnail didn't work, so I renamed the folder instead of deleting it, just for precaution.
After this, the STL/OBJ thumbnail were automatically generated.

Sure thing @Meakk , I will do the test you requested using the PR. Please, allow me some time tomorrow, well, within few hours. 1AM now.

No rush, take all the time you need. Thanks again for your help.

separating the doc issue here: https://github.com/f3d-app/f3d/issues/128

@Meakk I have tried to push the changes but got access denied.
Git isn't my strongest so it could be it
git clone https://github.com/f3d-app/f3d.git
git checkout -b deb_package

Added DEB to the line 77 `set(CPACK_GENERATOR TGZ TXZ DEB)`

git add .
git commit -m "Added DEB to cPack generator"
git push --set-upstream origin deb_package

Independent of this, the folder paths to work with DEB system needs to be updated.
Both tar.gz and tar.xz have the same structure.
Basically, as I mentioned before share bin lib should be within a folder called usr
As I experienced that during my manual test, without the above, F3D won't be installed.
I have removed the DEB package I generated manually.
I can confirm it is no longer installed and thumbnails is no longer available.
I will wait for the official DEB and start from there.
 /home/whisley ▓▒░ dpkg -r f3d                                                                                ░▒▓ ✔ │ root@OptiPlex-7040
(Reading database ... 498200 files and directories currently installed.)
Removing f3d (1.2.0) ...
Processing triggers for shared-mime-info (1.15-1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.24+linuxmint1) ...
Processing triggers for mime-support (3.64ubuntu1) ...
 /home/whisley ▓▒░

Please, let me know what I should do next.
Cheers

Hi @whiiiskyy
You need to fork F3D (click on the button at the top right of this page), it will create a repository https://github.com/whiiiskyy/f3d
Then, you need to add locally the new remote: git remote add fork git@github.com:whiiiskyy/f3d.git
Push your local change to this remote: git push --set-upstream fork deb_package
If you go to your fork page, you will see a green button to create the Pull Request. Once the PR is created, the CI is triggered, and you will be able to download the .deb (you will have to wait approximately 5 minutes until it is completed)

Need any help @whiiiskyy ?

@Meakk @mwestphal  sorry guys, gonna have a look at this today. Monday morning here.

No worries. Thanks for your help.

This is what I did and this is the PR: https://github.com/f3d-app/f3d/pull/146
git clone https://github.com/whiiiskyy/f3d.git
git checkout -b deb_package
MAKE THE CHANGES
git add .
git commit -m "Added DEB to cPack generator"
git push --set-upstream origin deb_package

Please, let me know if that is what you expected.
Thank you

For reference, here is the right way to setup for contributing to F3D (and many other github project using the fork paradigm), even in the context of using git lfs

Create a fork from the original project clicking on the button in github
Clone the original project using https protocol: git clone https://github.com/f3d-app/f3d.git
In the local repository, add you own remote using git protocol: git remote add username git@github.com:username/f3d.git
Commit on the local repo
Push on your remote: git push username
Create a PR from your repo to original repo

I suspect this went wrong at step two for you.
The problem with your current setup is that you will not get update to master unless you click the "fetch upstream" button within github. Not a big deal at all in the context of this issue but you may want to fix that at some point.
Btw, we definitelly should document all that, and we will.
I hope this helps :)

Thanks for that @mwestphal it is my first somewhat contribution. I did try to help on Pi-Hole documentation but didn't get much help to explain how this git thing works so I gave up, I didn't learn.
Sorry for giving you guys more headache than actually helping :P
I will redo everything as you requested once this PR is sorted out.
About the .rpm you mentioned, I should be able to spin up a CentOS VM to check that out in case there is nobody to test it. I manage CentOS text mode only servers so I should have no problem playing around with its desktop version.
Thank you

@whiiiskyy no worries, we are verry happy to assist a contributor, especially for a first contribution :).
Let us know if you need any further help.

@mwestphal , I got everything set but first....
I've followed as requested but like before I got some permission issues.
I have bothered you guys enough about this so I went to check Git official documentation: https://docs.github.com/en/get-started/quickstart/fork-a-repo
To sync: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork
~/GITHUB/f3d  master ▓▒░ git remote -v                                                                                ░▒▓ ✔
origin	https://github.com/whiiiskyy/f3d.git (fetch)
origin	https://github.com/whiiiskyy/f3d.git (push)
upstream	https://github.com/f3d-app/f3d.git (fetch)
upstream	https://github.com/f3d-app/f3d.git (push)

I got everything working, I can git checkout deb_package the branch for the PR I created before, I can also sync my local repo:
git fetch upstream
git checkout main
git merge upstream/master                                                                                ░▒▓ ✔
Updating e12c983..81ba8e8
Fast-forward
 src/F3DLoader.cxx               |  7 +++++++
 src/F3DLog.cxx                  | 10 ++--------
 src/F3DLog.h                    |  2 --
 src/vtkF3DWin32OutputWindow.cxx |  4 +---
 4 files changed, 10 insertions(+), 13 deletions(-)

So I believe I got the fork set and the sync in place.
I noticed that the build failed because of CPack Error: Problem compressing the directory
This CPack is new to me, I did some googling and It appears that this problem is related to either the path /usr/share/cmake-3.22/Modules/Internal/CPack/CPackDeb.cmake:793 (cpack_deb_prepare_package_vars) which is too long or because this process is trying to do an in-source build or whatever that means.
The few posts I saw mentioned that in-source build. I am not sure what that would mean here.
I am not sure if this has anything to do with CPack running under /usr/share/ when f3d application is also under /usr/share and this is what they call in-source build
Well, I hope to be helping rather than the opposite haha
Thanks

Fixed by #146

Thanks @whiiiskyy !


📝 Update use inline code in api response values

Changes some API response values that were using quotes, to single quotes to form a simple block of code (@teixeira0x)

LGTM


Update create-sql-api-dotnet.md

The code in line 100 in this doc is wrong, need to remove duplicated new DocumentCollection

@jierong : Thanks for your contribution! The author, @SnehaGunda, has been notified to review your proposed change.

@jierong looks like the code line is repeated twice, thanks for fixing it. We will merge it shortly.

#sign-off


Mill dependencies should be defined as compileIvyDeps

While analyzing an reported issue to Mill which only occurs in a project using this plugin, I recognized, that API dependencies to Mill (and it's dependencies like os-lib) are defined as ivyDeps, whereas they are supposed to be defined via compileIvyDeps. This is because the correct runtime version is provided by Mill when the plugin is loaded into Mill's classpath and should not be included in the transitive dependency set.

If there are no drawbacks on this, I can send a fixing PR.

I think this might do it...
https://github.com/alexarchambault/mill-native-image/pull/70

Publishing is failing... I've pinged Alex to help out since it looks like something related to the gpg key...

#72


SINGA-95 Add make test after building

Add a new target named "test". Users just run "make test" and the system will finish the compilation and execution of the test.

Hi,
I try to use the new "make test" functionality and it reports an error.
My operations are as follows:
git fetch origin pull/89/head:SINGA-95
git checkout master
git pull origin master
git merge SINGA-95
./autogen.sh
./configure
make
make test
When "make test", an error is reported:
CXXLD    singatest
/usr/bin/ld: cannot find -lgtest
Thanks.

Hi kaiping,
The bug is fixed. Pls check.
zl


Download failed with 'Too many open files'

On a  linux machine, for big Udemy courses (for example, https://www.udemy.com/course/beginning-c-plus-plus-programming/), it fails with 'Too many open files' after ~100 lectures.
Reason : [('system library', 'fopen', 'Too many open files'),

My ulimit is 1024, I obviously can increase it but the issue is probably somewhere in the code as it feels like there's a file descriptor leak.

i have already taken care of files opening. 'm doing that with context managers hopefully it clarifies the issue is more specific to system and it was reported so many times earlier i closed it because i was not able to reproduce it the error. plus there is only one thing where i 'm using codecs pkg to open file and write to it and that function will only be called if a course has externals links to assets. i will take a look at it and change the code to use the context managers, Still i 'm sure the error is more specific to the OS you are using, But i will check and try to fix it ASAP.
so i 'm going to close this issue.

@r0oth3x49 Loving this tool!
But I experience the same behaviour. After "some" time the download of a long course fails.
Also I see a continuous increase in open file handles (lsof -p  | wc -l) leading to the conclusion that they are not closed properly and remain open.
My file-max is pretty large:
cat /proc/sys/fs/file-max
787572

and is not reached at all
sof | wc -l
276234

So the process runs into the soft limit
ulimit -Sn
1024

But over a thousand open file handles is not normal.
One could prevent this maybe by skipping subtitles as they multiply the files downloaded for each lecture quite a bit.

@Marty still using the context manager to download files and save, i guess that should have done the work for us as context manager are used for auto closing the file once done.
how i can reproduce the error?


Spent fuel resource IDs are missing

Current behavior:

The spent fuel materials are not getting registered into the Resources Table with unique IDs or as children of the fresh fuel
4 tests in tests/integration_tests.py pass and 2 fail. The 2 failing tests are testing the contents of the Resources Table in each case run.

Expected behavior:

The spent fuel materials are registered in the Resources Table with unique IDs and as children of the fresh fuel resources
All 6 tests in tests/integration_tests.py pass

I have discovered that this issue is because of missing functionality in the Python API of Cyclus, and not because of an error in this code.

Closed with the merging of #15.