Release names don't make sense?

I have a SvelteKit website, using @sentry/sveltekit and thus its Vite plugin as well.
This is my vite.config.js:
import { sveltekit } from "@sveltejs/kit/vite";
import { defineConfig, loadEnv } from "vite";
import { sentrySvelteKit } from "@sentry/sveltekit";

export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd(), "");

  return {
    plugins: [
      sentrySvelteKit({
        sourceMapsUploadOptions: {
          org: "xx",
          project: "xx",
          telemetry: false,
          authToken: env.SENTRY_AUTH_TOKEN,
        },
      }),
      sveltekit(),
    ],
    build: {
      sourcemap: true,
      target: "es2015",
    },
    server: {
      proxy: {
        "/sitemap.xml": env.PUBLIC_API_URL || "",
        "/accounts/sso": env.PUBLIC_API_URL || "",
      },
    },
    test: {
      include: ["src/**/*.{test,spec}.{js,ts}"],
    },
  };
});

I use adapter-node, the site is running on a Hetzner VPS, and is checked out via Git. The problem is that issues get assigned to releases which make no sense. For example Last Seen a day ago in release b9397c217320. There is no commit with such a SHA, so I don't know where this is coming from? When I click on the release name, there are no commits, no files changed:

When I look at the docs (https://www.npmjs.com/package/@sentry/vite-plugin/v/2.14.2#release), it makes it seem that the release name should automatically be set to the commit SHA, but when I run git rev-parse HEAD, in my repo, there is no release with this SHA. Also release.setCommits.previousCommit says "Defaults to the last commit of the previous release in Sentry." So why am I not seeing this in any release?

A few things:

The logic in the bundler plugins to automatically determine a release name is here: https://github.com/getsentry/sentry-javascript-bundler-plugins/blob/514055a1dbcf80cf4ca60967b233696e50e0b11d/packages/bundler-plugin-core/src/utils.ts#L212
If you feel like you're getting spammed by releases you can disable release creation in the plugin.
Sentry creates releases also when an event is ingested that has a release value. In case you have a frontend project (which I assume since this is svelte), it's possible that some browser extension or similar is leaking into your Sentry instance.

I don't really understand what you're saying. My issue is that Sentry is creating release names which don't seem to correspond to git commits, and the releases don't have any commits or changed files or anything like that.
I don't feel I'm getting spammed by releases, it's just that the release names are not helpful to figure out where an issue was introduced. How does disabling release creation help?

You might get the fallback string which is defined in the SDK code here: https://github.com/getsentry/sentry-javascript/blob/7e78d67de327884f712447167280b9e1419d5187/packages/sveltekit/src/vite/sourceMaps.ts#L280
Somehow, the SDK cannot parse the git head in your project. Can you provide a minimal reproduction?

The reason why my comment was a bit vague because I have no insight into your deployment process. It's possible your release pipeline creates a commit for whatever reason and never pushes it. It's possible that you have some environment variable configured that gets picked up as a release value. That's the reason I pointed you to the code determining what is used as release.
We make no guarantees that the automatic release names are deterministic nor that they will be equal your git SHAs. We simply use best-effort heuristics to generate release names that will make sense for people in most cases.
If you want releases to have a particular name, use the release option. Currently, I have no reason to believe the plugin is faulty - we are simply lacking insight into your deployiment setup.

When I push the main branch to the server, a build is created. No new commit is created, the git status is always clean on the server. We don't set any environment variables other than SENTRY_AUTH_TOKEN.
Looking at https://github.com/getsentry/sentry-javascript-bundler-plugins/blob/514055a1dbcf80cf4ca60967b233696e50e0b11d/packages/bundler-plugin-core/src/utils.ts#L212, it should always end up with the value of gitRevision() since none of the ENV variables should be set.
I'll add some logging to this utils file and see what's happening with my builds.

@kevinrenskers you may actually run into the fallback case already shared by @s1gr1d in this thread: https://github.com/getsentry/sentry-javascript/blob/7e78d67de327884f712447167280b9e1419d5187/packages/sveltekit/src/vite/sourceMaps.ts#L280
Here we generate a uuid (without dashes).
I recommend making sure that git is available and ready to be executed on your machine, or you can also just pass in whatever release value you like as release option. There you can have your own logic to grab the SHA.

Right, but why is it using the fallback? Why wouldn't git be "available and ready to be executed" on my machine?
Repro steps, on macOS:

Create a brand new SvelteKit app using pnpx sv create myapp, choosing "SvelteKit minimal" with TS syntax and no other additions
Inside the new folder I ran @sentry/wizard@latest -I sveltekit, and I connected to a Sentry project
Ran git init && git add -A && git commit -m "Initial commit"
Ran git rev-parse HEAD, made note of the SHA
Ran pnpm build and saw a release with a different name

So when I run git rev-parse HEAD on the command line I get a SHA value just fine. However when I run console.log(child_process.execSync('git rev-parse HEAD', { stdio: 'ignore' })); in Node I get null. So yeah it's using the fallback value.
Not sure why this is happening.

Found it. It's the { stdio: 'ignore' } part that messes things up.
console.log(child_process.execSync('git rev-parse HEAD').toString()); gives a result
console.log(child_process.execSync('git rev-parse HEAD', { stdio: 'ignore' }).toString()); does not

Just found the same thing. Will fix! Thanks for the help here!

Great! One question I am left with: why there are seemingly two different ways to determine the release name? There's determineReleaseName() in utils.ts, which uses a bunch of ENV variables, and falls back to git using childProcess.execSync("git rev-parse HEAD", { stdio: ["ignore", "pipe", "ignore"] }).toString().trim() (which I guess also doesn't work!), and we have detectSentryRelease() in sourceMaps.ts which only checks git and falls back to uuid. Won't this always result in different release names when somebody does use those ENV variables?


AWS generate/populate commands should use --sso-region rather than --region

Currently, Granted uses a --region flag to indicate the SSO instance region (sso_region) key in AWS config.
This flag should be used for the region key instead, and a new --sso-region flag should be introduced for the sso_region key.

One of the parameters is region, which will set the sso_region key in the config.

But I discovered today (I'm not a power user of AWS), that when I ran an aws ecs task that the region being used appears to be defaulting to the sso_region.

Because my tasks are running in a different region to the sso_region, my task was failing to find the ecs cluster I knew existed.

I would suggest a comment mentioning that you will need to manually add the region key to your aws config generated by this command, if you don't add it manually to your cli commands. For me, because my accounts are segregated by region, it makes sense to add this into my config. For others, who use the region on the cli command it won't make sense.

I also think it would be a good idea to change the --region flag to be --sso_region to reflect how it will be used in the generated config. That's a breaking change of course, so that's more of hey it'd be good if in the future it changes.

Awesome project btw, very very handy.

Originally posted by @benfreke in https://github.com/common-fate/granted/issues/271#issuecomment-1263035125

Hi @benfreke, I certainly agree with your proposed change in #271 and I've opened this issue to track work on it.
I've introduced the --sso-region flag in #359, along with warnings indicating that we'll change the behaviour of --region.
We won't change the behaviour until a future version of Granted to give users time to migrate to the new flag. I'll leave this issue open until the breaking change has been made.
These are the warnings:
❯ granted sso generate https://example.awsapps.com/start
[!] Please specify the --sso-region flag: 'granted sso populate --sso-region us-east-1 https://example.awsapps.com/start'
[!] Currently, Granted defaults to using us-east-1 if this is not provided. In a future version, the --sso-region flag will be required to indicate the 'sso_region' field in generated profiles (https://github.com/common-fate/granted/issues/360)

dgranted sso generate --region ap-southeast-2 https://example.awsapps.com/start
[!] Please use --sso-region rather than --region.
[!] In a future version of Granted, the --region flag will be used to specify the 'region' field in generated profiles, rather than the 'sso_region' field. (https://github.com/common-fate/granted/issues/360)

To fix the warnings, use --sso-region rather than --region.

I think this issue can be closed. Almost a year already since the merge.
The option is not even there anymore.
$ granted -v && granted sso generate -h
Granted version: 0.31.0
NAME:
   granted sso generate - Prints an AWS configuration file to stdout with profiles from accounts and roles available in AWS SSO

USAGE:
   granted [global options] sso generate [command options] [sso-start-url]

OPTIONS:
   --config value                     Specify the SSO config section in the Granted config file ([SSO.name]) (default: "default")
   --prefix value                     Specify a prefix for all generated profile names
   --sso-region value                 Specify the SSO region
   --source value [ --source value ]  The sources to load AWS profiles from (valid values are: 'aws-sso', 'commonfate') (default: "aws-sso")
   --no-credential-process            Generate profiles without the Granted credential-process integration (default: false)
   --profile-template value           Specify profile name template (default: "{{ .AccountName }}/{{ .RoleName }}")
   --help, -h                         show help

Thankyou @n3s7or


added reducing_factor to gui + info button

I added the pheromone attribute reducing_factor and also included it in the colony dialog.
Deleted all timer_this decorators. Closed #150
There is now an information button in the top right corner. I wasn't able to load the gifs directly into kivy because of some weird plugin errors and unfortunately there is very little documentation about it. So I decided that the button should open the basic_features.gif in the web browser.

Seems good!


[WIP] Publish 1.0.0-mk-abc-v2.0

IGNORE

The following preview packages were published:

Name
Version
Install Command

@interactors/keyboard
1.0.0-mk-abc-v2.0
yarn add @interactors/keyboard@mk-abc-v2

Generated by @thefrontside/actions


Add appendix about composability to quickstart

I like the way you show flexibility of the tool. I've also written article how I nest Page Object within Page Object :-) https://medium.com/@cs3b/acceptance-testing-with-page-object-nesting-8c3c7384f367
When I was writing the article, It remind me that if we would have feature like with similar to as recently added that would change only scope (not the object, as the as is doing) Then it would be even easier to work with page objects. (Just my thoughts :-)

@sukima sorry for the long delay merging this, it looks really nice. Thanks for contributing!

@cs3b Thanks for sharing the post, it's very interesting to see how people solves this problem with different approaches.
About with helper, I think we don't have any feature request with that, It could be a nice addition although I don't know how we could implement it. Please, feel free to open the feature request if you think its worth it :)


Monit alerts from old servers

These need fixing/turning off - currently getting three alerts an hour relating to ckan-data-dev, dp-nlb-1 and dp-ckan-1 coming into the<EMAIL_ADDRESS>inbox.

Request deactivation of old servers.


fix: retry button on transfaction failure should check old firmware error for ledger

The retry button on the transaction failure doesnt not follow the same validations that the stack confirmation modal
Checklist

[X] JIRA - <link>
[ ] Proper tests implemented
[ ] Screenshots added.

Proposed solution
Make the MULTIDELEGATION_NOT_SUPPORTED validations on the TransactionFail modal
Screenshots
Attach screenshots here if implementation involves some UI changes

Changes unknown
when pulling f23af8dfb775a36e949d989238256f1141ed0104 on fix/lw-9912-fix-old-firmware-multidelegation-defect
into ** on main**.


Better support for composite dataflow variables and time series

Perhaps you can have better support for composite data flow variables. E.g. modelling a moving window multivariate time-series, where you have a series of vectors and as new vectors are added calculations are triggered only for values which need re calculation. Also if a calculation is dependent on a slice updates are propagated in the most optimal way that only the needed data is recalculated.
The composite values can be:

Same type:

Vectors
Matrices
Arrays
Series
Data frames
Slices

Different types:

Tuples (also series with different types)
Tables (also Data Frames with different types)
Views (slices with different types)

This can include dataflow optimised data structures.

This is somewhat covered by the queue functionality.


Periodically set trusted tokens using token list information

What is needed?

Tokens trusted flag must be set using token lists
A task must be created to update them (once a day looks like a good compromise)

Background
Currently trusted tokens are marked manually. Scraping trusted token lists it's a good way to automatically update them. We will hardcode the following lists:

Network
List

mainnet
Coingecko

Polygon
Official List

Optimism
Official List

Gnosis Chain
Honeyswap

BSC
PancakeSwap

Aurora
Official List

Endpoint
Endpoints will not be updated as it's only an internal change.

I was wondering about the removal of a token which seems to be more difficult to tackle efficiently.
If we have a list at day 0:
{
  "tokenA": "<address>",
  "tokenB": "<address>"
}

and then at day 1:
{
  "tokenB": "<address>"
}

tokenA should be marked as non-trusted correct? This might involve going through every token OR storing and building a diff between different token list version (maybe just using the last one is enough).

That's a nice catch, I didn't think of it. One solution would be to mark every token as not trusted and set them all again, but what happens to the ones we manually marked as trusted? Other solution would be what you say, remembering the last version of the list, but that still could break manually marked tokens.

That's a nice catch, I didn't think of it. One solution would be to mark every token as not trusted and set them all again, but what happens to the ones we manually marked as trusted? Other solution would be what you say, remembering the last version of the list, but that still could break manually marked tokens.

For the ones that we "manually" mark I'd suggest creating our own list and parse it in the same way as the other ones what do you think?
I would say that we would need to consider this as part of an atomic operation like:

Mark everything as not trusted (not sure if this can be done efficiently)
Mark every token in the list as trusted

If 1 or 2 fail for some reason I think we should revert.

Regarding the diff, I think it can be considered as a followup improvement if marking every token as not-trusted is considered to be an heavy operation. I would ignore the diff for the initial version honestly.

For the ones that we "manually" mark I'd suggest creating our own list and parse it in the same way as the other ones what do you think?

I think that's way more job (creating the list, updating and storing them) but it sounds like the only good solution. We can go first with implementation not counting on manually trusted tokens and implement the custom lists if we see the need.
Agree on the atomic operation and ignoring the diff.

@fmrsabino I went with the proposed solution in the implementation https://github.com/safe-global/safe-transaction-service/pull/1289


Moment Interaction Diagram Usability Enhancements

Fixes #39.
Introduces/redefines the following parameters to moment_interaction_diagram():

limits - defines the limits of the moment interaction diagram (note there are some cases e.g. AS3600 where I don't want to generate max compression to max tension)
n_points - now defines the number of points between the limits
n_spacing - Optional axial force spacing for the moment interaction diagram

Other features:

Sorting of control_points no longer required, only requirement is that limits be in order from larger N to lower N (error message when not the case) - this is due to how kappa0 is implemented which effectively implements a neutral axis depth of infinity.

@Agent6-6-6 this is still a WIP. Outstanding tasks:

[ ] Update all examples and other methods that call moment_interaction_diagram()
[ ] Update max_comp with fix as suggested in #39
[ ] Resolve n_points spacing issue

n_points Spacing Issue:

Either have a user supplied variable to break this range up evenly by a certain number of evenly spaced control points (like n_points = 48)...

This creates the following issue:

Points are focussed towards higher axial loads as setting kappa0 as a limit point equates to a neutral axis depth of 2 * D.
Wondering if you have any thoughts as to how this should behave? Haven't thought too much about it myself yet.

Axial Force Spacing:
This seems to be looking good!

Axial Force Spaing:
On the other hand, this seems to be working well!

@Agent6-6-6 I've changed the default arguments to get better behaviour for default calls of moment_interaction_diagram().

The limits now go from decompression ("D", 0) to full tension ("d_n", 1e-6) with a control point added at full compression ("kappa0", 0) as well as balanced and pure bending. This causes the neutral axes to be spaced between the decompression and tension point which has a better distributed default curve.
If the user wants more points towards the full compression they can easily change their limits and/or use n_spacing (of course this will take much longer to generate but is prettier). There are no longer any requirements to put things in a particular order. I think this is better behaviour.

@Agent6-6-6, this one is ready for review. Would love to get your thoughts on whether this makes moment interaction diagrams more usable!

@robbievanleeuwen one comment so far before taking it for a spin, you're referring to the limits with the decompression limit point being based on the ratio of neutral axis depth to section depth = "D".
But I think the actual point at which the concrete section starts to not be fully in compression is actually when the neutral axis depth is h/gamma if h = section depth and gamma is the factor by which you're relating the neutral axis depth to compression block depth in your code nomenclature. Maybe I'm misinterpreting though.
But obviously, this would depend on the stress-strain relationship, but it seems like you're potentially missing the true decompression point as implemented if you're solving for a neutral axis depth equal to section depth as the uppermost limit?
To demonstrate for example if gamma = 0.85, and h = 500mm, then the decompression point is really when the neutral axis depth = 500/0.85 = 588 mm. This came up in #26 when you reworked the interaction diagrams before.
If I'm correct here you'd need to somehow determine where the stress-strain profile transitions to the constant plateau (for rectangular, bilinear and parabolic stress-strain curves) and work out the upper bound limit based on that to achieve the full section in compression?

One other observation @robbievanleeuwen, with the n_spacing parameter related to axial load step, since you don't know the total extent between limits you kind of have to run a few times to tune the value of n_spacing to get the desired result. Underestimate it and you might be in for a longer analysis than expected.
I kind of wonder if the n_spacing parameter should really be defined as a number of equally spaced axial loads to keep (irrespective of the section and range of axial load between the limits), which hopefully keeps the number of iterations similar irrespective of the section being analysed. As opposed to a hard-coded axial load value like 200kN which will give a different accuracy of the interaction curve for sections with 10000kN axial range vs 500kN axial range along with quite significant differences in run time.
Or alternatively, consider adding this as a third option for controlling the resulting output for the curve on top of n_points and n_spacing?

@Agent6-6-6

@robbievanleeuwen one comment so far before taking it for a spin, you're referring to the limits with the decompression limit point being based on the ratio of neutral axis depth to section depth = "D".

I think my approach here will be to change the docs such that it is clear that it is the strain profile that is in decompression, not necessarily the stress (as you say, depends on your stress-strain profile). Given that there are many possible stress-strain profiles (not just the rectangular stress block), compounded with the possibly of sections with differing grades of concrete, I'm not going to try to work out when the stress "decompresses", but rather work with strain.
Design codes and/or users can then modify this value to their needs if they require.

@Agent6-6-6

One other observation @robbievanleeuwen, with the n_spacing parameter related to axial load step, since you don't know the total extent between limits you kind of have to run a few times to tune the value of n_spacing to get the desired result.

This is a fair comment, I will add an additional parameter to allow for n evenly spaced axial loads.

@Agent6-6-6 another off-topic one if you don't mind 😄 Wondering what hardware you use to run pfSense (had a quick little read of this!)

@Agent6-6-6 another off-topic one if you don't mind 😄 Wondering what hardware you use to run pfSense (had a quick little read of this!)

@robbievanleeuwen - I run it on a little fanless Qotom PC similar to this but from back in 2017... just have it screwed to the underside of a shelf where my fibre connection terminates inside the house. Took a few weeks to arrive from China form memory

4Gb of memory, 32Gb mSSD.
It does gets a bit toasty in Summer on hot days. But it is more than capable of maxing out my 300/100Mbit fibre connection if required. Took a while to get my head around how all the rules work for the firewall and setting up other features. But once over that hump, I'd never go back to using a consumer router.
You can get it all set up for a lot less cost than a half-decent high-end router that would offer you a lot less control over tinkering with it! Plus pfSense is regularly updated form a feature and security standpoint since it's mostly open source.

I think my approach here will be to change the docs such that it is clear that it is the strain profile that is in decompression, not necessarily the stress (as you say, depends on your stress-strain profile). Given that there are many possible stress-strain profiles (not just the rectangular stress block), compounded with the possibility of sections with differing grades of concrete, I'm not going to try to work out when the stress "decompresses", but rather work with strain.
Design codes and/or users can then modify this value to their needs if they require.
EDIT: Because the rectangular stress block attempts to simplify the "real" concrete stress profile I feel like decompression should still be based on the strain profile and not the stress profile. This way if you are comparing decompression of a rectangular stress block with a parabolic stress block you should get similar results. Pushing down the rectangular stress block by D/gamma wouldn't make sense in this case as your strain profile no longer corresponds to decompression and comparison with a parabolic profile at decompression would be way off.

I've always thought the decompression point was where the concrete in the section started to not be fully in compression at the design compression stress. Independent of the stress-strain profile this is still the same physical phenomenon in terms of cross-section stresses. i.e. for a rectangular stress block when the neutral axis is D/gamma, for a parabolic stress block when D/(ratio of distance on strain diagram where it transitions to the horizontal to the maximum strain), similar for a bilinear approach. For all of the ultimate stress-strain profiles, I think you already have these values probably as they are used to generate the stress-strain profile in the first place.
Can follow that it would be a bit of a dog with multiple different concrete sections with different strengths and hence different parameters like gamma (still have not wrapped my head around how this is even done for the ULS analysis yet!)
Anyway, I'll see what you say in the docs as probably not fully understanding exactly what has been done, just seemed like you're missing out on a bit of the curve between the max point and this first calculated data point where you take the neutral axis depth at D, but granted nothing interesting usually happens at the top of the curve anyway and in my use case that part of the curve usually seems to be truncated by max_comp!!!
I'm not so sure we are talking about the same thing, as not really envisaging how the strain comes into it when it is a stress based thing, i.e. the point at which the stress starts to reduce below a constant concrete stress (for the concrete only) across the entire section? Past this point obviously only the bar forces can vary to take more load in compression.

Thanks for the heads up on the aliexpress special, everything else I was looking at seemed very expensive! Yep the open source nature and features pfSense offer are very appealing!
Yeah maybe we are thinking of two different things, decompression for me is when one extreme fibre of the concrete has a stress of zero (and thus a corresponding strain of zero for most stress-strain profiles).
The below picture is by no means definitive, just one of the first results on google, but kind of explains what I probably haven't put into words very eloquently. Zero concrete strain at the bottom, and for a rectangular stress block some portion of the cross-section with zero stress.
Setting ("D", 1.0) as a control point puts the neutral axis at a depth D and thus gives you this "decompression point". Agreed you lose a bit of fidelity between this point and pure compression, but the user can easily change the limits if they desire. See the very first image in this thread if you change the top limit to ("D", 2.0) and use n_points, not very nicely spaced, hence why I went with ("D", 1.0).

OK got it now. Zero strain at extreme fibre = decompression point.
Yeah plenty of options to tweak if people want to refine the curve above the decompression point if there is any markedly different behaviour going on, so all good!
Its kind of got me thinking if there should also be a control point behaviour based on defining strain at the extreme tension (concrete) fibre. You have one for stell with the ʼf_yʼ for example. Though not sure how much use it is but I guess it is just a different way of specifying the  ʼDʼ ratio that might seem a bit more logical with respect to the analysis actually being strain based. I mean would basing the step on equally spaced strains vs equally spaced neutral axis depths just be a same same but different thing?


[BUG] symfony/cache-extra and timber 2, cache method unclear

Expected Behavior
Setting up the cache extention on v2 and cache mode to default (transient) will save cache to database.
Actual behavior
I have no clue where the cache is coming from and how to flush it. :D
Steps to reproduce behavior

Setup Timber cache via https://timber.github.io/docs/v2/guides/performance/#cache-parts-of-the-twig-file-and-data
Create cache in a template via

{% cache "what_is_love" %}
Baby don't hurt me
{% endcache %}

see that cache is loaded on pageload
change contents between the cache tags and refresh page, see that old content is still loaded.
Check database for transients, none found.
Run wp timber clear-cache, no luck as well
...

Notes
I tried debugging  #2483 to see if it still persists on v2, but got stuck here. So the results are obviously cached somewhere. But I have no clue where...
What version of Timber are you using?
2.x-dev
What version of WordPress are you using?
6.2
What version of PHP are you using?
8.0.27
How did you install Timber?
Installed or updated Timber through Composer

Cache files for Twig cache should be placed in vendor/timber/timber/cache by default. The can’t be saved in a transient, because Twig handles the whole caching for us. Probably it’s not clear from the documentation that the cache mode only applies to Timber’s caching function, but not to Twig cache.
You can update the cache location using the timber/twig/environment/options filter and set an absolute path for cache.

cache string or false
An absolute path where to store the compiled templates, or false to disable caching (which is the default).
– via https://twig.symfony.com/doc/2.x/api.html#environment-options

But I’m not sure whether this works here. I’d be glad if you could quickly check that out.
In theory, the following functions should clear the Twig cache:
Timber\Cache\Cleaner::clear_cache( 'twig' );
Timber\Cache\Cleaner::clear_cache_twig();

Or with the CLI:
wp timber clear-cache
wp timber clear-cache twig

The official way to clear Twig caches is to remove the files from the cache location. For this, you will have to know the location of the cache. $twig->get_cache() should return the location of the cache to remove it.
https://github.com/timber/timber/blob/a23d78178a3b043b888930186b7b384501d21855/src/Loader.php#L591
But as you can see, there’s still a todo because we didn’t test this yet with custom locations.

Alright, did some more digging to find the cache location:
Found it at:
\tmp\symfony-cache\@ in the FS root.
Although cached, $cache_location = $twig->getCache(); returned false...
The way I added the cache extention following the 2.x guide
public function add_to_twig($twig)
	{
		$twig->addExtension(new CacheExtension());
		$twig->addRuntimeLoader(new class implements RuntimeLoaderInterface
		{
			public function load($class)
			{
				if (CacheRuntime::class === $class) {
					return new CacheRuntime(new TagAwareAdapter(new FilesystemAdapter()));
				}
			}
		});
		return $twig;
	}`

I will keep digging to find how to set that actual location so we can update the guide.

Great, thanks for looking into this!

Alright, finally got it working but it was a wild ride.
By setting the third parameter on the FilesystemAdapter class we can set the directory for the {% cache %} tags compiled files to the same default directory as Timber when cache is true using timber/twig/environment/options. Default location is the /tmp/ folder of the filesystem, which we obviously want to override.
function update_twig_environment_options($options)
{

	$options['cache']       = true;
	$options['auto_reload'] = true;

	return $options;
}
add_filter('timber/twig/environment/options', 'update_twig_environment_options');

function add_to_twig($twig)
	{

		$twig->addRuntimeLoader(new class implements RuntimeLoaderInterface
		{
			public function load($class)
			{
				if (CacheRuntime::class === $class) {
                                         //  see third parameter
					return new CacheRuntime(new TagAwareAdapter(new FilesystemAdapter('', 0, TIMBER_LOC . '/cache/twig')));
				}
			}
		});
		$twig->addExtension(new CacheExtension());
		return $twig;
	}
add_filter('timber/twig', 'add_to_twig');

But how to get the location when you've changed the default location?
We could advise to use apply_filters('timber/twig/environment/options') but that feels a bit dirty.
Some things to consider in the docs

Make it clear that the  {% cache %} tags are always compiled to php files whatever the cache mode in Timber will be.
that you have to set the correct default cache location in FilesystemAdapter based on your timber/twig/environment/options. or else Timber will not be aware of the cache location and will not be able to clear it.
That caching always works using the  {% cache %} tags, even when cache is set to  false but that clearing the cache via wp timber clear-cache twig does only work when cache is set to  true

All and all this is quite a big hassle now I think about it. With all the caching strategies in place, is this even something that we want to advise @gchtr ?

Thanks for the deep dive into this, @Levdbas! It’s great that you found out how to set the cache location for the {% cache %} tags.
I think we definitely need to update the documentation for this.

Make it clear that the  {% cache %} tags are always compiled to php files whatever the cache mode in Timber will be.

Yes. We should definitely make it clear which caching mechanisms are using the cache mode.
I think we’re fine to add the cache location in the FilesystemAdapter to the example in the documentation. If somebody updates the cache location through timber/twig/environment/options, they would know the location and could pass it here as well.
But, if we want to make it work correctly with the CLI, then Timber would have to know the location, too. And Timber will get the location from timber/twig/environment/options. The question to me is: do we expose a function to access that value other than using apply_filters('timber/twig/environment/options')? Should we add Timber::twig_cache_location() or Timber\Loader::twig_cache_location() so that people could use it for FilesystemAdapter or in other places?

That caching always works using the  {% cache %} tags, even when cache is set to  false but that clearing the cache via wp timber clear-cache twig does only work when cache is set to  true

Yes, it’s a bit of a hassle. But if we do nothing, there will only be confusion.
Our solution should be something along the lines of: We’ll show you how you can integrate different caching mechanisms, but we won’t do it for you completely out of the box.
I’m flagging this as not essential for the 2.0 release, but as something we can work on in a minor release.


Hope to add a sample capture video from USB Camera and save to mp4 file

Hope to add a sample capture video from USB Camera and save to mp4 file.

This class does not support streaming, if that is what you want. If you have the captured video as a file, you can try to create a TBitmapEncoder with a file name *.mp4, add the captured file to it, close and free. If FFmpeg supports the format of the captured video, this should work.
By the way, this is not an issue, for questions like this there is a discussion section.
Good luck!

Use DirectShow to get every bitmap image of USB camera video by callback.
Then the bitmap image is encoded as MP4 by TBitmapEncoder. It should be feasible.


Redis Sentinel Incompatibility

Issue is caused by redis sentinel not being tested in the upstream library. This has been solved in the upstream and is pending release
Upstream issue
Upstream PR with possible fix
Environment

Nautobot version (Docker tag too if applicable): 1.6.1
Python version: 3.11
Database platform, version: NA
Middleware(s): NA

Steps to Reproduce

Deploy nautobot 1.6.1 with redis sentinel with below example config

    CACHEOPS_SENTINEL = {
        "locations": [(os.getenv("NAUTOBOT_REDIS_HOST"), 26379)],
        "service_name": "nautobot",
        "socket_timeout": 10,
        "db": 1,
        "sentinel_kwargs": {"password": os.getenv("NAUTOBOT_REDIS_PASSWORD")},
        "password": os.getenv("NAUTOBOT_REDIS_PASSWORD"),
    }

Expected Behavior
Worker starts as expected

Observed Behavior
Invalid positional arg
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/celery/worker/worker.py", line 202, in start
    self.blueprint.start(self)
  File "/usr/local/lib/python3.11/site-packages/celery/bootsteps.py", line 116, in start
    step.start(parent)
  File "/usr/local/lib/python3.11/site-packages/celery/bootsteps.py", line 365, in start
    return self.obj.start()
           ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/celery/worker/consumer/consumer.py", line 340, in start
    blueprint.start(self)
  File "/usr/local/lib/python3.11/site-packages/celery/bootsteps.py", line 116, in start
    step.start(parent)
  File "/usr/local/lib/python3.11/site-packages/celery/worker/consumer/consumer.py", line 742, in start
    c.loop(*c.loop_args())
  File "/usr/local/lib/python3.11/site-packages/celery/worker/loops.py", line 97, in asynloop
    next(loop)
  File "/usr/local/lib/python3.11/site-packages/kombu/asynchronous/hub.py", line 373, in create_loop
    cb(*cbargs)
  File "/usr/local/lib/python3.11/site-packages/kombu/transport/redis.py", line 1341, in on_readable
    self.cycle.on_readable(fileno)
  File "/usr/local/lib/python3.11/site-packages/kombu/transport/redis.py", line 566, in on_readable
    chan.handlers[type]()
  File "/usr/local/lib/python3.11/site-packages/kombu/transport/redis.py", line 910, in _receive
    ret.append(self._receive_one(c))
               ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/kombu/transport/redis.py", line 920, in _receive_one
    response = c.parse_response()
               ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/redis/client.py", line 796, in parse_response
    response = self._execute(conn, try_read)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/redis/client.py", line 772, in _execute
    return conn.retry.call_with_retry(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/redis/retry.py", line 46, in call_with_retry
    return do()
           ^^^^
  File "/usr/local/lib/python3.11/site-packages/redis/client.py", line 773, in <lambda>
    lambda: command(*args, **kwargs),
            ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/redis/client.py", line 794, in try_read
    return conn.read_response(disconnect_on_error=False, push_request=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: SentinelManagedConnection.read_response() got an unexpected keyword argument 'push_request'

Pinning to redis = "^4.6.0" seems to be a valid work-around until the fix is release in upstream.
Redis is a dependency through django-redis and the constraints are redis>=3,!=4.0.0,!=4.0.1

Opened issue on django-redis repo https://github.com/jazzband/django-redis/issues/678


The Belgium Telenet EPG gives error 404 Page not found

Guide
https://iptv-org.github.io/epg/guides/be/telenet.tv.epg.xml
Description
Is it possible that the link for the Belgium Telenet EPG has changed?

The old source specific guide have now been turned off. You need to use one of the combined country guide listed on the main page.
For Belgium you'll need https://iptv-org.github.io/epg/guides/be.xml

The old source specific guide have now been turned off. You need to use one of the combined country guide listed on the main page.
For Belgium you'll need https://iptv-org.github.io/epg/guides/be.xml

Hello,
Any chance it can be turned on?
For e.g. the specific Ivory Coast Canal+ Afrique is NOT included within the combined Ivory Coast guide
https://iptv-org.github.io/epg/guides/ci/canalplus-afrique.com.epg.xml
This is the case with most of the guides: France, Germany, Netherlands, Italy,

YES... please RE ENABLE the previous links. The combined versions are not picking correctly from the correct sources. Unless we can define to pick up which channels from which main source.

I also agree- please if we can leave the previous links available. As stated, there are a number of channels that are included in the site specific xml files and not the general country ones.

I agree, I beleive it's better to have links for different sites as before instead of a single one. It fails to load the EPG for some IDs and also it ends loading a XML with a bunch of channels that perhaps not eveyone needs.

XD, i agree too. I'm also wondering why they made this change? The previous one has no problems

old : https://iptv-org.github.io/epg/guides/be/telenet.tv.epg.xml
new : https://iptv-org.github.io/epg/guides/be.xml
The old contained program descriptions ( tag), the new (combined country guide) doesn't for most channels.
Exemple : Eén, Canvas, ...
Please add the "be/telenet.tv.epg.xml"  tags to "be.xml"

As of today the guides have been re-structured to split by language and provider. It became clear that the country grouping wasn't working as expected. You will need to update you player to use the new URL(s)
See https://github.com/iptv-org/epg#guides for a list of available guides.


Enhance adding urls in video collection template

Observed Behaviour
To add items we have to enter link in the dialog.
Issue
It is difficult to copy url's and paste in the dialog.
Solution
Use CustomTabs
Approach
Add a Browse button in the dialog. On clicking that open CustomTabs with action button Add this video. On clicking this action (Add this video) video will be added in the template.

@opticod @croozeus I would like to work on this. Shall I proceed?

Thanks @yadav-rahul for your interest in this. I have done some part of it.
@croozeus @opticod waiting for your views on this. Shall I continue work on this and create PR?

@vishwesh3, Its a real issue. We should fix this. Lets discuss the implementation a bit and choose the best one:
What will be next step after you click the "Add this video" ?

We will add menu item with
intentBuilder.addMenuItem(label, pendingIntent);
where label is Add this video
and pendingIntent is a intent to BroadcastReceiver.
This BroadcastReceiver, onReceive will get url of the video.
So when Add this video is clicked Receiver will be called and we can get the url of the video through intent, then we can interact between receiver and activity in order to get url in activity.
Something like this.

In this sample I am showing toast on selecting Add this video, in our toolkit app, will add selected video in our list.
Also in sample I have used Hello button to launch custom tab, in our toolkit app we can show a button at the right of the editText of entering url.

on clicking above button we can show a dialog containg list of all sites whose videos are supported in our app (youtube, vimeo, dailymotion), and on selecting this option launch customtab with selected site.
@opticod should I proceed with this?

Cool, you can proceed


Utilize the system font by default.

I use this theme to make Steam more consistent with the rest of my DE, since it supports Breeze (at least, the Dark theme). However, it sets a font that I don't find particularly readable. This is unexpected, because no other software I utilize (bar those written in Electron) do so.
I believe that this behaviour is incorrect, because it's a significant accessibility disadvantage. Consider someone with dyslexia - why should they need to learn CSS merely so that they can read what's on the display?
If this would be better posted at https://github.com/Foldex/AdwSteamGtk/issues/new?assignees=&labels=enhancement&projects=&template=feature-request.md&title=Feature+Request%3A+, I'll acquiesce.

This is unexpected, because no other software I utilize (bar those written in Electron) do so.

Steam is basically this - a cross-platform web app that doesn't look native anywhere. It uses CEF and not Electron - same thing mostly.
No way to use system fonts from CSS directly. Maybe we can read system settings from somewhere in installer script.

But what even is "the system font"?
Which one to use for what if there are multiple?
Where are they stored on each platform and DE?
How to get them?
Does Steam web view have access to them?
Will they need size and weight changes from what's used now with Cantarell to look good everywhere?
Will they break layout somewhere if they have very different metrics?

That's too many questions and it's not something I want to support.
At most I could add an option to set the font name, but just the font name might not always be enough.
You can already change fonts with a few lines of CSS, and more importantly you can tweak anything in the same CSS if needed.


fasd doesn't work with liquidprompt

liquidprompt

One of the features that I love about liquidprompt is that if any command ends with an error, then the prompt displays the error code (error code of the last command gets added to the next prompt).
I've been using fasd and liquidprompt together for a while now, and I recently noticed that the above mentioned feature in liquidprompt is broken by fasd.
Any suggestions on how I could fix this (I'll be happy to code, test and send you a PR) or how I could get a work around for this issue.
More context on this issue that I created in the liquidprompt project

This is not specific to liquidpromt. I have a very simple prompt that uses $? in PROMPT_COMMAND and it is always 0.
I suspect this is due to the fact that fasd runs some of its code in the prompt command before the user prompt command is being executed.


[do-not-merge] Adapt helm files for release version 1.2.1

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 58.05%. Comparing base (e4a2a0f) to head (2ca8886).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3498   +/-   ##
=======================================
  Coverage   58.05%   58.05%
=======================================
  Files         365      365
  Lines       20316    20316
=======================================
  Hits        11794    11794
  Misses       7269     7269
  Partials     1253     1253

Flag
Coverage Δ

unittests
58.05% <ø> (ø)

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

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


How can I export these containers to another server?

Hi,
The first I'd like to thank you to provided the great tools!
I confired these suites on my Mac client, now I would like to export these containers to my monitoring server(Cetnos 7, the server has been deployed docker-ce) and installed other node exporter such as snmp_exporter, blackbox_exporter, do you know how can I migrate the suites to my  server?

I think this issue was addressed here #5


[3.3.1] CSS: Missing loading animation for GridFieldAddExistingAutocompleter

GridFieldAddExistingAutocompleter component has missing CSS style for loading (class "ui-autocomplete-loading").

Looks like my #4080 got lost some how

Created PR, thanks for spotting/reporting
Looks like #4308 changed the sass and broke it :(

Fixed with https://github.com/silverstripe/silverstripe-framework/pull/5202


Implement Commit lint for Enforcing Conventional Commit ✨

Description:
As our development team embraces the Conventional Commit standard for version control, it has become essential to maintain consistency and enforce proper commit message formatting across the project repository. Commitlint, a popular tool, can help us achieve this goal by automatically validating commit messages against the Conventional Commit guidelines.
Objective:
The objective of this GitHub issue is to add Commitlint to our project repository, enabling automatic validation of commit messages, and ensuring that they conform to the Conventional Commit format.
Tasks:

Install Commitlint and Husky: Integrate Commitlint into our project repository by installing the required dependencies, including Husky, which allows us to run pre-commit hooks.

Configure Commitlint Rules: Define and configure the Commitlint rules to enforce Conventional Commit standards. This involves specifying the allowed types, scopes, and commit message formats.

Implement Pre-Commit Hook: Set up a pre-commit hook using Husky to trigger Commitlint validation before each commit is made. This will prevent commits that do not comply with the Conventional Commit format.

Customization Options: Consider providing developers with the flexibility to customize certain Commitlint rules to accommodate project-specific requirements, such as adjusting allowed types or scopes.

Error Handling and Messaging: Implement clear and informative error messages to help developers understand why their commit messages were rejected and how to correct them.

Integration with CI/CD Pipeline: If applicable, integrate Commitlint with our Continuous Integration and Continuous Deployment (CI/CD) pipeline to ensure that commits pushed to the main branch also adhere to Conventional Commit standards.

Documentation and Guidelines: Update the project's documentation to include guidelines on writing commit messages following the Conventional Commit standard and how to leverage Commitlint for validation.

Testing and Verification: Thoroughly test the implementation to ensure that Commitlint operates as expected, catching non-compliant commit messages and allowing valid ones.

Expected Benefits:

Consistent Commit Messages: Commitlint will help maintain a consistent commit message format across the project repository, making it easier to understand changes made to the codebase.
Enforced Best Practices: By enforcing Conventional Commit standards, we encourage developers to follow best practices for commit messages, leading to better communication and code collaboration.
Automated Validation: Commitlint automates the process of commit message validation, reducing the burden on developers to manually review and enforce standards.
Improved Code Quality: Consistent and well-formatted commit messages contribute to a more organized and maintainable codebase.

Hey @Vaishnavi-Patil2211  Please assign me this issue


Running tests and formatting for publish command

Both a bug and a feature request.
Is your feature request related to a problem? If so, please describe.

I run eggs publish

Formatting the code takes a long time because it is formatting everything. Problem is i have node_modules and other files that are actually completely unrelated to what i'm publishing (this is problem 1)

When the publish command runs tests, it fails for me. Reason for this is because the command eggs uses to test, isn't what I use - eggs is running tests on files it shouldn't

I'm sure i won't only experience these problems - maybe other modules use cd tests/some/dir && deno test
Describe the solution you'd like
This is to propose a few things:

Only format files specified in the egg.json. I think this makes sense as i assume nest wants the. files formatted so when people check out the module on nest.land, it looks pretty - but they would only be seeing the files specified from egg.json

Allow a user to maybe customise the test command, or maybe a new field/property in egg.json that either specifies the directory or test command to run

Send to stdout before eggs starts formatting, because like i said, it took about a minute or more for me, so i was starting to assume the command was broken (problem 2), for. example, to. test my deno files, i. do cd tests/deno && deno test -A, whereas the publish command does deno test -A --unstable. I also believe. using the --unstable flag should be optional, because that command could break whenever, meaning modules that don't need it cant be published as the cli will error (possible problem 3)

Describe alternatives you've considered
None
Additional context
The repo i want to publish: https://github.com/ebebbington/context-finder
This repo is a project for both Node and Deno, hence the node_modules and other unrelated js code - there's a deno and node variant for everything, which is why it's problematic that the publish command runs deno test and deno fmt at the root directory

Solution 3 implemented

Solution 1 & 2 implemented

spinners ❤


Camera3D Environment and Attributes resource per PhantomCamera

Project Type
3D
Feature Description
v0.5 introduced Camera3D as a resource, which allowed for overriding the Camera3D node's property per PhantomCamera3D.
The Camera3D node also contain properties for Environment and Attributes resources, that allows for applying e.g. depth of field and general environmental appearances.
Use Cases
Can be useful in cases where you shift the perspective from a third person to over the shoulder, where once there it would change the depth of field to a larger aperture size to increase the blur effect.
Another example is to rapidly change to a very different colour scheme upon switching to another PhantomCamera.
This can be done via code already, where this would just simplify that process.
Importance
Low - there are workarounds where the proposed feature would just simplify things
Usage
Rarely - just a handful of projects can likely benefit from this
(Optional) Proposed Solution

[ ] Adding additional exportable variables to the Camera3D resource that uses Environment and Attributes as types.
[ ] Applying those resources upon changing PhantomCamera.

If/when this gets implemented, I ask that the DoF properties be included in the tweening.

Completed in #355


[Feature Request]: Adding all the medium  questions of gfg

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
Adding all the medium  questions of gfg
Use Case
Adding all the medium  questions of gfg
Benefits
No response
Add ScreenShots
No response
Priority
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

could you upgrade to level 3 as there are approx 500 questions


fix: rendermode typo broke builds

Builds and tests are currently broke waiting on this small typo to be fixed.

Thanks for the fix!


Suggestion: Implement Expression2-like language via Wren

Wren is a very minimalistic and performant scripting language, which uses classes instead of all that abstract table mud. It would be a perfect fit for creating more advanced code for contraptions in S&box.
You could maybe even branch off your own language, which improves upon Wren's functionality, making it more specific to your needs. And then have it be transpiled to Wren, and understood by parser written in C#, so that it can set the chip up.
Or, well, do whatever you want to. I'm just suggesting.

Personally I'd prefer to use sandboxed C# (so it'd be like the rest of the game), or Lua (because Lua is great). But that's just personal preference.
In any case, which is used would depend on how well it can be sandboxed. Gmod has the problem where you can't really sandbox anything properly. If an ingame scripting language is added, we would want to be able to limit the amount of ram and cpu time each script is allowed to use, no matter what they do.

Wren looks nice. Similar to lua in a lot of ways.
The Lua version is being developed here https://github.com/thegrb93/StarfallSBox . Sandboxed C# won't be possible.

wait why won't sandboxing be possible

There's no way to compile the C# right? You can only use the .NET functions allowed in the access-list.


sdk version 1.3.5 upload

Can you please upload the latest flingSDK version 1.3.5?

@vikaschandra I know that it's very late, but I finally took some time to update to 1.3.5.


Prepare release of version 5.4.7

This pull request updates upstream source code to version 5.4.7 and tries to enhance the overall package design according to the build2 packaging guide in the following way:

Use a multi-package repository.
Resolve issue #1 by adding an external tests package lua-tests that runs Lua's basic test suite.
Resolve issue #2 by following build2/Issue 331 to retain backwards compatibility to previous importation of lib{lua} from lua package.
Tweak build and export options for lib{lua} to use required preprocessor directives and system libraries according to upstream's makefile.
Use symlinks to upstream directories and files.
Add README.md for repository that is also be used as package description file.
Add hard-copied LICENSE file.
Add .gitattributes as good measure and for directory symlinks.
Update manifest files (summary, project, package-email, etc).
Require at least build2 and bpkg version 0.17.0
Mark man pages for lua and luac as man1{} targets in the respective buildfile.

The latest CI run can be found here. For more information, there is also a section about issues and notes in README.md.
I hope you are ok with this refactoring.
Please let me know whether there are questions or issues with the current state of the code.
If you merge the pull request, I would also offer to release a new tag and publish the version myself.
Thank you!

I unfortunately dont have the time to maintain more this package and you already clarified in the readme the points I was going to ask about after a quick cursory review, so feel free to handle this as a owner of the package👍🏽 (I believe you have the merging rights?). Maybe request a few more people for review if you have doubts but this looks good.

Thank you for the quick answer.

I unfortunately dont have the time to maintain more this package

Then I would be happy to help and offer myself as the new maintainer.

and you already clarified in the readme the points I was going to ask about after a quick cursory review, so feel free to handle this as a owner of the package👍🏽 (I believe you have the merging rights?).

Thank you. Then I will do that. I think that I should have all the rights. Otherwise, I will ask again.

BTW @helmesjo and @wroyca  also made some releases recently as I'm not around, so just pinging them as co-maintainers so that they are aware and maybe they want to review too.


change Camera controls on SketchFab stile

Camera navigation is not very good. I changed the mouse behavior to bring it closer to the SOTA interface like https://sketchfab.com

I have a issue to run your program on mobile phone.
After hosting your program , I attemped access it, but it run any more .

@Nehc what specifically did you change in behavior? I'm not noticing any difference in the actual controls, but my fps is better on this branch

@Nehc what specifically did you change in behavior? I'm not noticing any difference in the actual controls, but my fps is better on this branch

this is a bit strange. I configured the controls on the PC in the following way, as stated in the description:

I have a issue to run your program on mobile phone. After hosting your program , I attemped access it, but it run any more .

it works on my phone, but... I admit that there may be problems on some models - mainly I made changes for the PC, so that it would be possible, for example, to move inside the interior.


conflicts with mutilple units

Hi,
I configure a unit with conflicts, but i do that to set muliple units in one line as below:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
but only the first one wokr, the other doesn't work.
I try to another way with mutiple Conflicts lines, one line with one unit,
it seems works
like below:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
what is the problem? it is a bug or not? or it is the systemd bug?
I check systemd spec, it mentions it can be configures with mutilple units in one line.
systemd spec
the fleet version is 0.9.2 in coreos 647.2

one more thing, if i start mutilple units at the same time, fleetctl can't find the proper way to assign the machine.
for example,
one unit with blow conflicts:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
another unit with below  conflicts:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
after start<EMAIL_ADDRESS>i try to start<EMAIL_ADDRESS>sometimes fleetctl will stuck because  (I only 3 machines)
activemq-hub-master@1 assigned to A
activemq-hub-master@2 assigned to B
activemq-hub-master@3 assigned to C
and
activemq-hub-slave1@1 assigned to B
activemq-hub-slave1@2 assigned to A
then it is impossible to assign activemq-hub-slave1@3 because activemq-hub-master@3 assigned to C
Maybe we need to add some logic to handle the multiple assignment at the same time to aoivd the conflicts.

I'm not an expert in any way, although I've already spend several days struggling getting things to work (fleet, etcd, CoreOS, etc.). It's far from a smooth ride so far. Also more intelligent (re-)location of units would be a very desirable option.
However, to actually get to your question: I've read somewhere that multiple rules count as "either / or" and a single rule means "any / and". I don't recall it specifically mentioned for the Conflicts directive, but following this mantra it seems that it's "by design".
So basically this means "either activemq-hub-master OR activemq-hub-slave1 OR activemq-hub-slave2"
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
Not sure if it makes sense in your situation, just something I read somewhere on coreos.com

It looks like each Conflicts option is parsed as one value, regardless of what follows the equals sign [0]. It does seem like all conflicts should be respected, though, effectively acting as an AND, not an OR [1].
[0] https://github.com/coreos/fleet/blob/master/job/job.go#L169
[1] https://github.com/coreos/fleet/blob/master/agent/state.go#L43-L67


search method should support start_index and max_results

Issue
CROWD API search results that exceed the server's maximum result set size are not accessible through the python-crowd.py project. The current search method supports CROWD API query parameter of entity_type for the /usermanagement/1/search resource, but has not implemented support for start_index or max_results parameters.
Solution
I propose to enhance the search method to implement two additional query parameters which the CROWD API supports: start_index and max_results. Implementation should include default values of start_index=0 and max_results=99999 to maintain backwards compatibility with existing tools not currently supplying these arguments when calling the search method.
Benefits
Supporting start_index and max_results query parameters will…

Allow retrieval of results exceeding the CROWD server's maximum results set size.
Allow performance tuning if multiple, smaller query results would be better for server or client performance.

Potential Issues
Existing tools using the python-crowd module that rely upon a server's default max_results setting may encounter a change in behavior as the query results could be larger (or smaller) than anticipated due to the proposed default value of 99999. According to the Atlassian REST API policy, the default and maximum sizes of paged data are not considered part of the API and may change without notice. Tools using the CROWD API should declare and validate results set sizes themselves. https://developer.atlassian.com/platform/marketplace/atlassian-rest-api-policy/#AtlassianRESTAPIpolicy-Resource/ratelimitsandpaging

Submitting pull request to main project on github.com/pycontribs/python-crowd

Pull request submitted to merge from potus98/python-crowd fork back into pycontribs/python-crowd project via pull request https://github.com/pycontribs/python-crowd/pull/45


Cross-platform build

added shx dev dependency, used to wrap clean command

Signed-off-by: JBBianchi<EMAIL_ADDRESS>Many thanks for submitting your Pull Request :heart:!
What this PR does / why we need it:
Wraps clean command with shx to provide cross-platform support
Closes #60
Special notes for reviewers:
Additional information (if needed):

Hello @antmendoza, you're not doing anything wrong. I used node node_modules/shx/lib/shx rm -rf dist because I had binaries issues between my package installed from WSL & npm 7 and the actual execution in Windows & npm 6. But indeed, on a fresh install, it doesn't seem to work.
I went back to the classic shx rm -rf dist, it should be working properly now.
Anyhow, I think using tsc might be a better alternative (#63) even if I seem to leave a blank folder architecture after the cleanup.

No idea about the error, I will have a look later today

looks like some issue with the added workflow when running on 15.x (some auth issue). probably we should disable the 15.x runs for now ? you can do that here https://github.com/serverlessworkflow/sdk-typescript/blob/main/.github/workflows/node-ci.yml#L16

@JBBianchi looks like the CI build cant deal w/ the added "shx". Is that absolutely required to have ?

That's the point of this PR, using shx to use unix shell commands (rm in this case) on any os. It's not the only solution possible, we could use a js/ts script for the cleanup that rely on nodejs api instead of shell cmds but I must admit I don't really see the relation between shx and the auth error caused by npm 7 in the node 15 build.

@JBBianchi yeah, I agree that we should not change our code to cater to some CI build but maybe there is another solution possible? wdyt?

@tsurdilo the problem might come from the "corrupted" package-lock.json which contains links to Neuroglia private NPM registry/proxy. I'll fix this and see if it builds on node 15/npm 7.

@JBBianchi haha nice catch I didnt even look at the diff for that :) yep that was it.

@JBBianchi @antmendoza whats a good way to prevent stuff like this to happen again in package-lock? Just wondering as we might get different contributors run into this issue

@tsurdilo I don't know, maybe have a .npmrc that specifies the registry to use but it can still be overriden with a --registry flag ...
I also noticed another problem, my dev environement still uses npm 6 which means the package-lock lockfileVersion will be set to 1 and the format will change if I npm install. I don't know if there is a way to enforce using npm 7 or if it might be a good idea to use another package manager like pnpm. I'll try to find some doc/pointers.

I think that one of the objectives of using  "npm ci" is to detect differences between package.json and package-lock.json https://docs.npmjs.com/cli/v7/commands/npm-ci , which is what has actually happened here.
no idea why it has not failed with node 10,11,12... I am going to try to reproduce it in my env and see.

The two main guidelines would be:

enforce the use of a version of node/npm, add engines.node and engines.npm to package.json
enfore a project specific registry (and scoped ones if necessary), use a .npmrc to specify the registry


add custom required mark

@petar-cvit can you please some screenshots of the changes? This will make it more easy to review.

Explicitly added the red asterisk if the field is required


fix: compatible with shadowNode on touch event

Compatible with the shadowDOM when users trigger touch events.
Previously it uses .parentNode to get the parent node, but if it's a shadowNode, it could get a null. So add the .getRootNode().host to get shadowDOM root node when got null.
Here is a repro sandbox: https://stackblitz.com/edit/typescript-tuvyqs?file=mySortable.js
You can confirm it by removing the addition code in line 1953.

@owen-m1 wanted to bring awareness of this PR to you (no rush) - curious if you'd be open to this contribution to better support certain web component scenarios. Thanks!


Extended quick add panel

Based on the discussion in https://github.com/CesiumGS/cesium-unreal/pull/451 :

Removed the "Blank Tileset" button from the Toolbar
Added a "Blank Tileset" entry in the QuickAdd-List instead
Added an entry to add one "CesiumSunSky"
Added an entry to add one "DynamicPawn" (which is auto-possessed to Player 0)

I took the liberty to add tooltips to the entries. There may be some wordsmithing to be done, at https://github.com/CesiumGS/cesium-unreal/commit/4fcf6f7ccd848b8d4e1086032a2c5ca744dad0f4#diff-327861e3f97a3a851d4277e846070d9a98999a100aab925bc8072fb464a027a7 (edit:  for example, "Bing Maps Road imagery" is not satellite data...), but it may be a start.

(An aside: I don't like the style of this implementation, compared to the generic, AssetData-based one with Drag-And-Drop from the other PR, but maybe this implementation is closer to what is expected...).

Thanks for the pull request @javagl!

:heavy_check_mark: Signed CLA found.

Reviewers, don't forget to make sure that:

[ ] Cesium for Unreal Samples works.

Converting to Draft again: It does not make sense that the newly added entries are not shown when the user is not logged in. (They should be available regardless of the login state).

Drive by suggestion: Let draw a separation (Like Quick Add + horizontal line) between the Quick-add Global 3D content, and the UE stuff like SunSky, Pawns etc.

I have separated the panels into "Quick Add Assets" and "Quick Add Actors". When logged in, it looks like that:

When logged out, the "Login panel" takes up quite some (fixed) space, due to manual Paddings that have been inserted... :-/ it could be OK, but one may have to scroll down on smaller screens....:

I don't particularly like this, but assume that people have strong opinions about what "The Right Layout" should be here, so leave that to others to decide.

(Another aside: Now that the Panels are separated, people of the future might even more wonder about why certain things are implemented the way they are, but I hope that it will then be sufficient to point to 451 where necessary)

Assuming that, regarding the layout, there either will be feedback .. or not .. I'll mark this as Ready For Review.

I'm getting errors at startup in this branch, but not in main:

Not sure if some/all of these problems flow from the one above, but some other problems I'm seeing are:

Clicking the + for "Cesium SunSky" or "Dynamic Pawn" does nothing if these objects are already in the level. It should select the existing object the way the other quick add buttons do.
The Actor created by the "Cesium SunSky button" has the wrong extensions. It should have these:

But instead it looks like this:

The above aside, I don't think we've quite nailed the UX here yet. I don't think I agree with Shehzan's suggestion to create a separate section for these other actors. For one thing, they're all Actors, including the previous quick add options. Also, I hadn't thought about the case where the user is not logged in to Cesium ion, and it's pretty awkward.
If I can put on my ill-fitting UX hat (ask @philipgrimmett how afraid you should be), I think we need our main panel to be something very roughly like this:

Geeze that looks terrible, but stay with me here.... The idea is that, like now, there's a list of all the awesome things you can add to your level, and you can add them with one click. Ideally this would be pretty and eye catching: nice, desaturated images of the assets you're adding, even. We'd also move the confusing and kinda hidden "Add" and "Upload" buttons to be on this main panel as well alongside all the assets (see the buttons at the bottom).
Now the key thing is that this panel is pretty much the same no matter whether you're logged in to ion or not. The only difference is at the top there's an indication of the state and the option to sign in or out depending on the current state. But if you're not signed in and you click on one of the ion assets, that's our chance to tell people how cool ion is and give them a chance to sign in or sign up. Maybe we use a subtle indication on the panel (a background color or something) to distinguish the ion assets from the non-ion assets so that users who can't or don't want to use ion don't have to click blindly to learn what they can and can't use.
As the list of assets grows, we can have some filtering controls as well. For example, a Category that defaults to "Featured" or something like that.
This is all a good amount of work, though, and really ought to have some legit UX design go into it rather than just my hand waving. Meanwhile having these new Actors on the panel is much better than not having them. So maybe the current state is workable for now.

That last one sounds like a considerable restructuring (even though it's "technically trivial", in some way). I'm not a UX expert, but to reiterate/summarize some thoughts:

There may be certain "idioms" how such a UI is usually presented in UE. I thought that a list with drag-and-drop from the first PR was such an idiomatic UE thing. But the caveat that things usually should be placed at (0,0,0) justifies deviating from that, and using these [+]-buttons instead.

Subjectively: Part of a good UX is that the UI does not change too often or too dramatically. (Sometimes, I wonder whether they just want to keep developers busy and users confused). So whatever we'll come up with, it should be "stable".

For the login part, one option could be: Put the new items at the top. Below that could be the login area. After logging in it shows the ion-quick-add items. If it was possible to always show the buttons for the ion assets, but leaving them greyed out when not logged in, then this could have some "teaser effect" - particularly when they have some nice Tumbnails showing what people would get (a textured globe, that is).
For the thumbnails: These would probably be fixed size, and not configurable-size as in the content browser

I thought about handling the login via some modal dialog window. Right now, for example, there is no way to cancel the sign-in-process. But that would also require some restructing and advise from someone who as certain UX/workfow in mind.

@kring The fact that the existing elements should be selected was an oversight. I can add this.
But more importantly:

I'm getting errors at startup in this branch, but not in main:

Of course, I don't get these (otherwise I wouldn't have marked this as Ready For Review). I can only guess that this may be caused by loading the respective BP classes, but ... if that failed, it should print a different message. It looks like it could not load one of the classes that are used in the blueprint, Do these link-like function names (with the magnifying glass) lead somewhere when clicking on them?
(I assume that this causes the missing components. For me, it shows the CompassMesh/SkyLight/DirectionalLight/SkyAtmosphere, as usual. But... missing components is one thing. What's more confusing is: Where does that BillboardComponent suddenly come from?!?)

I think the issue of the order and the placement of the "Login" panel could rather easily be resolved, by having the "Basic actors" at the top...
[add] [upload] [learn] [help] [signout]

--- Add basic actors ------------------

(Blank) Tileset                   [ + ]
CesiumSunSky                      [ + ]
DynamicPawn                       [ + ]

and below that, showing either the "Login" panel with the logo, or the list with ion assets and the title "Add Cesion ion assets"

BTW: I tried moving the "Connection status" into a modal dialog. I think that could certainly make sense, so that people don't mess around in the editor while the login process is not finished (and so that they can cancel the login process), but that's not so straightforward.

(1. the connection does not proceed, because the AsyncSystem waits for it to be executed in the main thread, and
2. there is no functionality for cancelling the connection, apparently)

It could, however, make sense to replace the login panel (that with the logo) with the connection status panel during the login process.

And I still think that showing the elements of the "Cesium ion quick add" list even when the user is logged out (!), could serve as some sort of "teaser". This could be done by just disabling that list. Where and how it could be displayed... yeah, certainly not exactly like that:

... but maybe in a similar way, as in
[add] [upload] [learn] [help] [signout]

--- Add basic actors ------------------

(Blank) Tileset                   [ + ]
CesiumSunSky                      [ + ]
DynamicPawn                       [ + ]

   ________________________________
  |Log in to Cesium ion for all the|
  |fancy things below:             |
  |                                |
  |          [ Connect ]           |
  |________________________________|

--- Add Cesion ion assets -------------   (disabled)

CWT + Bing                        [ + ]   (disabled)
CWT + BingLabels                  [ + ]    ....
...
OSM                               [ + ]

(If there wasn't the logo that takes up so much space... )

Thanks for all your work on this @javagl! I tweaked a few things and I'm going to merge it as soon as CI passes. Certainly there's a lot more we can do here, but let's get this clear improvement shipped. Here's what I changed:

Fixed the SunPosition errors I was seeing. The Cesium for Unreal plugin seems to be loaded before the SunPosition plugin on my system. I don't entirely understand why, but it's easy (and arguably an improvement) to only get the CesiumSunSky and DynamicPawn classes when we need them rather than at module startup, and that fixes the problem.
Attempting to add a CesiumSunSky or DynamicPawn when one already exists in the level will not select the existing ones in the Outliner.
When we attempt to add a CesiumSunSky, the new or existing CesiumSunSky is now set as the Georeference's designated SunSky.
Made the Cesium for Unreal logo smaller, less pixelated, and less padded.
Used the titles and section order from your latest screenshot.

Here's what it looks like before signing in:

And after signing in:

I really like the idea of showing the list of ion assets before signing in, but I'll write a separate issue for that.


Typos in documentation for Spacing

Under the spacing section there is a table listing the sass variable with the scale and values. Under all type scales the sass variable listed is $spacer-1.

Must be specific to a branch? On master it's still showing up correctly.
https://github.com/primer/primer/blob/master/modules/primer-support/docs/spacing.md
It's also the same for dev:

https://github.com/primer/primer/blob/dev/modules/primer-support/docs/spacing.md

However it changes for some reason on avatar-stack

https://github.com/primer/primer/blob/avatar-stack/modules/primer-support/docs/spacing.md

I'm looking at: https://styleguide.github.com/primer/support/spacing/ and still seeing this issue.

Never seen that link before 😳I stand corrected!


Contact images don't adhere to ped changes

Once a ped headshot loads either by opening contacts or receiving a message, it won't change, even if player himself does.

possible solution: if saved headshot is too old, make a new one?


MAJOR_VERSION undefined class constant in src/utils.php

Guzzle version(s) affected: *7.0.1
PHP version: 7.2.24
cURL version: 7.58.0
Description
Getting an undefined class constant error when running the "vendor/bin/wp theme update -all" command from this tutorial
How to reproduce
On GAE standard environment, activate the GCS plugin on the live site and try to run any update on the local version. The error does not exist when GCS plugin is deactivated on live site during updates.
Additional context
vendor/bin/wp theme update --all --path=my-wordpress-projectPHP Fatal error:  Uncaught Error: Undefined class constant 'MAJOR_VERSION' in /home/val-wp/vendor/guzzlehttp/guzzle/src/Utils.php:121

This is not a bug?

Talk with the people writing that tutorial...
It seams like you have more than on guzzle installation loaded.

ok risolto grazie

Just in case anyone bumps into this too:
In my root project I had guzzle 7 installed, but I also had a legacy subproject that was loaded with the root project that had guzzle 6 installed, upgrading it to 7 too fixed the problem.

Is there any way that we can use Guzzle Library for all the PHP version >= 7.4
I need general for all the PHP version with latest.


Update to python3

The version of pyshark which supports Python2.7 has broken dependencies

@Djent- Thank you


Language switcher in header

Button in app header (visible on all screens):

List of languages, with scroll behaviour, note how Arabic slides behind the "English" label:

Note: The list of languages are defined in the fixtures, it will be a much smaller list, check with Michael.

Closed as a dupe of #118.

I think this should remain open and #100 should be closed as the duplicate.

Reopened, thanks github for making PRs look just like issues.

Putting this (pull req #118) back into "In Progress" to address styling issues.