text:
Automatically resolve permissions for Linux

Description
When running Nitro (or any container with a bind mount) the user often has to manually set permissions based on the host user and container user.
With 3.0 we have changed the image for Alpine based to Debian and this "breaking" change is a good time to work on resolving the automatic file permissions issue on Linux based systems.
There are a few approaches:

Adding a permissions command to make this easier #358
Dynamically grab the host uid and guid and run a command in the container as root (not the best approach)
Consider using NFS on linux based machines which allows you to specify the uid/guid on creation https://docs.docker.com/storage/volumes/#create-a-service-which-creates-an-nfs-volume

This is a known issue with Linux and containers, but I think there is a programatic way to resolve this for Nitro users.

I'm in to help testing 3.0 under Windows WSL and give all the help I can :)

This is one of the main features preventing us from using Nitro as our dev environment. I'd be happy to test on my Linux machine when this is ready.

I did a little research (during an internet outage) and found a couple of things that may be helpful. Using this article to look at some of the ways other linux users have resolved this issue, the last option talks about modifying the Docker daemon configuration to tell Docker to enable username space remapping with the userns-remap configuration in the Docker daemon full configuration reference.
The TL;DR is to perform the following tasks:

Create or modify the daemon.json file to include the userns-remap to the username on the host machine (e.g. jason).
Restart Docker, maybe manually remove a site container and run nitro apply - this is just to ensure the mount is configured with the new setting (not sure if this is needed or not)
Try accessing the site and modifying the files - without changing ownership or permissions

Is anyone willing to give this a try on the current version of Nitro? I will be trying this when I can get to my desktop linux computer but might be a while.

I tried what you suggested @jasonmccallister, but I'm receiving a different permission error now:
Error: unable to start the container, Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "/home/me/path/to/craft" to rootfs at "/app" caused: stat /home/me/path/to/craft: permission denied: unknown

I did try removing all remaining containers and running nitro apply as suggested, but the error remains.

@jasonmccallister Is this modifying the Docker general behavior globally? If yes, it's not a solution. It can cause border effects for other containers not related to Nitro. I don't think it's a wise idea to alter Docker behaviors.
I still think the best approach is to run container services with the user ID in use when installing Nitro.
Nitro is a local dev environment. I can understand it's painful to maintain multiple Dockerfile, but it's the simplest solution to remove all these permissions problems.
After thinking about the "let user bring their own image", it's not that difficult to do too. Nitro can run as now and user can override the image to use. It's their problem to build a correct image to fit with some Nitro's restrictions like exposed ports if they want to use their own images. The community can also provide and maintain some images alternatives in an official Craft repo.
At the end, what I like in Nitro is to provide me easy way to have https, adding site, db engine, redis,... The "web" image (nginx php, apache php,...) needs to mirror the hosting provider as much as possible, so it can be the responsibility of the developper, or just using the default craft image if they don't want to.

If yes, it's not a solution. It can cause border effects for other containers not related to Nitro. I don't think it's a wise idea to alter Docker behaviors.

I partially agree with you. However, the article talks about running as root and this is not an issue and talks about an approach to fix it that is not Nitro specific. I don't like recommending changing the daemon to run, but its a setting that exists for a reason (just not sure about the actual use case).

run container services with the user ID in use when installing Nitro.

The real issue is determining what user to run these as. Which that article points out also needs to exist in the container. That does not mean we can't tell the container to run as that user and maybe figure out the container user problem programmatically. If we ran as root, this would not been an issue, but that is a bad practice. Even though this is a local development environment, I would like the images to be close to "production" so there is that same experience and environment from development to production.

After thinking about the "let user bring their own image", it's not that difficult to do too.

While it's not that difficult to do, that's not an approach everyone needs. Maybe we do take this approach, but I think resolving the permissions issue without telling Linux users "oh by the way you have to do this" provides a good first use experience. Nitro tries to take the complexities of Docker and make it simple to use without learning all of the jargon.. We should eventually support the "bring your own Dockerfile" feature, but I don't think that is the proper solution for this specific issue. Solving this problem and then adding that feature would be a better approach, that way Linux users get a good out-of-the-box experience to getting started with local development.

At the end, what I like in Nitro is to provide me easy way to have https, adding site, db engine, redis,... The "web" image (nginx php, apache php,...) needs to mirror the hosting provider as much as possible, so it can be the responsibility of the developper, or just using the default craft image if they don't want to.

This is ultimately the goal we are working towards and appreciate everyone's feedback! Don't take our questions/comments as "anti-feature requests", we just want to ensure we solve the right problems and everyone benefits from the changes (which is especially tricky when working across multiple operating systems).
We will get there, but might have to take a few detours and trial and errors to get the best solution with minimal changes/tweaks.

@musicaljoeker we are going to try to set this up internally and see if we can get it working..

Is anyone willing to give this a try on the current version of Nitro? I will be trying this when I can get to my desktop linux computer but might be a while.

I tried it on WSL, it just crash Docker (and doesn't allow me to revert the change, so Docker is still crashing). See this issue https://github.com/docker/for-win/issues/6897

The real issue is determining what user to run these as. Which that article points out also needs to exist in the container. That does not mean we can't tell the container to run as that user and maybe figure out the container user problem programmatically. If we ran as root, this would not been an issue, but that is a bad practice. Even though this is a local development environment, I would like the images to be close to "production" so there is that same experience and environment from development to production.

You don't use the exact same image in dev than in production. Like on docker craft repo, you have a prod image and a dev image. You can mimic as much as possible prod environment, I don't see where is the problem to add the trick in the dev's image.
This trick is meant to solve local dev issues with file permissions only. My actual dev and prod images are exactly the same with two exceptions. I included dev tools into my dev's image AND I added this uid/gid trick to avoid files permissions. But they are exactly the same at this exception. Same Nginx version, same PHP version, same PHP extensions, same services configurations.
IF (like said in the article) you're developping on two machines, you have two computers, Nitro will be set to the correct uid on both machines because it will build the dev image according to the uid. It's the one of the reason the author gave to use another method than running services under the host uid.
Author:

The problem with this approach is that is not portable. What if I am developing using more than one computers where in each computer my user has different ID ? Or what if many developers use this image for development ?

For the second, the devs will use the same Dockerfile, just not the same images. Each dev image is built during Nitro's install or Nitro's update. The only difference will be the uid/gid passed during the image's build. If they don't build their own images, I don't understand the problem too. Each image on each dev's desktop will be different only for the uid running the services.
Don't take my words as "I'm right, you need to do that". If you find another good way to deal with this problem, without altering Docker's behaviors, I will be very happy. I just think there is a reason why Linux/WSL people are using this trick against another. ^^
About altering Docker's behaviors/config, I had an overview of what happen when trying a not-supported feature on Docker for WSL :P I needed to reset to factory my Docker to be able to run it again. It removed all my images, containers, volumes, ...

I just merged https://github.com/craftcms/nitro/pull/392 which adds a new base image and specifically includes a nitro user with the uid 1000. We (@angrybrad, @timkelty and I) tested the 3.0 branch with the new image on a WSL2 machine and it resolved the issue. The reason this worked is because the user ID on the host machine was 1000 and the containers user ID was 1000.
This will probably cover 80 percent of the use cases as most distributions start at user 1000 but that is not always the case and we still need to solve for those users who have different user IDs but we are a step closer without modifying the Docker Engine (which I agree with @xavierdemoor is not a good approach).
We're making progress, slowly but surely!

@jasonmccallister

This will probably cover 80 percent of the use cases as most distributions start at user 1000 but that is not always the case and we still need to solve for those users who have different user IDs but we are a step closer without modifying the Docker Engine (which I agree with @xavierdemoor is not a good approach).

I didn't have time to check all PR in your merge, but I saw the image have a $IMAGE_USER and use fixed uid and gid. Can I propose to use a fixed username but dynamic uid/gid ? The username doesn't really matter; it can be named x, y or z, only the uid/gid matter.
ARG UID=1000
ARG GID=1000
...
RUN mkdir /app && \
    addgroup www --gid ${GID} && \
    adduser www --home /app --uid ${UID} --gid ${GID}--no-create-home && \
    chown -R www:www /app
...
USER www

So you'll be able to do something like:
nitro rebuild 1000:1000 or nitro rebuild and internally do a docker build --build-arg UID=$(id -u) --build-arg GID=$(id -g) ?

any update on this issue?

I guess my biggest issue with using Craft and Nitro on Ubuntu is writing to storage, cpresources, and (especially) project config. Other than that it's a dream, I can get set up with a repo in 15 minutes. Unfortunately as the fix currently stands (afaik), 777 these directories in the repo doesn't seem wise. Is there anything I can test? I am starting a new project and am almost to the point of buying a mac because I want to use Nitro for development but these issues are pressing on my mind.
Kindest regards,
Clark

Hey Clark, I've gotten Nitro to the point where it works well for me under WIndows -> WSL2 -> Ubuntu. For permissions, I made a little script called nitro-perms.sh that I put in the root of my projects (and have added to .gitignore, of course).
#!/bin/bash
chmod 777 ./.env
chmod 777 ./composer.lock
chmod 777 ./composer.json
sudo chmod -R 777 ./config
sudo chmod -R 777 ./storage
sudo chmod -R 777 ./vendor
sudo chmod -R 777 ./web

I suspect that 777 in Nitro might not matter, since it's only for local development...?
Anyway, HTH!

Hey Clark, I've gotten Nitro to the point where it works well for me under WIndows -> WSL2 -> Ubuntu. For permissions, I made a little script called nitro-perms.sh that I put in the root of my projects (and have added to .gitignore, of course).
#!/bin/bash
chmod 777 ./.env
chmod 777 ./composer.lock
chmod 777 ./composer.json
sudo chmod -R 777 ./config
sudo chmod -R 777 ./storage
sudo chmod -R 777 ./vendor
sudo chmod -R 777 ./web

I suspect that 777 in Nitro might not matter, since it's only for local development...?
Anyway, HTH!

It matters, even in local dev, because the permissions will be set to 777 in the git repo of your project.
Having to chmod for local and chmod back for deployment is not a good practice. If you (or someone else) doesn't set proper permissions for prod deployment, you're in deep shit.

proimage, I believe that 777 will give everyone access to read / write / execute the file. I think it's only a real issue when your server has been compromised and an unauthorized user has access, because then they will be able to read / write / execute all of the files.
I assume people could do tricky stuff to the storage folder / web folder / vendor folder. Even just read access on the .env file is sketchy, because the only person with access to that should be you and maybe your user group. I am not an expert so I hope I am not getting things wrong, and I don't understand everything you could exploit with 777, but I understand enough to know that your site is a lot easier to hack with those files as 777.
I had the same idea as you, as locally it is not as big a deal. But since git tracks file permissions, any changes to those will trigger a change in git. And since pretty much every deploy script out there uses git, it will find it's way to the server eventually.
I think we will need to tunnel some sort of authorization to the host machine to write files on the nitro machine. (obviously people have already though of and worked on this) I have tried to follow some of the advice in the thread but it doesn't work very well for me and I would like to avoid things like creating an arbitrary user on my Linux install just to run the web process.
I certainly appreciate what the craft and nitro team have created for us but i'm starting to get more concerned about this issue as I start with a new client. I don't feel entirely comfortable using Nitro if it may introduce vulnerabilities. I'll need to get a Mac to keep using Nitro or find another Ubuntu Craft development environment.

It matters, even in local dev, because the permissions will be set to 777 in the git repo of your project.

Hmm. I think that, because most of my work was under XAMPP / Windows before Nitro came along, I must have defaulted my git install to always ignore file permission changes. Not doing so resulted in hundreds or thousands of "changed" files where the only change was the normal permissions adaptation that happens whenever Git ports files from a Linux filesystem to a Windows filesystem. In any case, my local Nitro files' permissions aren't getting transferred to the remote system. ¯_(ツ)_/¯

Even just read access on the .env file is sketchy, because the only person with access to that should be you and maybe your user group.

The .env file should NEVER make it into any repos. Use .env.example if you need to distribute the names of the various environment variables the site expects to have on-hand in .env, just don't assign them to anything.

That's true, I forgot .env is typically not checked into version control. Was the git change local? I will need to investigate that further, it may help me move forward at least.

That's true, I forgot .env is typically not checked into version control. Was the git change local? I will need to investigate that further, it may help me move forward at least.

https://stackoverflow.com/questions/1580596/how-do-i-make-git-ignore-file-mode-chmod-changes/1580644

Thank you, that will make my life much more pleasant. I wonder why that is default true... git is confusing enough for new developers.

Hmm. I think that, because most of my work was under XAMPP / Windows before Nitro came along, I must have defaulted my git install to always ignore file permission changes. Not doing so resulted in hundreds or thousands of "changed" files where the only change was the normal permissions adaptation that happens whenever Git ports files from a Linux filesystem to a Windows filesystem. In any case, my local Nitro files' permissions aren't getting transferred to the remote system. ¯_(ツ)_/¯

It's still a bad practice to set 777 permissions on git's files. Imagine someone else work with you on a project and didn't do the trick with git permissions.
I always start with that in mind. I can start alone a personal project or client project, but I never assumed it will be forever. It's too easy to forget something like that. Even if I launch a script to set proper permissions in my deployments, I don't want 777 files in my repo. I saw too many critical problems with dev's bad habits.
If you don't care, it's your problem. I'm just a maniac on security risks. :p

That's true, I forgot .env is typically not checked into version control. Was the git change local? I will need to investigate that further, it may help me move forward at least.

https://stackoverflow.com/questions/1580596/how-do-i-make-git-ignore-file-mode-chmod-changes/1580644

As the answered said, it's a bad practice to use filesMode ;)

I'd love to avoid having to use 777, unfortunately it seems to be the supported fix as of right now. I assume all devs are crazy busy already with more critical fixes. At least I can use fileMode to work on this contract.

Sorry for the long delay, we have resolved this in the 3.0 branch and it involved a breaking change (changing the container images from Alpine to Ubuntu based). This solve a ton of other issues and one of those was setting a nitro user in the container image where the uid matches the default user on most linux machines (user 1000). This removes the need for setting any file permissions on Linux.
Right now we are focusing on Craft 4 and plan on switching gears to 3.0 development after 4.0. Nitro 3.0 is nearly feature complete and half of the team is using it internally so we feel pretty great about the changes. However, there are still a few items that are not done and are going to be cut from the 3.0 release as they are more nice to haves than needed.
We are really excited to get 3.0 out the door and in use and will make sure we keep you updated soon!

Thank you for the update, very excited to see more about the new versions :)

half of the team is using it internally so we feel pretty great about the changes

Dare I ask how many of them are on Windows?

half of the team is using it internally so we feel pretty great about the changes

Dare I ask how many of them are on Windows?

I'm not part of the team but I'm using Nitro 3 on Windows. On WSL2 to be precise.

I had an easier time using Nitro with Ubuntu so I switched to that.

Hi, we are closing this issue as we have decided to retire Nitro, so no additional work will occur on this project. You can read the official blog post here https://craftcms.com/blog/retiring-craft-nitro. We appreciate everyones feedback and involvement and we look forward to refocusing our efforts on Cloud!
If you're looking for a new local development environment, we recommend DDEV and have a knowledge base article to help you with the transition: https://craftcms.com/knowledge-base/migrating-from-craft-nitro-to-ddev.

authors: clarknelson jasonmccallister musicaljoeker proimage xavierdemoor

repo: craftcms/nitro


text:
Fix warning of referenced before assignment

I would recommend to use GitHub rebase instead of merge for PRs, to avoid adding those merge commits messages and keep the history flattened.

Thanks for the PR. Regarding the rebase suggestion, I'll have to test it out first as I do use the PR details and links that pop up when I select a line in VS Code.

For example:

source: gharchive/pull-request

authors: Mandroide crahan

repo: crahan/ipyfilechooser

license: MIT

license_type: permissive

license_source: github-api


text:
Add vmodel

As I mentioned at #9, I added v-model attribution for two-way data binding.
I am sorry that my code is terrible solution because there is already rating attribution in src/star-rating.vue and I added another value prop to the component.
I think that the two props rating and value are duplicated role in this component, so they should be integrated.
But I don't have enough skill and time  to do it.
If you think my code is not good, please close this PR.
Thanks!

Thanks for the PR. I agree that duplicating the prop isn't ideal and before Vue 2.2 the only choices we would have had would be to either duplicate the prop, as you have done or to create a breaking change and bump the major version. However, Vue 2.2 added a new model option, which will allow us to use rating as the value and rating-selected as the event, the only caveat being that using v-model on this component would require Vue > 2.2. I think that's an acceptable compromise and is the way I will go.
I really do appreciate the effort you have put into this though, open-source projects rely on people like you taking the time to submit ideas and improvements, and I think that adding v-model support is a great addition to this component which would not have happened without your input.

@craigh411
Thanks for taking a look at my PR!
I understand why this PR should be closed.
I hope this library will grow up!
Thanks again.

license: mit

license_source: bigquery


text:
Update Receipt.php

return "successful" when it's a recurring transaction

Hey @PlaidFoxSG, can we get a test in place for this change?

That's a reasonable request :) I'll work on it shortly.

The failed build was in one of your tests ...
/home/travis/build/craigpaul/moneris-api/tests/ResponseTest.php:100

authors: PlaidFoxSG craigpaul

repo: craigpaul/moneris-api


text:
issue adding the package

Hello,
I installed the package and configured it as per the documentation. I am getting the following error every time i  run the project.
` X [ERROR] [plugin vite:dep-scan] Failed to resolve entry for package "vue3-snackbar". The package may have incorrect main/module/exports specified in its package.json.
node_modules/esbuild/lib/main.js:1365:21:
  1365 │         let result = await callback({
       ╵                      ^

at packageEntryFailure (file:///C:/laragon/www/elawform/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:21837:11)
at resolvePackageEntry (file:///C:/laragon/www/elawform/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:21834:5)
at tryNodeResolve (file:///C:/laragon/www/elawform/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:21572:20)
at Context.resolveId (file:///C:/laragon/www/elawform/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:21336:28)
at Object.resolveId (file:///C:/laragon/www/elawform/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:41433:46)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async resolve (file:///C:/laragon/www/elawform/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:41661:26)
at async file:///C:/laragon/www/elawform/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:41835:34
at async requestCallbacks.on-resolve (C:\laragon\www\elawform\node_modules\esbuild\lib\main.js:1365:22)
at async handleRequest (C:\laragon\www\elawform\node_modules\esbuild\lib\main.js:727:13)

This error came from the "onResolve" callback registered here:
node_modules/esbuild/lib/main.js:1287:20:
  1287 │       let promise = setup({
       ╵                     ^

at setup (file:///C:/laragon/www/elawform/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:41825:19)
at handlePlugins (C:\laragon\www\elawform\node_modules\esbuild\lib\main.js:1287:21)
at buildOrServeImpl (C:\laragon\www\elawform\node_modules\esbuild\lib\main.js:974:5)
at Object.buildOrServe (C:\laragon\www\elawform\node_modules\esbuild\lib\main.js:780:5)
at C:\laragon\www\elawform\node_modules\esbuild\lib\main.js:2126:17
at new Promise (<anonymous>)
at Object.build (C:\laragon\www\elawform\node_modules\esbuild\lib\main.js:2125:14)
at build (C:\laragon\www\elawform\node_modules\esbuild\lib\main.js:1972:51)
at scanImports (file:///C:/laragon/www/elawform/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:41606:11)

The plugin "vite:dep-scan" was triggered by this import
resources/js/app.js:8:46:
  8 │ import { SnackbarService, Vue3Snackbar } from "vue3-snackbar"
    ╵                                               ~~~~~~~~~~~~~~~

`

Apologies. There was an issue with Vite changing the file outputs. Try updating to v2.1.5

thank you @craigrileyuk . It works perfectly now. you should update it so the latest version is installed. I got the v2.1.3 when I npm installed it.

Hello, I have the same problem with version 2.1.5

thank you @craigrileyuk . It works perfectly now. you should update it so the latest version is installed. I got the v2.1.3 when I npm installed it.

Probably just NPM using a cached version.

With npm. I check version installed in the node_modules and it's the 2.1.5

Since no one else seems to be having this issue with 2.1.5 and I can't reproduce it, I'm going to close this issue.
Feel free to start a new one if you're (still) having an issue.

source: gharchive/issue


text:
how to run this app?

it throws me following error
XMLHttpRequest cannot load file:///F:/personal_profile_testing/cv/angular-ui-router-demo-gh-pages/angular-ui-router-demo-gh-pages/partials/home.html. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.(anonymous function) @ angular.min.js:86m @ angular.min.js:82f @ angular.min.js:80(anonymous function) @ angular.min.js:112$eval @ angular.min.js:125$digest @ angular.min.js:122$apply @ angular.min.js:126(anonymous function) @ angular.min.js:17e @ angular.min.js:36d @ angular.min.js:17tc @ angular.min.js:18Jd @ angular.min.js:17(anonymous function) @ angular.min.js:249a @ angular.min.js:163c @ angular.min.js:32

you need to run it under the context of a web server. There are a number of personal web servers you can use from modules available via Node.js or sometimes through your web editor. You can see the working version of the code here:  http://craigshoemaker.github.io/angular-ui-router-demo/#/

authors: craigshoemaker suriyaJaay

repo: craigshoemaker/angular-ui-router-demo


text:
Root value for pxtorem is set at 16

In the CSS build task pixel sizes are converted to rems using postcss-pxtorem. The root value for this conversion is set at 16px because at the moment this is the base font size in my starter theme.
However if the base font size in my starter theme is changed (to 18px for example), this results in all other elements becoming oversized because PostCSS Pxtorem is still using 16px as its root value.
Propose creating a config variable within css section for base font size allowing the value to be changed on a per theme basis.

Agreed that this makes sense.

authors: GaryJones craigsimps

repo: craigsimps/gulp-wp-toolkit


text:
gha: Run vale checks on ubuntu-22

See https://github.com/errata-ai/vale-action/issues/128

@mergify backport 4.8 3.3

authors: amotl mfussenegger

repo: crate/crate


text:
Add support for ILIKE in the where clause

Replacement for https://github.com/crate/crate/pull/9150
Checklist

[ ] User relevant changes are recorded in CHANGES.txt
[ ] Touched code is covered by tests
[ ] Documentation has been updated if necessary
[ ] CLA is signed
[ ] This does not contain breaking changes, or if it does:

It is released within a major release
It is recorded in CHANGES.txt
It was marked as deprecated in an earlier release if possible
You've thought about the consequences and other components are adapted
(E.g. AdminUI)

retest this please
flaky blackbox/docs/general/occ.rst I can't reproduce locally

Regarding the tests, indeed, I have removed those that were unnecessary, I have restored those that mixed ilike/like and I have kept those that I think are relevant. As for the naming, yes, going forward I will use longer names, keeping in mind that I should be able to reconstruct their bodies from the name alone. I will use the underscore. For the tests that I have added, I have followed the style of the class file, with the camel case.


text:
Add integration tests

About
As we learned through GH-88, the unit tests are not sufficient to validate the code base thoroughly. This patch intends to bring in integration tests with real instances of Prometheus, CrateDB, and CrateDB Prometheus Adapter, effectively adding end-to-end test cases, so that corresponding required adjustments/fixes like GH-96 or 2043818d will not be missed in the future.
Details
The patch also includes the commit 2043818d20, which is actual a bugfix accompanying GH-96. It has been discovered while adding the test cases validating the read path.
Screenshot

Outlook
The integration tests added on behalf of this patch will ensure that bringing in those upcoming dependency update patches will not break the application again.

GH-98
GH-102
GH-103
GH-108

/cc @matriv, @seut, @ckurze, @wierdvanderhaar

Thanks for the reviews. Merging the dependency update patches enumerated above feels so confident now -- good that we finally have that test layer now.

repo: crate/cratedb-prometheus-adapter


text:
Unknown start of token

macOS 11.7.10
go v1.23.3
GNU Make 3.81
just 1.36.0
error: Unknown start of token:
   ——▶ justfile:147:8
    │
147 │     fmt.Println("Hello, World!")
    │        ^

PS: an exist project without just init.

hey @leopku, have you been able to find a fix

This should now be fully addressed. Please let me know if i can go ahead and close this ticket.
Thank you @leopku

Fixed.
Thanks.

authors: crazywolf132 hey-ewan leopku


text:
nodejs 0.10.40 installed into wrong directory

When installing nodejs 0.10.40 via nvm the nodejs binaries end up under
[nvm_root]/v0.10.40 and not under
[nvm_root]/versions/node/v0.10.40
nodejs 0.12.7 and 4.1.1 however are installed under [nvm_root]/versions/node/ as expected.
Tested on RHEL6.6 with nvm 0.26.1.

This is the right directory. "/versions/node" is new with 0.12.0 and later only.

authors: ljharb sebthom

repo: creationix/nvm


text:
Broken links re CC0

From this page: https://staging.creativecommons.org/share-your-work/licensing-types-examples/public-domain/cc0/
The two links under More Information on this line (to summary and to legal text) are broken and need to be fixed:
Read the CC0 summary and legal text

fixed

authors: little-wow peterspdx


text:
Add chooser images from old cc.org theme

Fixes #755
Description
chooser icons from old cc.org theme were moved to this repo
Checklist:

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the master branch of the repository.
[x] My commit messages follow best practices.
[ ] I added tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

Pull request created https://github.com/creativecommons/new-creativecommons.org/pull/41


text:
Respond to Lokesh at NCeL for Saudi Arabia Open Policy Opportunity

Ask additional questions, suggest initial site visit as phase 1, give rough sense of approach.

Develop proposal for initial virtual consulting and share with Tim, Cable, Naeema and Ryan

repo: creativecommons/open-policy-network


text:
Minor display bug on Dashboard - Tasks buttons popover

Hello,
First, thank you for this awesome repo and work that you guys are doing.
I noticed something like a CSS problem on the Dashboard > Tasks.
When you are hovering the edit or delete icons, the popover that comes out is truncated / below other elements. See this  for reference.
This bug is visible at least on Linux/Firefox (59.0.2 64 bits).
I do not see it using Linux/Chromium (65.0.3325.181 64 bits)

Thank you for the prompt response and the fix tip.
Keep up the good work !


text:
Update copyright 2023

Reviewer checklist

[ ] Read the contributing guide
[ ] PR should be motivated, i.e. what does it fix, why, and if relevant, how
[ ] Ensure relevant issues are linked (description should include text like "Fixes #")
[ ] Ensure any appropriate documentation has been added or amended

Coverage: 99.668%. Remained the same when pulling 55b82688ca5a92093a221364b102f75c51cc1d9b on copyright into 56db5fa70051a823ea3848f735eb3c50b44d78f4 on main.

authors: big-andy-coates coveralls

repo: creek-service/creek-service


text:
🛑 MyTrip Connector Tourism Website is down

In c89025e, MyTrip Connector Tourism Website (https://mytripconnector.com/) was down:

HTTP code: 403
Response time: 308 ms

Resolved: MyTrip Connector Tourism Website is back up in 81906d4.

repo: crefati/monitoring


text:
🛑 MyTrip Connector Tourism Website is down

In af7a3c2, MyTrip Connector Tourism Website (https://mytripconnector.com/) was down:

HTTP code: 403
Response time: 301 ms

Resolved: MyTrip Connector Tourism Website is back up in 3ce689c.


text:
🛑 Mechanic Garage Website is down

In e0b7752, Mechanic Garage Website (https://mechanicgarage.co.tz/) was down:

HTTP code: 403
Response time: 370 ms

Resolved: Mechanic Garage Website is back up in 6cfd35a after 17 minutes.


text:
Upgrade to lazavel 5.6

Laravel 5.6 has just been released it would be nice to also upgrade this project to Laravel 5.6

PRs are welcomed!

authors: cretueusebiu nickhq

repo: cretueusebiu/laravel-vue-spa


text:
Replays on Erangel cause key error

I think this is due to the new Erangel coming out just recently, but can't find where I would fix it. Attached is the error that is coming up:
Traceback (most recent call last):
  File "myFirst.py", line 27, in <module>
    fps=30,
  File "C:\Program Files\Python37\lib\site-packages\chicken_dinner\models\telemetry\telemetry.py", line 541, in playback_animation
    return create_playback_animation(self, filename, **kwargs)
  File "C:\Program Files\Python37\lib\site-packages\chicken_dinner\visual\playback.py", line 113, in create_playback_animation
    mapx, mapy = map_dimensions[map_id]
KeyError: 'Baltic_Main'

Yeah you're right. It would map to Erangel_Remastered_Main_* in the assets repo. I'll work on an update in the near future.

#32 should fix this. You can install version 0.8.0 which should support all maps including the remastered Erangel.

authors: Brunius crflynn

repo: crflynn/chicken-dinner


text:
Donations with Stripe credit card processing!

Finally getting going on the donations page! This is just the initial skeleton and will be a WIP as I continue to flesh things out.

On the support page, the link in the about crimethinc div in the footer are also green. :P

@veganstraightedge I'd put font-weight: 400 on the next button like the mothly / one-time label and I'd also set the mouse cursor to pointer when you hover the next button.

@veganstraightedge I looked into what it takes to "activate" a stripe account and it's pretty in-depth:

@just1602 I saw your comment about the hard-coded id and, yes, you are totally right. That was a goof and I got that fixed. 👍

You could do that. Or you could add a file specific exclude for that type of warning in .rubocop.yml

@veganstraightedge Hey hey heeeey! 🕺
Looks like we've still got two issues on code climate regarding that long helper method that I made an exception for in rubocop, and also the complexity of the create_session method:
def create_session
  email = params[:email]
  customers = Stripe::Customer.list(email: email).data

  if customers.present?
    customers.each do |customer|
      customers.delete(customer) if customer.subscriptions.data.empty?
    end

    if customers.empty?
      flash[:error] = "We can't find a subscription with that email address."
    elsif customers.one?
      subscription = SubscriptionSession.create!(
        stripe_customer_id: customers.first.id,
        token: SecureRandom.hex,
        expires_at: 1.hour.from_now
      )

      SubscriptionMailer.with(subscription: subscription, email: email).edit.deliver_later

      flash[:notice] = 'We sent you an email with a link to do the thing you need to do.'
    else
      flash[:error] = 'We found multiple subscriptions with that email address. Please send us an email.'
    end
  else
    flash[:error] = "We can't find a subscription with that email address."
  end

  redirect_to [:support]
end

I agree that it feels too complex, too many layers to that onion, but I don't really know how to clean it up. There are just so many scenarios that need checking and I can't think of how to make it easier to read. Maybe a case statement somewhere? /shrug
Another questionable spot:
def find_or_create_customer(email:, source:)
  return if email.blank? || source.blank?

  customers = Stripe::Customer.list(email: email).data

  if customers.present?
    customers.first
  else
    create_customer(email, source)
  end
end

Because store.crimethinc.com is creating new a Stripe 'customer' for every order (regardless of repeat email), we have lots customers with the same email address. I wasn't sure how best to address that when doing a find_or_create sorta thing. I opted to just grab the first customer because that is the most recent one. Thoughts on that?
Also, a couple other follow-up questions:

Do you still want me to rename: DonationsController => SupportController?
Should we limit people to just ONE cwc subscription per email / customer?
How do you feel about the general approach to the support edit screen:

Without an 'amount' selected:

With an 'amount' selected:

I did a super quick styling of things, totally open to suggestions. The main issue for me was creating as few forms as possible. It seemed a little too much to create another view for a single drop-down update form. Shoving the 'update' form into the table seemed like a happy compromise to keep all subscription "actions" in one place.
The credit card update is not functional yet. I was thinking about maybe holding off on that for now, button up what we've got elsewise. This is starting to feel like a pretty big PR and it would be nice to carve a little bit out so that I (we) can focus on refactoring what needs refactored and get this up to production! The credit card update functionality could always be an immediate follow-up PR.
I still need to move all the inline text to en.yml, but I want to wait until we've refactored what we want and have a very clear picture of what text we actually need. Oh, and @just1602, I tried converting the form_tag to form_with, but the Stripe checkout stuff was being weird and not populating the hidden fields like it had been:
<%= hidden_field_tag 'js-stripe-email' %>
<%= hidden_field_tag 'js-stripe-token' %>

I saved a copy of my attempts with form_with, so it could give it another shot later on, but it was starting to frustrate me. 🤦♂ Maybe we can punt that refactor to the follow-up PR as well?
Anyhoooooo, lemme know how y'all want to proceed.

I refactored the support edit page:

@veganstraightedge I'm getting pretty close here. I still need to flesh out the emails a tiny bit, move all the new text into en.yml, and figure out how to simplify the newly complicated create method.

@veganstraightedge If you've got some time in the next couple days, we could take a look at the newly-complex create method. 🙄

authors: eliduke just1602 veganstraightedge

repo: crimethinc/website


text:
Conditions with timer.

I would to to suggest some conditions working with a timer, For example: the guy take damage and get shocked until the next turn, so at the start of their round the conditions reset. Another example: the guys need 2 turns to prepare a bow or reload ammo so you can set the numbers of rounds and it start a counter. There's a module called utility Belt that does it but does,t work for us.

We have every intention on doing this.    Foundry calls these "Active effects", and one of their main features is a "duration".
However, we are waiting to see how far SJG will let us go with this level of automation.
Since this has been discussed many times before, I am going to close this issue.  If SJG games allows us to provide this level of automation... we will implement it almost immediately ;-)

authors: cefasheli crnormand

repo: crnormand/gurps


text:
non-ascii-armored, non-vulnerable pgp keys show warning

I'm seeing warnings for PGP keys that should be perfectly fine.
Take for example my own key:
gpg --recv-key FE73757FA60E4E21B937579FA5880072BBB51E42
If you export it with ascii armor it's perfectly fine:
gpg --export --armor FE73757FA60E4E21B937579FA5880072BBB51E42 > foo.asc
roca-detect foo.asc
However if you take the non-ascii-armor version:
gpg --export FE73757FA60E4E21B937579FA5880072BBB51E42 > foo
roca-detect foo
2017-10-16 22:26:18 [17716] WARNING Fingerprint found in modulus foo idx 237
{"type": "mod-hex", "fname": "foo", "idx": 237, "aux": null, "n": "0x1", "marked": true, "time_years": -1, "price_aws_c4": -1}
2017-10-16 22:26:18 [17716] WARNING Fingerprint found in modulus foo idx 237
{"type": "mod-dec", "fname": "foo", "idx": 237, "aux": null, "n": "0x1", "marked": true, "time_years": -1, "price_aws_c4": -1}
My guess is that it's not properly detecting the pgp key format and interpreting the key as something else which triggers the warning. In any case: I'm 100% sure this key was generated with gpg itself and not any infineon chip, so it can't be vulnerable (unless gpg suffers from the same vuln in some strange way).

For PGP key detection you need ASCII Armored key.
If you don't use that roca has autodetection for several formats and here apparently fallbacks to raw modulus detection. JSON output shows "n": "0x1" meaning detected RSA modulus is 1 which would be considered vulnerable which is not your real modulus I suppose :)

repo: crocs-muni/roca


text:
Scripts not found

Hello,
i was pretty inactive last time but now i updated to latest github revision and wanted to launch my scripts i wrote but my self implemented console didnt showed up which made me look into the scripthookvdotnet.log and it says that my dll or my .cs files are found but they doesnt contain any scripts. Scripts found (0) ....
I tried the SimpleTrainer script from example project and it also doesnt find any scripts.
What to do now?

My stupidity ---.---

repo: crosire/scripthookvdotnet

license: Zlib


text:
Test directory is wrong?

Hi,
I think that the test directory has wrong name.
Today it's name is "it", but need be by default "test".
The problem is that commands like this sbt test didn't found the tests.
One solution can be add this line in build.sbt file:
scalaSource in Test := baseDirectory.value / "src/it/scala",

Example:
lazy val djinni = (project in file("."))
  .configs(IntegrationTest)
  .settings(
    name := "djinni",
    Defaults.itSettings,
    scalaSource in Test := baseDirectory.value / "src/it/scala",
    libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % "it",
    libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2",
    libraryDependencies += "org.yaml" % "snakeyaml" % "1.26",
    libraryDependencies += "com.github.scopt" %% "scopt" % "4.0.1",
    libraryDependencies += "commons-io" % "commons-io" % "2.11.0",
    assemblyOutputPath in assembly := { file("target/bin") / (assemblyJarName in assembly).value },
    assemblyJarName in assembly := s"${name.value}",
    assemblyOption in assembly := (assemblyOption in assembly).value.copy(prependShellScript = Some(defaultUniversalScript(shebang = false))),
    test in assembly := {}
  )

But when SBT find the tests, it has problem with dependencies:
sbt test
[info] welcome to sbt 1.4.7 (Oracle Corporation Java 11.0.12)
[info] loading settings for project djinni-generator-build from plugins.sbt ...
[info] loading project definition from /Users/paulo/Developer/workspaces/java/djinni-generator/project
[info] loading settings for project djinni from build.sbt ...
[info] set current project to djinni (in build file:/Users/paulo/Developer/workspaces/java/djinni-generator/)
[info] compiling 3 Scala sources to /Users/paulo/Developer/workspaces/java/djinni-generator/target/scala-2.12/test-classes ...
[error] /Users/paulo/Developer/workspaces/java/djinni-generator/src/it/scala/djinni/GeneratorIntegrationTest.scala:3:12: object scalatest is not a member of package org
[error] import org.scalatest.GivenWhenThen
[...]

What do you think in solve it and move to correct place and solve dependencies problem?

It will solve test problems and format problems.

There is nothing wrong with the directories. it is the default directory for integration tests. Pls have a look at the developer guide on how to execute integration tests.
We currently do not have any unit-tests, that's why the test folder is missing.

authors: jothepro paulo-coutinho

repo: cross-language-cpp/djinni-generator


text:
Just want run TLS examples !

root@ubuntu:/home/adel/crosstest/static# crossbar start
2016-02-25T03:00:13-0800 [Controller  14190] Automatically choosing optimal Twisted reactor
2016-02-25T03:00:13-0800 [Controller  14190] Running on Linux and optimal reactor (epoll) was installed.
2016-02-25T03:00:13-0800 [Controller  14190] Stale Crossbar.io PID file (pointing to non-existing process with PID 14181) /home/adel/crosstest/static/.crossbar/node.pid removed
2016-02-25T03:00:13-0800 [Controller  14190]      __  __  __  __  __  __      __     __
2016-02-25T03:00:13-0800 [Controller  14190]     /  |__)/  \/__/`|) /\ |)  |/
2016-02-25T03:00:13-0800 [Controller  14190]     __,|  \/././|__)/~~|  . |__/
2016-02-25T03:00:13-0800 [Controller  14190]
2016-02-25T03:00:13-0800 [Controller  14190]     Version: 0.11.2
2016-02-25T03:00:13-0800 [Controller  14190]
2016-02-25T03:00:13-0800 [Controller  14190] Starting from node directory /home/adel/crosstest/static/.crossbar
2016-02-25T03:00:14-0800 [Controller  14190] Loading node configuration file '/home/adel/crosstest/static/.crossbar/config.json
2016-02-25T03:00:14-0800 [Controller  14190] *** Configuration validation failed ***
2016-02-25T03:00:14-0800 [Controller  14190] invalid authentication method key 'tls' - must be one of ['ticket', 'cookie', 'wampcra', 'anonymous']
====
i ve tried the 2 examples of tls authentication.. but just check the last error .. despite im running the same version of crossbar 0.11.2 like oberstet run his example !! cant understand wats going.
NB : im newbie on crossbar .. i dont know much on config and workers and containers ..want simple explanation of wat i ve to do  THANK YOU

Solved by using crossbar package dedicated to 14.04 ubuntu .. its 12.* version .. dont know why but worked !

repo: crossbario/crossbarexamples


text:
local development make run error

I get the following trying to run the controller locally
🦄 ❯❯❯ make run
15:38:58 [ .. ] verify go modules dependencies have expected content
all modules verified
15:38:59 [ OK ] go modules dependencies verified
15:38:59 [ .. ] go generate linux_arm64
15:39:03 [ OK ] go generate linux_arm64
15:39:03 [ .. ] go mod tidy
15:39:03 [ OK ] go mod tidy
15:39:03 [ .. ] Generating CRDs with kustomize
15:39:03 [ OK ] Generated CRDs with kustomize
15:39:04 [ .. ] Cleaning up kustomize generated CRDs
15:39:04 [ OK ] Cleaned up kustomize generated CRDs
15:39:04 [ .. ] Running Crossplane locally out-of-cluster . . .
customresourcedefinition.apiextensions.k8s.io/observedobjectcollections.kubernetes.crossplane.io created
customresourcedefinition.apiextensions.k8s.io/providerconfigs.kubernetes.crossplane.io created
customresourcedefinition.apiextensions.k8s.io/providerconfigusages.kubernetes.crossplane.io created
The CustomResourceDefinition "objects.kubernetes.crossplane.io" is invalid:
* spec.conversion.webhookClientConfig.service.name: Required value: service name is required
* spec.conversion.webhookClientConfig.service.namespace: Required value: service namespace is required
make: *** [run] Error 1

What happened?
when running the make target make run it fails since missing required fileds are not in the CRD I have followed the instructions for Developing locally and Running locally
How can we reproduce it?
just run from main.
make
make local-dev
make run

Let's try to track everything needed to get this local development scenario working again in #249 instead of having 2 separate issues. I'll go ahead and close this one and we'll follow up there. 🙇

repo: crossplane-contrib/provider-kubernetes


text:
[Bug]: Critical issue: When a provider is removed, external resources are also deleted.

Is there an existing issue for this?

[X] I have searched the existing issues

Affected Resource(s)
All resources were affected, ..gcp.upbound.io/v1beta1.
Resource MRs required to reproduce the bug
apiVersion: compute.gcp.upbound.io/v1beta1
kind: GlobalAddress
metadata:
  name: roldyx
spec:
  deletionPolicy: Delete
  forProvider:
    addressType: EXTERNAL
    description: eliminar
    project: xxxxxxx
  managementPolicies:
  - '*'
  providerConfigRef:
    name: crossplane-loadbalancer-creds

Steps to Reproduce
I create any resource. (Ex: globaladdress)
I delete the provider. (Ex: provider-gcp-compute)
Here more details.. link
What happened?
As soon as the provider is deleted, the external resource is also deleted. This does not happen with resources created in Kubernetes.
Then I redeploy the provider, and obviously it's Healthy=False. I fix the CRD, and all resources disappear, so I have to redeploy everything again.
If the deletionPolicy is Orphan, we avoid the headache of losing all remote resources. But we clearly have to redeploy everything again.
Relevant Error Output Snippet
No response
Crossplane Version
v1.14.4
Provider Version
v0.41.0 v0.41.4 c1.2.0  all these version were tested
Kubernetes Version
v1.27.3
Kubernetes Distribution
GKE
Additional Info
No response

Hi @roldyxoriginal,
Thank you for bringing up this, I tried this issue with different resources and different family providers. In some cases, the resource was deleted from the cluster but the external resource was not deleted, in some cases, like yours, the external resource was deleted but the resource was not deleted from the cluster. The reason for this is the deletion of Provider.pkg and its revision, as explained in the issue you mentioned.
We do not support deleting the relevant provider if there are active resources/CRs in the cluster. However, if the provider is deleted while there are active CRs, undesirable situations (cases that I mentioned above and that you encountered) arise and the solution to this needs to be fixed upstream rather than on the provider side.
So I'm closing this issue, thank you for your understanding.

I can't seem to understand your position. If I create a resource and delete the provider, I at least expect the external resources not to be deleted, especially since the resource still exists in Kubernetes. I understand it would be fine for the external resources to be deleted if I deleted the Kubernetes resource. In my opinion, and I reiterate, it's a humble opinion, it doesn't seem right that a provider deletes an external resource simply because the provider itself was deleted. Doesn't it seem like a bug to you?

Sorry, I understand, this issue should be reported in Crossplane. I agree with you.

authors: roldyxoriginal turkenf

repo: crossplane-contrib/provider-upjet-gcp


text:
pkg/errors: add multi error

Description of your changes
Follow-up of https://github.com/crossplane/crossplane/pull/4311.
Add errors.Join(errs ...error) and errors.MultiError interface. It is based on kube apimachinery
NewAggregate as the output is not multi-line like with Golang's errors.Join.

Fixes #
I have:

[x] Read and followed Crossplane's contribution process.
[x] Run make reviewable test to ensure this PR is ready for review.

How has this code been tested

@sttts the linter is complaining because of the imports ordering, you can fix it automatically by running GO_LINT_ARGS=" --fix " make reviewable (which under the hood runs golangci-lint run --fix with the right version of golangci-lint)

authors: phisco sttts

repo: crossplane/crossplane-runtime


text:
Method set generation for Provider interface

Signed-off-by: Muvaffak Onus onus.muvaffak@gmail.com

Description of your changes
Implements code generation for https://github.com/crossplaneio/crossplane-runtime/pull/93

Checklist

I have:

[x] Run make reviewable to ensure this PR is ready for review.
[x] Ensured this PR contains a neat, self documenting set of commits.

@negz The PR I was waiting is merged and I confirmed that this PR does what's expected.

repo: crossplaneio/crossplane-tools


text:
Build errors in CordovaPluginFileDemo

we need to setup the workspace's build location to be relative to the workspace.
In File -> Workspace Settings..., click Advanced... in Build tab to open the Build Location settings. Select Custom -> Relative to Workspace, and leave the default value as it is.
And we need to build for "iOS Device" to trigger Xcode to create the directory "Debug-iphoneos".

I'm considering to add search paths for both simulator and device build, or write a script to do the embedding work, which could make the setup less painful.

Unfortunately the above remedies about workspace settings and build for iOS device had already been applied and the error still occurs.

The directory third-party/cordova-ios contained no entries. I manually copied the files from my backup and the resultant build has no errors--only the 4 warnings I mentioned earler.

The third-party/cordova-ios is an submodule, and this file demo also depends on another submodule in third-party/Icenium/sample-file. so you need to run git submodule update --init --recursive in crosswalk-ios directory to retrieve source codes for those projects.

Interesting.  I didn't have to do that before!
The app actually does run--however there was a long timeout before it came up. The appstore image is a new message from that demo.

After fixing all the missing submodules, this is what I believe the copy bundle resources should be. I am going to start fresh as GitHub on my Mac desktop seems to have lost its brains.

I decided to start over since the Github desktop caused several of the problems. With a fresh clone, here are the steps to be followed to make the CordovaPluginFileDemo work properly which could be in the readme:

In Xcode. File-Workplace-Settings-Advanced. Build location-custom-relative to workspace.
In xcode project settings-general remove Launch screen file: main. (We want the plugin to display the launch screen)
Build phase-Copy bundle resources from the Icenium app-resources/ios directory add Default-568h.png, Default-Portrait.png, and Default-Landscape.png
Select scheme CordovaPluginMenu either from dropdown or product menu
Select destination iOS device either from dropdown or product menu
Build or run if device attached

At this point the plugin demo will correctly generate the splash screen from the plugin and the file demo from the plugin.  It will also work on the simulator if you chose the destination device.

authors: jondong videophonegeek

repo: crosswalk-project/crosswalk-ios


text:
[Windows] Add a msbuild.gypi and clean up the MSBuild Python wrapper

Instead of manually calling msbuild_dotnet.py and then renaming
xwalk_dotnet_bridge.dll every time one wants to build a .NET
extension, do that only once in msbuild.gypi: the other targets just
need to define a few variables and include the new gypi file, which then
takes care of doing all the rest.
This considerably reduces the size of the other gyp files and avoids a
lot of duplication.
Clean up msbuild_dotnet.py itself a little:

Stop invoking MSBuild from //xwalk/extensions/test/win, which
creates some needless complications in the WiFi Direct gyp code.
Instead, just invoke it from the root of the build directory (the
default).
Use argparse instead of optparse to avoid having to manually
validate required arguments.
Pass /nologo and /verbosity:quiet to MSBuild to make it quieter.
Split MSBuild's parameters into a separate variable to make the code
easier to understand.

RELATED BUG=XWALK-7336

@darktears @heke123

look a lot nicer thanks.
LGTM

authors: darktears rakuco

repo: crosswalk-project/crosswalk


text:
Uploading files with the new CLI tool ignores "dest" parameter

Using the old tool on another computer it uploads files correctly to subfolders, while the new tool just puts them in the root folder of my crowdin project.
Old tool:
Updating source file `sdmaid/strings.xml' - OK
Updating source file `unlocker/strings.xml' - Skipped
Updating source file `sdmaid/description.txt' - OK
Updating source file `sdmaid/title.txt' - Skipped
Updating source file `sdmaid/short_description.txt' - Skipped
Updating source file `unlocker/description.txt' - Skipped
Updating source file `unlocker/title.txt' - Skipped
Updating source file `unlocker/short_description.txt' - Skipped

New tool:
File '/strings.xml' - OK
File '/strings.xml' - OK
File '/description.txt' - OK
File '/title.txt' - OK
File '/short_description.txt' - OK
File '/description.txt' - OK
File '/title.txt' - OK
File '/short_description.txt' - OK

Config
"project_identifier" : "sdmaid"

"files" : [
  {
    "source" : "/sdmaid/src/main/res/values/strings.xml",
    "dest" : "/sdmaid/strings.xml",
    "translation" : "/sdmaid/src/main/res/values-%android_code%/%original_file_name%",
#    "update_option" : "update_as_unapproved",
    "languages_mapping" : &stringmapping {
      "android_code" : {
        "ar" : "ar",
        "am" : "am",
        "hy-AM" : "hy-rAM",
        "az" : "az",
        "be" : "be",
        "bn" : "bn-rBD",
        "bg" : "bg",
        "ca" : "ca",
        "cs" : "cs",
        "da" : "da",
        "de" : "de",
        "el" : "el",
        "es-ES" : "es",
        "es-AR" : "es-rAR",
        "es-MX" : "es-rMX",
        "es-VE" : "es-rVE",
        "et" : "et-rEE",
        "eu" : "eu-rES",
        "fa" : "fa",
        "fil" : "fil",
        "fi" : "fi",
        "fr" : "fr",
        "gl" : "gl-rES",
        "hr" : "hr",
        "hu" : "hu",
        "hy-AM" : "hy-rAM",
        "is" : "is",
        "id" : "in",
        "it" : "it",
        "he" : "iw",
        "ja" : "ja",
        "ka" : "ka-rGE",
        "km" : "km-rKH",
        "kn" : "kn-rIN",
        "ko" : "ko",
        "ky" : "ky-rKG",
        "lt" : "lt",
        "lv" : "lv",
        "lo" : "lo-rLA",
        "ms" : "ms",
        "ml-IN" : "ml-rIN",
        "mn" : "mn-rMN",
        "mr" : "mr-rIN",
        "my" : "my-rMM",
        "ne-NP" : "ne-rNP",
        "nl" : "nl",
        "no" : "no",
        "pl" : "pl",
        "pt-PT" : "pt",
        "pt-BR" : "pt-rBR",
        "ro" : "ro",
        "ru" : "ru",
        "rm-CH" : "rm",
        "si-LK" : "si-rLK",
        "sk" : "sk",
        "sl" : "sl",
        "sr" : "sr",
        "sv-SE" : "sv",
        "sw" : "sw",
        "th" : "th",
        "ta" : "ta-rIN",
        "te" : "te-rIN",
        "tr" : "tr",
        "uk" : "uk",
        "ur-IN" : "ur-rIN",
        "uz" : "uz",
        "vi" : "vi",
        "zh-CN" : "zh-rCN",
        "zh-HK" : "zh-rHK",
        "zh-TW" : "zh-rTW",
        "zu" : "zu"
      }
    }
  }, {
    "source" : "/unlocker/src/main/res/values/strings.xml",
    "dest" : "/unlocker/strings.xml",
    "translation" : "/unlocker/src/main/res/values-%android_code%/%original_file_name%",
#    "update_option" : "update_without_changes",
    "languages_mapping" : *stringmapping
  }, {
    "source" : "/sdmaid/fastlane/metadata/android/en-US/full_description.txt",
    "dest" : "/sdmaid/description.txt",
    "translation" : "/sdmaid/fastlane/metadata/android/%locale%/full_description.txt",
#    "update_option" : "update_without_changes",
    "languages_mapping" : &playstoremapping {
      "locale" : {
        "af" : "af",
        "ar" : "ar",
        "am" : "am",
        "hy-AM" : "hy-AM",
        "az" : "az-AZ",
        "be" : "be",
        "bn" : "bn-BD",
        "bg" : "bg",
        "ca" : "ca",
        "cs" : "cs-CZ",
        "da" : "da-DK",
        "de" : "de-DE",
        "el" : "el-GR",
        "es-ES" : "es-ES",
        "es-AR" : "es-AR",
        "es-MX" : "es-419",
        "es-VE" : "es-VE",
        "et" : "et",
        "eu" : "eu-ES",
        "fa" : "fa",
        "fil" : "fil",
        "fi" : "fi-FI",
        "fr" : "fr-FR",
        "fr-CA" : "fr-CA",
        "gl" : "gl-ES",
        "hr" : "hr",
        "hu" : "hu-HU",
        "hy-AM" : "hy-AM",
        "is" : "is-IS",
        "id" : "id",
        "it" : "it-IT",
        "he" : "iw-IL",
        "hi" : "hi-IN",
        "ja" : "ja-JP",
        "ka" : "ka-GE",
        "km" : "km-KH",
        "kn" : "kn-IN",
        "ko" : "ko-KR",
        "ky" : "ky-KG",
        "lt" : "lt",
        "lv" : "lv",
        "lo" : "lo-LA",
        "mk" : "mk-MK",
        "ms" : "ms",
        "ml-IN" : "ml-IN",
        "mn" : "mn-MN",
        "mr" : "mr-IN",
        "my" : "my-MM",
        "ne-NP" : "ne-NP",
        "nl" : "nl-NL",
        "no" : "no-NO",
        "pl" : "pl-PL",
        "pt-PT" : "pt-PT",
        "pt-BR" : "pt-BR",
        "ro" : "ro",
        "ru" : "ru-RU",
        "rm-CH" : "rm",
        "si-LK" : "si-LK",
        "sk" : "sk",
        "sl" : "sl",
        "sr" : "sr",
        "sv-SE" : "sv-SE",
        "sw" : "sw",
        "th" : "th",
        "ta" : "ta-IN",
        "te" : "te-IN",
        "tr" : "tr-TR",
        "uk" : "uk",
        "ur-IN" : "ur-IN",
        "uz" : "uz",
        "vi" : "vi",
        "zh-CN" : "zh-CN",
        "zh-HK" : "zh-HK",
        "zh-TW" : "zh-TW",
        "zu" : "zu"
      }
    }
  }, {
     "source" : "/sdmaid/fastlane/metadata/android/en-US/title.txt",
     "dest" : "/sdmaid/title.txt",
     "translation" : "/sdmaid/fastlane/metadata/android/%locale%/title.txt",
#    "update_option" : "update_without_changes",
     "languages_mapping" : *playstoremapping
  }, {
     "source" : "/sdmaid/fastlane/metadata/android/en-US/short_description.txt",
     "dest" : "/sdmaid/short_description.txt",
     "translation" : "/sdmaid/fastlane/metadata/android/%locale%/short_description.txt",
#    "update_option" : "update_without_changes",
     "languages_mapping" : *playstoremapping
  }, {
     "source" : "/unlocker/fastlane/metadata/android/en-US/full_description.txt",
     "dest" : "/unlocker/description.txt",
     "translation" : "/unlocker/fastlane/metadata/android/%locale%/full_description.txt",
#    "update_option" : "update_without_changes",
     "languages_mapping" : *playstoremapping
  }, {
     "source" : "/unlocker/fastlane/metadata/android/en-US/title.txt",
     "dest" : "/unlocker/title.txt",
     "translation" : "/unlocker/fastlane/metadata/android/%locale%/title.txt",
#    "update_option" : "update_without_changes",
     "languages_mapping" : *playstoremapping
  }, {
     "source" : "/unlocker/fastlane/metadata/android/en-US/short_description.txt",
     "dest" : "/unlocker/short_description.txt",
     "translation" : "/unlocker/fastlane/metadata/android/%locale%/short_description.txt",
#    "update_option" : "update_without_changes",
     "languages_mapping" : *playstoremapping
  }
]

Bug was likely introduced here https://github.com/crowdin/crowdin-cli-2/commit/d3570b65972257781f5d36519a4b9f3575ab4453#diff-c2cad281f60ff212b073aa518b0b75c4R441

Fix idea https://github.com/crowdin/crowdin-cli-2/pull/26
Unconfirmed though so someone from crowdin should still check that.

Hello, @d4rken
First of all, sorry for so long delay.
I was considering your example, and can tell you, if you need to keep folders (in your case unlocker and sdmaid) in Crowdin you must set parameter preserve_hierarchy to true (default false).
Please, try it in our the newest version of CLI. Hope, it helps you.

I originally tried the parameter preserve_hierarchy  already, but it had no effect, likely because I specified the dest parameter. The configuration documentation states  that you:

by default get all files sans their common base pathes but still individual folders (i.e. uncommon base pathes)
or you specify the preserve_hierarchy parameter, so the tool recreates the local file structure exactly
or you specify the structure explicitly with dest.

So your recommendation to fix this with the preserve_hierarchy flag seems wrong here. Furthermore, seeing as the previous CLI tool just works and crowdin states in multiple places that the previous configuration files are compatible with the new CLI tool, if preserve_hierarchy would be necessary and is by default false then wouldn't this also be a bug?
Anyways, I tested the new CLI tool version (2.0.12) with preserve_hierarchy for you and it still doesn't work, which would be correct as preserve_hierarchy is not the solution to this and because when dest is specified preserve_hierarchy should have no effects (otherwise undefined behavior).
Why is the solution attempt in #26 not the correct approach? I actually tested it and it seems to work fine, I'm just not sure about side effects from other parameters.
CLI v2.0.12 with `preserve_hierarchy  (+my config above):

CLI v2.0.12 without preserve_hierarchy (+my config above):

#25 with preserve_hierarchy  (+my config above):

#25 without preserve_hierarchy (+my config above):

I mean just look at the code (original code, still in place in 2.0.12):
File sourceFile = new File(source);
                Boolean isDest = file.getDest() != null && !file.getDest().isEmpty() && !this.commandUtils.isSourceContainsPattern(file.getSource());
                String preservePath = file.getDest();
                preservePath = this.commandUtils.preserveHierarchy(file, sourceFile.getAbsolutePath(), commonPath, this.propertiesBean, this.branch, this.credentials, this.isVerbose);
                String fName;
                if (isDest) {
                    fName = new File(file.getDest()).getName();
                } else {
                    fName = sourceFile.getName();
                }
                preservePath = preservePath + PATH_SEPARATOR + fName;
                preservePath = preservePath.replaceAll(PATH_SEPARATOR + "+", PATH_SEPARATOR);
                if (preservePath.startsWith(PATH_SEPARATOR)) {
                    preservePath = preservePath.replaceFirst(PATH_SEPARATOR, "");
                }

file.getDest() is used to determine if the the parameter is set i.e. isDest is set, ok.
Then we take the path with preservePath = file.getDest(), also ok.
Then we overwrite in perserve = this.commandUtils... and path specified in dest is lost.
We check isDest then again to get the file name, but the path is just ignored.

Now option preserve_hierarchy affect everywhere, and in dest path also. We improved this in new CLI. We believe it will be more clearly. Hope, it's not big problem for you.
And I finally found one more bug when using CLI on Windows OS. Please, just try last changes from develpment branch, and hope it will work for you (also use preserve_hierarchy=true)

Your solution is good in your case, but, unfortunately, has some bad effects on the other side.

Now it works 👍 . I still don't understand why preserve_hierarchy is necessary when specifying dest.
Please check https://support.crowdin.com/configuration-file/#saving-directory-structure-on-server it and https://support.crowdin.com/configuration-file/#uploading-files-to-specified-path-with-specified-type
It's just not clear (at least to me) why preserve_hierarchy is required. Especially because documentation makes it seem that dest allows specifying a file path and that example doesn't have preserve_hierarchy either.
From the documentation I would thought that preserve_hierarchy affects the path only when multiple files have the same common parent folders, which are then omitted for a cleaner structure and this wouldn't affect my case.
    "source" : "/sdmaid/src/main/res/values/strings.xml",
    "dest" : "/sdmaid/strings.xml",

    "source" : "/unlocker/src/main/res/values/strings.xml",
    "dest" : "/unlocker/strings.xml",

don't share a common directory. But if this really is the desired behavior for for dest and preserve_hierarchy then CLI tool should abort the upload process if it detects that multiple files from the same upload will overwrite each other, as this is very likely with the way it currently behaves.
I would propose to add a check for files from the same upload overwritting each other and to make dest work independent of preserve_hierarchy. Meaning if dest is set, then preserve_hierarchy is automatically set to true. At least I don't see a case which requires dest to be set but preserve_hierarchy to be false, do you?
It also is weird that it is not skipping all files, because there was nothing changed in them. But it's likely not related to this bug. Maybe some windows/linux/mac \n\t\r issue? Are normalizing the input, i.e. like in git?
Connected to the target VM, address: '127.0.0.1:60244', transport: 'socket'
File 'sdmaid/strings.xml'-
 - SKIPPED
File 'unlocker/strings.xml' - OK
File 'sdmaid/description.txt' - OK
File 'sdmaid/title.txt'\
 - SKIPPED
File 'sdmaid/short_description.txt' - SKIPPED
File 'unlocker/description.txt' - OK
File 'unlocker/title.txt' - SKIPPED
File 'unlocker/short_description.txt' - SKIPPED
Disconnected from the target VM, address: '127.0.0.1:60244', transport: 'socket'

I envision it like this

Case1, No preserve, no dest. Crowdin optimizes the pathes on their server.
Case2, Preserve=true, no dest. Crowdin replicates the local path on their server.
Case3a, Preserve=true, dest set. Crowdin uses the path from dest on their server.
Case3b, Preserve=false, dest set. Crowdin uses the path from dest on their server.

Which would be 3 cases for path handling:

Automatic (optimized)
Disabled (preserved)
Manual (dest)

I think dest should override preserve_hierarchy this would be less confusing and is then actually the same behavior from CLI 1.0, so the same config files can then be used.
https://github.com/crowdin/crowdin-cli#preserving-directories-hierarchy
https://support.crowdin.com/configuration-file/#saving-directory-structure-on-server


text:
unable to cleanup existing workers: remove namespace: 'namespace has associated scripts: crowdsec-cloudflare-worker-bouncer' (10052) for account

Hi,
Nothing's changed in my setup and this bouncer's been working fine for months. After doing a system reboot, the bouncer all of a sudden won't run. This loop is what happens every time I try to start it, and it exits with a fail.
On the Cloudflare side, after this process happens, the namespace is there but none of the domains have worker routes. When I run sudo crowdsec-cloudflare-worker-bouncer -d, it also spits out this error: unable to cleanup existing workers: remove namespace: 'namespace has associated scripts: crowdsec-cloudflare-worker-bouncer' (10052) for account [account]
Any ideas?
time="2024-11-10T06:53:35-06:00" level=info msg="Using API key auth"
time="2024-11-10T06:53:35-06:00" level=info msg="Cleaning up existing workers" account=[account]
time="2024-11-10T06:53:35-06:00" level=debug msg="Listing existing turnstile widgets" account=[account]
time="2024-11-10T06:53:35-06:00" level=debug msg="Done listing existing turnstile widgets" account=[account]
time="2024-11-10T06:53:35-06:00" level=debug msg="Done cleaning up existing turnstile widgets" account=[account]
time="2024-11-10T06:53:35-06:00" level=debug msg="Listing worker routes" account=[account] zone=[domain1]
time="2024-11-10T06:53:35-06:00" level=debug msg="Done listing worker routes" account=[account] zone=[domain1]
time="2024-11-10T06:53:35-06:00" level=debug msg="Listing worker routes" account=[account] zone=[domain2]
time="2024-11-10T06:53:36-06:00" level=debug msg="Done listing worker routes" account=[account] zone=[domain2]
time="2024-11-10T06:53:36-06:00" level=debug msg="Listing worker routes" account=[account] zone=[account].link
time="2024-11-10T06:53:36-06:00" level=debug msg="Done listing worker routes" account=[account] zone=[account].link
time="2024-11-10T06:53:36-06:00" level=debug msg="Listing worker routes" account=[account] zone=[domain3]
time="2024-11-10T06:53:36-06:00" level=debug msg="Done listing worker routes" account=[account] zone=[domain3]
time="2024-11-10T06:53:36-06:00" level=debug msg="Listing worker routes" account=[account] zone=[domain4]
time="2024-11-10T06:53:36-06:00" level=debug msg="Done listing worker routes" account=[account] zone=[domain4]
time="2024-11-10T06:53:36-06:00" level=debug msg="Listing worker routes" account=[account] zone=[domain5]
time="2024-11-10T06:53:37-06:00" level=debug msg="Done listing worker routes" account=[account] zone=[domain5]
time="2024-11-10T06:53:37-06:00" level=debug msg="Listing worker routes" account=[account] zone=[domain6]
time="2024-11-10T06:53:37-06:00" level=debug msg="Done listing worker routes" account=[account] zone=[domain6]
time="2024-11-10T06:53:37-06:00" level=debug msg="Listing worker routes" account=[account] zone=[domain7]
time="2024-11-10T06:53:37-06:00" level=debug msg="Done listing worker routes" account=[account] zone=[domain7]
time="2024-11-10T06:53:37-06:00" level=debug msg="Listing worker routes" account=[account] zone=[domain8]
time="2024-11-10T06:53:37-06:00" level=debug msg="Done listing worker routes" account=[account] zone=[domain8]
time="2024-11-10T06:53:37-06:00" level=debug msg="Listing worker routes" account=[account] zone=[domain9]
time="2024-11-10T06:53:38-06:00" level=debug msg="Done listing worker routes" account=[account] zone=[domain9]
time="2024-11-10T06:53:38-06:00" level=debug msg="Listing worker routes" account=[account] zone=[domain10]
time="2024-11-10T06:53:38-06:00" level=debug msg="Done listing worker routes" account=[account] zone=[domain10]
time="2024-11-10T06:53:38-06:00" level=debug msg="Listing worker KV Namespaces" account=[account]
time="2024-11-10T06:53:38-06:00" level=debug msg="Done listing worker KV Namespaces" account=[account]
time="2024-11-10T06:53:38-06:00" level=debug msg="Deleting worker KV Namespace with ID [namespaceid]" account=[account]
time="2024-11-10T06:53:38-06:00" level=fatal msg="unable to cleanup existing workers: remove namespace: 'namespace has associated scripts: crowdsec-cloudflare-worker-bouncer' (10052) for account [account]"

Hello,
We have published a pre-release that includes a fix for this issue, it will be promoted to release next week (most likely on tuesday).
In the meantime, you can either:

Use the docker image tagged v0.0.12
Download the binary directly from the pre-release: https://github.com/crowdsecurity/cs-cloudflare-worker-bouncer/releases/tag/v0.0.12

authors: Staene blotus


text:
Change title in action bar for each fragment

The action bar now displays the title of the fragment opened instead of a common title for all fragments
Close #170

Everything looks good. Thanks.

authors: VaishnaviShri abhijeetviswa

repo: crux-bphc/CMS-Android


text:
DirectX 11 support.

After installation of last version of Fusion appear there message, that DirectX 9 and OpenGL will be not supported any more in short time. I tried use DirectX 11, but without success. Windows stay black. Is there some possibility use DirectX 11 in wine(OpenGL work fine for me)?

Same issue for me. Cannot get to the settings to even try DX11.

Summary of My Observations
OpenGL: Works fine, even without DXVK.
DirectX 9: Works fine without DXVK but stops rendering when DXVK is installed.
DirectX 11: The main window is black, whether or not DXVK is installed.
Has anyone configured DirectX11 with Fusion360 and rendering of main windows works properly?
I think that if vendor disable support for OpenGL and DirectX9, then we will all have problem.

Succeeded, I am on DirectX11. After replacing the vga from nvidia gtx660 to gtx1060 (support of vulkan 1.3 is requested). DXVK started working.

Nothing special:
1.your vga hardware have to support vulkan1.3 (i have to replaced my old vga card)
2.install dxvk via winetricks
3.and after first login to fusion i changed graphical driver from opengl to directx11
A black screen flickering appeared. It should be fixed via dxvk.conf, but look like that wine ignore this conf file.
madurani@pc-marek1 ~/.PlayOnLinux/wineprefix/Fusion360_008/drive_c $ cat /volume01/wine/dxvk.conf
# Enable DirectX 11 support
dxgi.allow_unsupported = true
dxvk.enable_dxgi = true
dxvk.enable_d3d11 = true
dxvk.num_async_commands = 16
dxvk.enable_async = false
dxvk.use_raw_ssbo = false
dxvk.num_back_buffers = 3
dxvk.present_interval = 1
dxvk.shrink_cmdlists = true
dxvk.enable_rt = true
dxvk.use_vk_surface_extensions = true
dxvk.debug = info

madurani@pc-marek1 ~/.PlayOnLinux/wineprefix/Fusion360_008/drive_c $ vulkaninfo | grep -i version
Vulkan Instance Version: 1.3.296
VK_LAYER_KHRONOS_validation (Khronos Validation Layer) Vulkan version 1.3.296, layer version 1:
VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.3.277, layer version 1:
        apiVersion        = 1.3.277 (4206869)
        driverVersion     = 550.135.0.0 (2309079040)
        shaderBinaryVersion  = 1
        conformanceVersion:
        VK_KHR_sampler_ycbcr_conversion               : extension revision 14
        samplerYcbcrConversion             = true

Probably CUDA and ROCM related
Nobara and Fedora 40
TLDR: try installing ROCM-Driver on AMD
I got it running via DX11 on my new AMD-Tablett. Result was kinda sluggish. Black Screen flickering and such. not very kind to the eye.
DXVK was automaticly installed via the Installscript and loaded.

Since i'm using Nobara, i used their Driver Manager just to see how much i can mess around.
Turns out there are Drivers for my GPU available. so i Installed it.

After a Reboot i can Confirm that i'm running on DX11 and  just the Browser and Comment tap are bugging out. When you detach those Windows and customize them in floating Mode, the black Screen goes away.

I've got the same issue. DX11 just shows the editor window as black. Menus seem to work. I'm on F41 with Nvidia 565.57.01 drivers on Wayland. DXVK is installed via Winetricks. I haven't found any configuration that works. DX9 works fine.
Dec 11 15:55:15 fedora env[39776]: 0e80:fixme:vulkan:X11DRV_vulkan_surface_create Application requires child window rendering, which is not implemented yet! Dec 11 15:55:15 fedora env[39776]: err:   D3D11SwapChain: Failed to recreate surface: VK_ERROR_INCOMPATIBLE_DRIVER Dec 11 15:55:15 fedora env[39776]: err:   DXGI: CreateSwapChainForHwnd: Failed to create swap chain, hr -2147467259 Dec 11 15:55:16 fedora env[39776]: warn:  DXGI: MakeWindowAssociation: Ignoring flags

yes, a preference windows start long, but when i minimalize/maximalize main windows of fusion, then a window immediate appear, or you can changed it in install script (this file is three times downloaded/copied to fusion folder, there is needed to change VirtualDeviceGLCore or VirtualDeviceDx9 to  VirtualDeviceDx11):
wget -N https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/resource/video_driver/opengl/NMachineSpecificOptions.xml

I've found that "black screen" appears when some popup menu is called or cursor is changed (when middle or right button of mouse is pressed), then it's enough just to scroll the mouse wheel and screen rendering is back.
After communication with chatgpt I got dxvk.conf which does not solver flickering on 100%, but now black screen show only for very short time and disappears by itself. In my case it is much better.
Maybe someone who understands options in conf file can prepare some better configuration.
cat /volume01/wine/dxvk.conf
# Enable DirectX 11 support
dxgi.allow_unsupported = true
dxvk.enable_dxgi = true
dxvk.enable_d3d11 = true
dxvk.num_async_commands = 16
dxvk.enable_async = false
dxvk.use_raw_ssbo = false
dxvk.num_back_buffers = 3
dxvk.present_interval = 1
dxvk.shrink_cmdlists = true
dxvk.enable_rt = true
dxvk.use_vk_surface_extensions = true
dxvk.debug = info
dxgi.maxFrameLatency = 1
dxgi.numBackBuffers = 2
d3d11.relaxedBarriers = True
dxgi.syncInterval = 1
dxvk.enableAsync = True

Here are variables which i used for start of fusion:
export WINEDEBUG="+vulkan,+dxgi,+d3d11"
export FUSION_IDSDK=false
export DXVK_FILTER_DEVICE_NAME="NVIDIA GeForce GTX 1060 3GB"
export DXVK_CONFIG_FILE=/volume01/wine/dxvk.conf
export WINEPREFIX="/home/madurani/.PlayOnLinux//wineprefix/Fusion360_010"

authors: Holzniggl andrewljoy madurani techdregs


text:
Copy/paste typo in tooltip

Current state:
In the Rebalancing page, the tooltip for Out Target column header reads "When AR is NOT ENABLED for the channel, keep pushing OUT the channel until its outbound liquidity falls below the oTarget%.
The tooltip for In Target column header reads "When AR is ENABLED for the channel, keep pulling IN to the channel until its inbound liquidity falls below the iTarget%.
Improvement:
Tooltip for In Target should read "When AR is ENABLED for the channel, keep pulling IN to the channel until its inbound liquidity rises above the iTarget%."
Another very minor improvement: Since you say "keep pulling IN to the channel" for In Target, you should say "keep pushing OUT from the channel" for Out Target (add the word "from" for consistency with In Target wording which uses "to".)

I believe I am misunderstanding the targets and the behavior of the functions. Closing issue because I think it's a misunderstanding on my part.


text:
Perf.start is not a function

I install react-addons-perf and expose-loader in my project
here is my webpack config
     {
        test: require.resolve("react-addons-perf"),
        use: [
          {
            loader: 'expose-loader',
            options: 'Perf'
          }
        ]
      }

and i assign Perf to window
but run Perf.start is not a function ,is  undefined
Why?

Sorry, I am not sure what happened, just checked react-addons-perf, the api does not change. What's the version of your webpack?

repo: crysislinux/chrome-react-perf


text:
1.2.0; Regex in a class variable causes a compile error

Assigning a regex to a class variable causes a compiler error:
class Foo
  @@any_regexp = /whatever/
end

Module validation failed: inlinable function call in a function with debug info must have a !dbg location
  call void @"~Foo::any_regexp:init"()
 (Exception)
  from /crystal/src/int.cr:541:9 in 'finish'
  from /crystal/src/compiler/crystal/codegen/codegen.cr:69:7 in 'codegen'
  from /crystal/src/compiler/crystal/compiler.cr:169:16 in 'compile'
  from /crystal/src/compiler/crystal/command.cr:210:5 in 'run_command'
  from /crystal/src/compiler/crystal/command.cr:117:7 in 'run'
  from /crystal/src/compiler/crystal.cr:11:1 in '__crystal_main'
  from /crystal/src/crystal/main.cr:110:5 in 'main'
  from src/env/__libc_start_main.c:94:2 in 'libc_start_main_stage2'
Error: you've found a bug in the Crystal compiler. Please open an issue, including source code that will allow us to reproduce the bug: https://github.com/crystal-lang/crystal/issues

Most likely introduced in https://github.com/crystal-lang/crystal/pull/10951

authors: asterite wyhaines

repo: crystal-lang/crystal


text:
IndexError exception not listing the offending line, in some cases

a = [] of String
# a[-1..0] # IndexError, listing this line
a[-1..0].each {} # IndexError, not listing any line from this file

output is this:
Unhandled exception: Index out of bounds (IndexError)
  from /snap/crystal/919/share/crystal/src/array.cr:606:62 in '[]'
  from /snap/crystal/919/share/crystal/src/indexable.cr:563:5 in '__crystal_main'
  from /snap/crystal/919/share/crystal/src/crystal/main.cr:110:5 in 'main_user_code'
  from /snap/crystal/919/share/crystal/src/crystal/main.cr:96:7 in 'main'
  from /snap/crystal/919/share/crystal/src/crystal/main.cr:119:3 in 'main'
  from __libc_start_main
  from _start
  from ???

makes it hard in those cases to find the offending line, obviously.
using Crystal 1.2.0 [9f90efe33] (2021-10-13), LLVM: 10.0.0, Default target: x86_64-unknown-linux-gnu

Hm, odd indeed.
I use crystal run <file>, but for me it shows up also without the run or with build and then running it.
I also verified that on a second machine now (both running Ubuntu 18.04).


text:
Crystal and libevent 2.1.11 problem [FreeBSD]

With latest crystal 0.30, when I building with --release --static, everything is OK (but very slow), but when I want to just run file with crystal src/something.cr or crystal spec, this errors occurs:
...
Unhandled exception in spawn: Error reinitializing libevent[warn] event_reinit: forked from the event_loop.
 (Exception)
[warn] event_reinit: forked from the event_loop.
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Unhandled exception in spawn:  (Unhandled exception in spawn: Error reinitializing libeventExceptionError reinitializing libevent ()
 (ExceptionException)
)
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Error reinitializing libevent (Exception)
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Error reinitializing libevent (Exception)
Unhandled exception in spawn: Error reinitializing libevent (Exception)
Unhandled exception in spawn: Error reinitializing libevent (Exception)
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: [warn] event_reinit: forked from the event_loop.
Error reinitializing libeventUnhandled exception in spawn: [warn] event_reinit: forked from the event_loop.
 (Error reinitializing libeventUnhandled exception in spawn: Exception (Error reinitializing libevent)
Exception ()
Exception[warn] event_reinit: forked from the event_loop.
[warn] event_reinit: forked from the event_loop.
Error reinitializing libeventUnhandled exception in spawn:  (Error reinitializing libeventException ()
Exception[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Error reinitializing libevent (Exception)
)
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Error reinitializing libevent (Exception)
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Error reinitializing libevent (Exception)
)
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Error reinitializing libevent (Exception)
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Error reinitializing libevent (Exception)
Unhandled exception in spawn: Error reinitializing libevent (Exception)
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Error reinitializing libevent (Exception)
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Error reinitializing libevent (Exception)
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Error reinitializing libevent (Exception)
...

and there is also tons of dead processes in process list in state piperd:
...
 2382 pf            1  52    0   619M   494M piperd  2   0:00   0.00% crystal spec
 2416 pf            1  52    0   619M   494M piperd  0   0:00   0.00% crystal spec
 2443 pf            1  52    0   619M   494M piperd  1   0:00   0.00% crystal spec
 2140 pf            1  52    0   619M   494M piperd  2   0:00   0.00% crystal spec
 2113 pf            1  52    0   619M   494M piperd  1   0:00   0.00% crystal spec
 2436 pf            1  52    0   619M   494M piperd  0   0:00   0.00% crystal spec
 2368 pf            1  52    0   619M   494M piperd  1   0:00   0.00% crystal spec
 2384 pf            1  52    0   619M   494M piperd  2   0:00   0.00% crystal spec
 2430 pf            1  52    0   619M   494M piperd  3   0:00   0.00% crystal spec
 2401 pf            1  52    0   619M   494M piperd  1   0:00   0.00% crystal spec
 2347 pf            1  52    0   619M   494M piperd  3   0:00   0.00% crystal spec
 2357 pf            1  52    0   619M   494M piperd  3   0:00   0.00% crystal spec
 2440 pf            1  52    0   619M   494M piperd  1   0:00   0.00% crystal spec
 2377 pf            1  52    0   619M   494M piperd  2   0:00   0.00% crystal spec
 2375 pf            1  52    0   619M   494M piperd  0   0:00   0.00% crystal spec
 2371 pf            1  52    0   619M   494M piperd  2   0:00   0.00% crystal spec
 2439 pf            1  52    0   619M   494M piperd  1   0:00   0.00% crystal spec
 2376 pf            1  52    0   619M   494M piperd  3   0:00   0.00% crystal spec
 2316 pf            1  52    0   619M   494M piperd  2   0:00   0.00% crystal spec
 2373 pf            1  52    0   619M   494M piperd  0   0:00   0.00% crystal spec
 2409 pf            1  52    0   619M   494M piperd  0   0:00   0.00% crystal spec
 2298 pf            1  52    0   619M   494M piperd  2   0:00   0.00% crystal spec
...

Versions:
Crystal:
Crystal 0.30.0 (2019-08-05)
LLVM: 6.0.1
Default target: x86_64-portbld-freebsd11.2

libevent:
libevent-2.1.11 (libevent-2.1.so.7)

FreeBSD:
11.2-RELEASE-p11

ldd output:
➤  ldd /usr/local/bin/crystal
/usr/local/bin/crystal:
	libLLVM-6.0.so => /usr/local/llvm60/lib/libLLVM-6.0.so (0x801400000)
	libc++.so.1 => /usr/lib/libc++.so.1 (0x804c59000)
	libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x804f27000)
	libpcre.so.1 => /usr/local/lib/libpcre.so.1 (0x805146000)
	libm.so.5 => /lib/libm.so.5 (0x8053e8000)
	libgc-threaded.so.1 => /usr/local/lib/libgc-threaded.so.1 (0x805615000)
	libthr.so.3 => /lib/libthr.so.3 (0x80588b000)
	libevent-2.1.so.7 => /usr/local/lib/libevent-2.1.so.7 (0x805ab3000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x805d04000)
	libc.so.7 => /lib/libc.so.7 (0x805f13000)
	libedit.so.0 => /usr/local/lib/libedit.so.0 (0x8062cf000)
	libz.so.6 => /lib/libz.so.6 (0x806506000)
	librt.so.1 => /usr/lib/librt.so.1 (0x80671e000)
	libexecinfo.so.1 => /usr/lib/libexecinfo.so.1 (0x806924000)
	libncurses.so.8 => /lib/libncurses.so.8 (0x806b27000)
	libdl.so.1 => /usr/lib/libdl.so.1 (0x806d7c000)
	libelf.so.2 => /lib/libelf.so.2 (0x806f7d000)

Note: This problem occurs even with official FreeBSD crystal port 0.28 - something weird in libevent?

What happens if you don't use --static?

@asterite

crystal build src/something.cr
Lots of libevent errors, lots of dead piperd state crystal processes.

crystal build src/something.cr --release
Everything OK.

Next investigation - it looks like there is problem in transition from libevent <= 2.1.10 to the libevent-2.1.11.
I tested building crystal also on another box with FreeBSD 12 and:

with libevent-2.1.10`, everything is OK
with libevent-2.1.11, lot of error messages from libevent, crystal does not work

Also - there is some ABI changes in libevent - https://raw.githubusercontent.com/libevent/libevent/release-2.1.11-stable/ChangeLog

It's not just FreeBSD, I get exactly the same behaviour in Gentoo Linux.
After building crystal-0.30.0 against libevent-2.1.11 "crystal src/something.cr" no longer works and instead spews a few hundred lines of
[warn] event_reinit: forked from the event_loop.
Unhandled exception in spawn: Error reinitializing libevent (Exception)
Unhandled exception in spawn: Error reinitializing libevent (Unhandled exception in spawn: Error reinitializing libevent (Exception)
Unhandled exception in spawn: Channel is closed (Channel::ClosedError)
Channel is closed (Channel::ClosedError)

in various permutations.
No Gentoo bug opened about this as of yet.

Homebrew just updated libevent to the latest version for me and I'm getting such errors too... Sigh...

This commit seems to be affecting us.

Workaround for now: compile with --threads=1 (the problem is related to fork)

Fixed by #8044

authors: asterite jok-ts petr-fischer


text:
Instance or class variable with type Hash(Value, Value) causes an infinite loop

struct A
  @instance_variable : Hash(Value, Value)?
end

Stack overflow (e.g., infinite or very deep recursion)
[0x7fba5ee44fc6] ???
[0x7fba5ed9af4e] ???
[0x7fba5fc12461] ???

Note: in carc.in, sizeof(Value) gives 4104... https://carc.in/#/r/85x5

So it seems to be size-related. Struct's size is also 4104 and also crashes.

struct Hash::Entry(K, V) exists, which is < Value. So Changing the size of Value recalculates Hash::Entry(Value, Value), which recalculates sizeof(Value) as 2*Value + 4, this continues in a loop until above.
Value cannot be used as a generic argument, just like Reference.

The example doesn't reproduce the error.
As long as no instance of Hash(Value, Value) is created, the compailer neither complains nor runs into a stack overflow. (Or was the reported overflow at runtime?)
The check @RX14 mentioned actually seems to be in place:
Pointer(Value) # error: can't use Value as generic type argument yet, use a more specific type

There's even a spec fort that:
https://github.com/crystal-lang/crystal/blob/fd1c682b6d9b939377ccda5a6ebee3ecfb9f774b/spec/compiler/semantic/generic_class_spec.cr#L330-L337


text:
Pretty-print objects in playground inspector

I'd noticed that complex objects in the playground inspector weren't very easy to read:

So I hacked out something quickly to make them a bit easier on the eyes:

Known issues:

This introduces a horizontal scroll to that table for very complex objects like the one I posted

Possible solutions:

Reduce the pretty-print width
Make only that column of the table scroll horizontally (I think this is possible, anyway)

Syntax highlighting (even just for class names, ivars, numbers, and strings, similar to Pry) would improve readability even further

I noticed that the contribution guide says I should open an issue before a PR, but I'd already written the code by then. :-) I did want to get feedback on this before I go much further with it, though.

You need to adjust the failing specs as well.

I'd prefer to find out if this is something that people want before I put more work into it.

authors: jgaskins straight-shoota


text:
Implement snprintf on win32

x86_64-pc-windows-msvc doesn't export the snprintf symbol, only the vsnprintf symbol. This means we need to define out own snprintf implementation which captures va_args correctly.

This wrapper actually doesn't seem necessary; using snprintf directly works.
https://github.com/oprypin/crystal/actions/runs/40214382
Could be related to

Beginning with the UCRT in Visual Studio 2015 and Windows 10, snprintf is no longer identical to _snprintf. The snprintf function behavior is now C99 standard compliant.

https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/snprintf-snprintf-snprintf-l-snwprintf-snwprintf-l?view=vs-2019
so perhaps before VS2015 this name was a macro pointing towards _snprintf?

I'm not sure, at least at the time, this didn't work. When I read the msvcrt header files I found that it was an inline method identical to the one in this PR.


text:
Create Failure Sequence Diagram

User Story
As a member of the team, I would like to see the sequence of actions when an error occurs during invocation of the program so that I know what will happen before and after my code, so I can adapt to and manipulate the environment appropriately.
Detailed Description
Provide additional details and context.

[ ] Create Failure UML diagram

Acceptance Criteria

[ ] Given [Condition], then [Expected Result]
[ ] Given [Condition], then [Expected Result]
[ ] Given [Condition], then [Expected Result]

This is too small


text:
Manual verification that BEIMA works in Edge and Safari browsers

References user story #278
This should be done when we are finished with development and are deployed to the SDP server. We need to verify that BEIMA works in Safari and Edge browsers since we did plan support for those in our project plan.
Test Steps
Edge:

[ ] Open BEIMA in Edge. Verify nothing funky happens.
[ ] Verify devices, device types, users, and buildings are gathered from the backend and are listed.
[ ] Verify we can view a device, a device type, user, and building.
[ ] Verify we can add a device, device type, and building.

Safari:

[ ] Open BEIMA in Safari. Verify nothing funky happens.
[ ] Verify devices, device types, users, and buildings are gathered from the backend and are listed.
[ ] Verify we can view a device, a device type, user, and building.
[ ] Verify we can add a device, device type, and building.

It doesn't work in Safari in linux, but neither does the Minio admin page, so it's probably not a safari thing and a linux thing... or a me thing

Works in Edge on Windows for me other than a container issue preventing images to be displayed from minio, but that doesn't seem related to the browser so I'd say it works in Edge

Edge: (on linux, tested against running dockers)

[x] Open BEIMA in Edge. Verify nothing funky happens.
[ ] Verify devices, device types, users, and buildings are gathered from the backend and are listed.
[ ] Verify we can view a device, a device type, user, and building.
[ ] Verify we can add a device, device type, and building.

Edge: (performed in linux against running docker containers)

[x] Open BEIMA in Edge. Verify nothing funky happens.
[ ] Verify devices, device types, users, and buildings are gathered from the backend and are listed.
[ ] Verify we can view a device, a device type, user, and building.
[ ] Verify we can add a device, device type, and building.

authors: AshlynAdamson thessbsu