Super role full access

Is there some way to make a role have full access to all actions?
I have a system that uses the BjyAuthorize, but I extended some classes to get the roles, guards and resources from a database. That works pretty well, but I've got to always register the new module on the database to get access to this module, otherwise I got a 403 error, because if the controller and action weren't defined on guards, then there is not permission for them.
So I don't think is cool if I want to create a new controller and action I've got to go there and register both of them even if I neither saw they working.
Even if I not use database and define the guards inside an array on the config file, I'll have to do the same thing: before I test my actions, I got to put them on the config file.
Thanks.

@rodrigotavio91 Zend\Permissions\Acl allows for null permissions/roles to be assigned, but the resources MUST be registered upfront, regardless.

Yeah, but I solve it in other way. I extended the BjyAuthorize\Service\Authorize and replace the isAllowed() method. I also have a parameter admin_role in the bjyauthorize.global.config.php, that defines which is the admin role.  So, in the isAllowed(), when the role logged in is an admin, the function return true, before call the $this->acl->isAllowed()
public function isAllowed($resource, $privilege = null)
{
    $this->loaded && $this->loaded->__invoke();

    if ($this->isAdmin()) {
        return true;
    }

    try {
        return $this->acl->isAllowed($this->getIdentity(), $resource, $privilege);
    } catch (InvalidArgumentException $e) {
        return false;
    }
}

@Ocramius Where can I put the following code to give all permissions to admin?:
$this->acl->allow('admin')
Because if parameter resource is null, all permissions are given to admin.


[automation] Update go release version 1.17.12

What
Bump go release version with the latest release.
Further details
See changelog for 1.17.12
Automatically generated from https://apm-ci.elastic.co/job/apm-shared/job/bump-go-release-version-pipeline/

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2022-07-18T03:55:24.570+0000

Duration: 15 min 35 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
1076

Skipped
6

Total
1082

:robot: GitHub comments
To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.


Got rid of last unsafeForeignFunction

Nothing out of the ordinary, but even more idiomatic :-)

Good, thanks 👍


Add Ability to Skip Releases

Have a question? Please checkout our Slack Community or visit our Slack Archive.

Describe the Feature
The exclude-labels option should be included by default in auto-release.yaml
Expected Behavior
When a PR is merged with a skip-release label, a release should not be made.
Use Case
If a PR does not add any functionality to the actual module, e.g. a README typo fix, then there should be a way to skip the release. Repos using this template should have this ability.
Describe Ideal Solution
At first I believed that simply setting exclude-labels in .github/auto-release.yaml will enable this. However that only skips the release from being drafted. A release will still be made because of the publish action input.
The actual solution probably involves detecting the labels in the PR and programatically setting publish based on that, within the auto-release GitHub Actions workflow.
Alternatives Considered
N/A
Additional Context
N/A

There is a no-release label you could use

@nitrocode this is in build-harness but this template repo's workflows need to be updated.
Will make a PR to update this.


Add more creation details

Currently we return created, transactionHash and creator, but sometimes the safe creation is done via an internal transaction (e.g. when using the secure Safe factory which triggers the normal proxy factory). For this is would be nice to also decode the details of the transaction creation:
factory address, mastercopy, setup data. In most cases this should correspond to the function parameters when calling the Proxy factory.
See is an extension of #65

Note: it would be nice if this works with the CPK factory (https://etherscan.io/address/0x0fB4340432e56c014fa96286de17222822a9281b#code).
Other networks can be found https://github.com/gnosis/contract-proxy-kit/blob/master/src/index.js#L109


Add support for PHP 8.0

This does upgrade the code to allow for PHP 8.0, which can be merged as-is if #579 is something we do not want to add. However, if we want to add #579, then I can update this PR with the accompanying Rector changes :)

@akondas can you tell me how buddy works, it seems it's not pickup the runner config change. According to the logs, the used CI image is still 7.4

I need to approve these changes, but there is also a problem with the public instance, it needs to be prepared for php 8

I have to think about how to do it so that it would not be downtime, I would have to install php 8 there beforehand, which is actually to be done

I still have something to finish this week, but from next week I will sit down to the repman and I will try to catch up with all PR (not only this one). We will catch up with this - I promise :wink:

I have to think about how to do it so that it would not be downtime

The best would then be to "PHP": "7.4 || 8.0", merge this, update your vhost with the right PHP(-fpm) instance, and do a reload. Then we can fully move the codebase to 8.0, do you want me to update this one?

yes, good approach, that should allow the update to be done without downtime, thanks for help :+1:

@akondas I've pushed the suggested update, just have to wait for the CI. If this is green, can you review and merge this PR?

I'm unsure why the CI fails, it should be fine. It appears it might install the dependencies from some sort of cached vendor dir. I could use some help with this :)

@marmichalski / @akondas everything has been addressed, how is this PR looking now?

@akondas lets finish this?

So from my point of view, plan looks like this:

allow to use php 8 in composer.json
switch pipeline to php 8
upgrade public instance to php 8
upgrade code (composer.lock) to php 8
drop suppoer for php 7.4

We are on first point here, so please do not run composer update on php 8.

You can do this in composer.json to keep composer.lock depdencies on 7.4 for now:
"config":
        "platform": {
            "php": "7.4"
        },

I have applied @Jeroeny's suggestion and installed a 7.4 compatible set of dependencies.

@akondas do you have some time to take a look at it?

Ok, let's go with this. Please resolve conflicts and we can merge this.

@akondas merge conflicts are resolved, as soon as it is merged we will start using Repman on PHP 8.0 👍

@akondas I've resolved the merge conflicts. Unfortunately the test pipeline is not passing due to some weird behaviour regarding PHPStan. I suspect it caches some files that has been corrupt, locally it does all work fine

Any news here? Would love to use repman with PHP 8.0.

In the past 24 days there were new merge conflicts. From my side it's good to go, but @akondas needs to give final approval + merge. I've resolved the new conflicts, but I will not be actively watching the status anymore for now (it's taking long enough) and we're running these changes already in prod with our internal fork.

@akondas I have, again, resolved the merge conflicts. Could we please merge this PR? We've been running this code on our on-premise install for the past 2-3 months and it runs fine :)

@xvilo what about upgrading to php8.1?

Good sugesstion, however, the upgrade path to 8.1 is a bit harder. I'd like to get this merged first. And honestly I'm wondering why this takes so long 😟
Also, an upgrade to Symfony 6.2 might be warranted. As this is also a fresh and hot release!

@akondas We're closing in on a year, and have passed the EOL date of PHP 7.4. We've been running this code for almost a year with our private instance and haven't noticed any issues.
Can we get this reviewed and merged?

@akondas Whats your idea? Do you still want this or not?

It seems the tests fails due to a small timing issue, I tried to quickly require symfony/clock, but I can't due to https://github.com/repman-io/repman/issues/653

I was able to reproduce multiple times, but I'm not sure it's related to PHP 8.
My guess, you're having 2 DateTimes created within an interval of several milliseconds but are not on the same seconds.
ie : 10.980 vs 11.002.
@akondas Might be a good idea to merge this one asap, as PHP 7.4 has reach end of life and should no longer be used :)

Yeah I expected so, but since repman was broken I kept it as is. Again, we’re using this as a fork on our kubernetes environment and all works fine as is!
I would also like to work on PHP 8.1/2 compatibility and an upgrade to Symfony 6.3, but I will wait for this until we’re good with this one

I thought we had this running internally already, but apparently we didn't yet. I've just switched our internal hosted version to this branch correctly and found one bug which is fixed with https://github.com/repman-io/repman/pull/580/commits/4ea3214aeac1c71299a6230bb271619ff445df61
For now I'll keep an eye on how well it works through Sentry

@akondas in the past commits I've done the following:

Add GitHub actions support for PHPUnit (just that for now, as Buddy is broken)

This currently runs tests both on PHP 7.4 and 8.0

Update coduo/php-matcher as it indeed has incompatibilities when running PHPUnit tests
Update a test to account for different wording between PHP 7.4 and PHP 8.0

As of know, both jobs report a succesfull status;

7.4: https://github.com/xvilo/repman/actions/runs/5501289892/jobs/10024774435
8.0: https://github.com/xvilo/repman/actions/runs/5501289892/jobs/10024774499

So I made small booboo and accidentlly pushed custom patches this way, cleaned and cherry-picked it.
Also thanks to @marmichalski for the review, answered and/or fixed the comments you left
PHP Unit tests statusses all in the green:

Postgres 11.20:

PHP 7.4: https://github.com/xvilo/repman/actions/runs/5506320670/jobs/10034839156
PHP 8.0: https://github.com/xvilo/repman/actions/runs/5506320670/jobs/10034839692

Postgres 13.11:

PHP 7.4: https://github.com/xvilo/repman/actions/runs/5506320670/jobs/10034839366
PHP 8.0: https://github.com/xvilo/repman/actions/runs/5506320670/jobs/10034839838

Postgres 15.03:

PHP 7.4: https://github.com/xvilo/repman/actions/runs/5506320670/jobs/10034839517
PHP 8.0: https://github.com/xvilo/repman/actions/runs/5506320670/jobs/10034840032

@akondas ?

@akondas do you have some time to look into this MR? PHP 8.0 is EOL this week, I would like to get this merged and add some effort in upgrading it to newer php versions. Also resolving some bugs we're hitting, but I will not invest more time until I get some response on here 👍

Thanks for picking this up @marmichalski, let me know if there is anything I can do to help out 👍

Thanks for picking this up @marmichalski, let me know if there is anything I can do to help out 👍

Yea, I have no idea why some tests under ComposerPackageSynchronizer are failing in PHP 8.0 CI, considering they pass in 7.4 CI and locally for me 🤷

That’s weird, in one of my previous comments I had both 7.4 and 8.0 passing through GitHub actions just fine. I’ll take a look tomorrow or later this week if you haven’t solved it yet

That’s weird, in one of my previous comments I had both 7.4 and 8.0 passing through GitHub actions just fine. I’ll take a look tomorrow or later this week if you haven’t solved it yet.

I've brought your original workflow to life and even 7.4 failed on those tests 🙈

Locall on macos I have the following 2 failing:
PHPUnit 9.5.25 #StandWithUkraine

...............................................................  63 / 500 ( 12%)
............................................................... 126 / 500 ( 25%)
........................E.E.................................... 189 / 500 ( 37%)
............................................................... 252 / 500 ( 50%)
............................................................... 315 / 500 ( 63%)
............................................................... 378 / 500 ( 75%)
............................................................... 441 / 500 ( 88%)
...........................................................     500 / 500 (100%)

You should really speed up these slow tests (>500ms)...
 1. 514ms to run Buddy\\Repman\\Tests\\Functional\\Controller\\Admin\\ConfigControllerTest::testToggleAuthenticationOptions

Time: 00:10.786, Memory: 141.00 MB

There were 2 errors:

1) Buddy\Repman\Tests\Unit\Service\Security\SensioLabsSecurityCheckerTest::testUpdateWhenRepoDontExist
Symfony\Component\Process\Exception\ProcessFailedException: The command "'git' 'clone' '--depth' '1' '--branch' 'master' 'file:///var/folders/zj/l6h4qqtn7hx6hcz2v4l9wl4m0000gn/T/repman/security-advisories-repo' '.'" failed.

Exit Code: 128(Invalid exit argument)

Working directory: /var/folders/zj/l6h4qqtn7hx6hcz2v4l9wl4m0000gn/T/repman/security-advisories

Output:
================

Error Output:
================
Cloning into '.'...
warning: Could not find remote branch master to clone.
fatal: Remote branch master not found in upstream origin

/Users/xvilo/projects/repman/src/Service/Security/SecurityChecker/SensioLabsSecurityChecker.php:218
/Users/xvilo/projects/repman/src/Service/Security/SecurityChecker/SensioLabsSecurityChecker.php:196
/Users/xvilo/projects/repman/src/Service/Security/SecurityChecker/SensioLabsSecurityChecker.php:34
/Users/xvilo/projects/repman/tests/Unit/Service/Security/SensioLabsSecurityCheckerTest.php:119

2) Buddy\Repman\Tests\Unit\Service\Security\SensioLabsSecurityCheckerTest::testUpdateWhenRepoExist
Symfony\Component\Process\Exception\ProcessFailedException: The command "'git' 'clone' '--depth' '1' '--branch' 'master' 'file:///var/folders/zj/l6h4qqtn7hx6hcz2v4l9wl4m0000gn/T/repman/security-advisories-repo' '.'" failed.

Exit Code: 128(Invalid exit argument)

Working directory: /var/folders/zj/l6h4qqtn7hx6hcz2v4l9wl4m0000gn/T/repman/security-advisories

Output:
================

Error Output:
================
Cloning into '.'...
warning: Could not find remote branch master to clone.
fatal: Remote branch master not found in upstream origin

/Users/xvilo/projects/repman/src/Service/Security/SecurityChecker/SensioLabsSecurityChecker.php:218
/Users/xvilo/projects/repman/src/Service/Security/SecurityChecker/SensioLabsSecurityChecker.php:196
/Users/xvilo/projects/repman/src/Service/Security/SecurityChecker/SensioLabsSecurityChecker.php:34
/Users/xvilo/projects/repman/tests/Unit/Service/Security/SensioLabsSecurityCheckerTest.php:134

ERRORS!
Tests: 500, Assertions: 1201, Errors: 2.

Yea, those are the reason of macOS git config (not the git version, as newer git versions are still using master as default branch). Assuming that would work for you if you'd init the repo with --initial-branch master in that test, so everything would pass on your local, too :sob:
I am still considering how to properly go around this; I think we don't have to specify branch at all in SensioLabsSecurityChecker as git clone with --depth 1 will fetch single (default) branch anyway (IIRC).

From what I have found so far it that it appears to read the versions of the project itself in the test?
The buffered IO contains the following logs:
Reading composer.json of repman-io/repman (0.1.0)\n
Importing tag 0.1.0 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (0.1.1)\n
Importing tag 0.1.1 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (0.1.2)\n
Importing tag 0.1.2 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (0.2.0)\n
Importing tag 0.2.0 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (0.2.1)\n
Importing tag 0.2.1 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (0.3.0)\n
Importing tag 0.3.0 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (0.4.0)\n
Importing tag 0.4.0 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (0.4.1)\n
Importing tag 0.4.1 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (0.5.0)\n
Importing tag 0.5.0 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (0.6.0)\n
Importing tag 0.6.0 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.0.0)\n
Importing tag 1.0.0 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.1.0)\n
Importing tag 1.1.0 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.1.1)\n
Importing tag 1.1.1 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.2.0)\n
Importing tag 1.2.0 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.2.1)\n
Importing tag 1.2.1 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.2.2)\n
Importing tag 1.2.2 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.3.0)\n
Importing tag 1.3.0 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.3.1)\n
Importing tag 1.3.1 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.3.2)\n
Importing tag 1.3.2 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.3.3)\n
Importing tag 1.3.3 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.3.4)\n
Importing tag 1.3.4 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.3.5)\n
Importing tag 1.3.5 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (1.3.6)\n
Importing tag 1.3.6 (<IP_ADDRESS>)\n
Reading composer.json of repman-io/repman (feat/php-8.0)\n
Importing branch feat/php-8.0 (dev-feat/php-8.0)\n
Reading composer.json of repman-io/repman (master)\n
Importing branch master (dev-master)\n

Those are clearly the branches and tags of this project, and not, as I expected, the versions of the dists zips in the tests folder. I'll check if the checkout is shallow or something like that

That was it! I've added the fetch-depth and fetch-tags to the actions/checkout@v3 action. This makes it so the copy isn't (too) shallow. I think it shouldn't fetch itself, so the test might be incorrect. However, I believe this was already the case so I wont address that in this PR.
@marmichalski how you like?

That was it! I've added the fetch-depth and fetch-tags to the actions/checkout@v3 action. This makes it so the copy isn't (too) shallow. I think it shouldn't fetch itself, so the test might be incorrect. However, I believe this was already the case so I wont address that in this PR.
@marmichalski how you like?

Can you make the other workflow pass and drop this one, though? :+1:
I don't think we should be fetching full history at all times, maybe fetch-tags: true would be enough? Also this does not really explain why the workflow (the one I'd like to keep) is passing on 7.4 and not 8.0

@marmichalski ah, I've been debugging the wrong file in that case, as that is a different error. I'll restart my investigation with that one

It might be an issue with git safe directories. I would assume that the 7.4 image might be a bit more outdated then the 8.0 image

It might be an issue with git safe directories. I would assume that the 7.4 image might be a bit more outdated then the 8.0 image

Yea, looks to be the case looking at the dubious ownership. Good find :detective:

I think it can be merged in to the main branch as is, I don't see any objections right now. We've been using this in prod for a while now

I think it can be merged in to the main branch as is, I don't see any objections right now. We've been using this in prod for a while now through a custom fork

Thank you, let's see what happens next :crossed_fingers:

I think it can be merged in to the main branch as is, I don't see any objections right now. We've been using this in prod for a while now through a custom fork

Thank you, let's see what happens next 🤞

Do you want me to find some time to work on php 8.2 compatibility, or will you handle this? PR was already open (https://github.com/repman-io/repman/pull/660), but with some failing tests that I didn't know enough about

Do you want me to find some time to work on php 8.2 compatibility, or will you handle this? PR was already open (#660), but with some failing tests that I didn't know enough about

I can take over that PR in my spare time :)


fix: clean up and move tokens for z-index

👋 Thanks for creating a pull request! 🚀 Checkout the storybook we created for it here.


Any hopes of seeing a GNU/Linux version of this?

Hi!
These Amiga tools seem very useful, and as far as I know we don't have any means to format a PFS3 partition in GNU/Linux.
So, is it possible to have a commandline version of these tools for building on GNU/Linux?
Thanks!

Hi,
It sure is very useful being able to format a PFS3 partition without having to start an Amiga emulator. This repo represents a C# library with classes to read and write various Amiga partitions, filesystems, which is published both here under releases and at nuget.org. So it requires .NET programming in order to use it and if used with .NET Core, it can run on Windows, macOS and Linux with a x86/x64/arm64 cpu.
Take a look at my disk imaging tool at https://github.com/henrikstengaard/hst-imager, which uses this library to partition and format Amiga disks and is released as ready to use standalone binaries for Windows, macOS and Linux.
The CLI version is currently the most complete and GUI version is slowly getting same features implemented. Both under development.

In any case, please give more details about your Linux environment should Hst Imager not work out of the box, so I can update it with better support for Linux.

@henrikstengaard Ah, thanks a lot! https://github.com/henrikstengaard/hst-imager does the work perfectly here on aarch64 and x86_64!
Indeed, formatting without having to resort to an emulator is great!


Added [personal/portfolio] template

[ ] Update template specific styles
[x] Add basic template
[ ] Review

This is still in progress, please don't merge it yet. This PR is for review purposes.

I'm unsure what @dansup thinks about self-promotion by putting your data everywhere in template,
I kinda don't like it. Credits on bottom are fine, rest should be demo content, not links to your personal
pages and your name. I did several of them, and never used my name.
Other than that - you should use link to Font Awesome 5 for new templates.
Those are some tips - I'll let @dansup decide on the first one, whether he'll allow it and merge like that or not. FontAwesome, however, you should correct.

Thanks for the review, its serves demo data purpose and that's the whole point of this review request. To improve it.
I was using older html template and it has font awesome 4.5, will update it and add icons where required.
Also please let me know if there should be any other section included too.

@diomed @dansup review requested, I think its good enough now.

It would look a bit better if card with profile and skills was below.
if it had some margin and was not stickied to  green container above it, IMHO.
also, you tend to create a space via use of a lot of  tags.
I mean... not the happiest of solutions for a template. That's quick and dirty fix.
It's better to use custommargin-top or maybe even use flexbox's vertical centering https://github.com/jgthms/bulma/issues/1401

These sections are children to the about section, that is why I thought it would be good to group them into one. Lets hear some more reviews?
Sure, these are just quick hacks, will remove these and update using CSS.

unsure what MSSQL is 😄
probably a typo.
anyway, I have no other special reviews. if you think it's fine, it's fine, just fix what I suggested and maybe remove old version of font awesome, and you're good to go. it's your template. and looks good to me.
I'll just @GabMic here, if he has anything more to add, since you're basically closing his request.

thank you for your template.
you are most welcome to contribute further.
also, if you'd like your template to have screenshot, you could upload it to repository.
you can look what existing dimensions are.

Totally forgot about screenshot. Will do it. Thanks

uh-oh. I put a screenshot. lol 😋
this can stay as it is for the time being, but it will probably be cut, eventually, if number of templates grows.


[Feature Request] gzStream / gzReadData similar to readData

It would be nice to have gzStream / gzReadData like what is implemented in @dom96 untar:
type
  GzStream* = ref object of Stream
    handle: GzFilePtr
    pos: int
    isAtEnd: bool

proc gzReadData(s: Stream, buffer: pointer, bufLen: int): int =
  if bufLen == 0: return 0
  var s = GzStream(s)
  let ret = gzread(s.handle, buffer, bufLen.cint)
  checkZlibError ret, s.handle
  s.pos.inc(ret)
  s.isAtEnd = ret == 0

  return ret

Didn't see PR https://github.com/nim-lang/zip/pull/20, closing.


Setting of day width/height

It seems like it's impossible to change the width and height of the day cells independent of one another. From what I can tell, setting either the height or width turns off autoSize. I feel like the API mislead me into thinking I could reduce the space between rows (while keeping the width the same) by simply changing the height because they are separate properties.
Perhaps it should be one method that accepts width and height instead?
While a single function would be a step in the right direction, I think this way of setting the cell size is a bit confusing. I expected the library to respect the height and width set on the dayViewRes, but instead it ignores it, sets it to match_parent, and uses dayWidth and dayHeight from CalendarView as the sources of truth.
I think this is a bit of a gotcha and it would be helpful to have this behavior documented. Ideally, the user's layout determines the cell size.
For anyone wondering how to reduce the space between rows, here's how I did it:
// View.doOnPreDraw is found in core-ktx
doOnPreDraw {
  dayWidth = calendarView.width / 7
  dayHeight = (dayWidth * .666).toInt()
}

What are the spaces between rows that you're referring to? Could you share an annotated screenshot maybe from the sample app to clarify?

This is the space that I'm referring to. I dug into this a little more and it seems like what I'm seeing is a timing issue. The calendar only get messed up if you don't make height/width adjustments inside the doOnPreDraw block.
If we add binding.exOneCalendar.dayHeight = 120 to Example1Fragment without wrapping it in doOnPreDraw the calendar looks like this.

Using `doOnPreDraw I get exactly what I would have expected.

Yep, setting either width or height does disable auto-size. I think the dayHeight and dayWidth properties should be properly documented to include this. We do something similar in example 6 but using DisplayMetrics instead.

Can we make it a function instead so it's more clear that they need to be set together? This would also avoid an extra call to invalidateViewHolders().
In fact, there are a few other properties that would benefit from this treatment (padding, margin, maxRowCount, etc).

I was going to add something like an update block, which would not trigger the invalidateViewHolders(), updateApapterMonthConfig() or updateAdapterViewConfig() methods if properties are updated inside it. This way we avoid creating setter methods for all the properties of CalendarView.
Something like this:
open class CalendarView : RecyclerView {
	....
    private var isUpdating = false
    private var pendingAdapterMonthConfigUpdate = false
    private var pendingAdapterViewConfigUpdate = false
    private var pendingViewHolderInvalidation = false
    fun update(block: CalendarView.() -> Unit) {
        isUpdating = true
        this.block()
        isUpdating = false
        if (pendingAdapterMonthConfigUpdate) updateAdapterMonthConfig()
        if (pendingAdapterViewConfigUpdate) updateAdapterViewConfig()
        if (pendingViewHolderInvalidation) invalidateViewHolders()
		pendingAdapterMonthConfigUpdate = false
        pendingAdapterViewConfigUpdate = false
        pendingViewHolderInvalidation = false
    }
	....
}

Then the update methods will look like:
private fun updateAdapterMonthConfig() {
    if (isUpdating) {
        pendingAdapterMonthConfigUpdate = true
        return
    }
    ....
}

private fun invalidateViewHolders() {
    if (isUpdating) {
        pendingViewHolderInvalidation = true
        return
    }
    ....
}

private fun updateAdapterViewConfig() {
    if (isUpdating) {
        pendingAdapterViewConfigUpdate = true
        return
    }
    ....
}

Now using example 1 where we update a lot of configs, we can write:
animator.doOnStart {
    if (!monthToWeek) {
        binding.exOneCalendar.update { // No more => exOneCalendar.apply{}
            inDateStyle = InDateStyle.ALL_MONTHS
            maxRowCount = 6
            hasBoundaries = true
        }
    }
}

What do you think?

Of course, this is a solution to the second problem(multiple calls to the methods) not the one regarding the confusing dayHeight/Width properties. A solution to that would be to use the Size class available in the framework and have it as an optional so setting it to null would imply that you want automatic sizing.

Would you mind if we moved this discussion to a new issue? It'll keep me from getting confused and keep the issues focused.

Would you mind if we moved this discussion to a new issue? It'll keep me from getting confused and keep the issues focused.

Created #187

So I've actually been playing around with a different way of laying out all the day views on a separate branch. This approach uses a GridLayout. Remember the monthBodyLayout I removed? This GridLayout replaces that and eliminates the need for WeekHolders entirely. More importantly, this approach allows the user to control the size of the day view from the day view layout file like they might expect. This means there's no longer a need for the dayView/dayWidth properties since the user can make a square view by simply setting width dp == height dp.
I think I'm pretty close to making the calendars look identical with a few exceptions, but sadly, I don't have any more time to keep looking into it. I left a pretty lengthy and detailed commit message on it if you want to take a look. Here's the branch

Btw, if we can get the above approach to work and change rootLayout to be GridLayout, we can get rid of even more views since the headers can be the first and last rows on the GridLayout 😂

I left a pretty lengthy and detailed commit message on it if you want to take a look.

Yes, I'll definitely take a look sometime. Removing the inner framelayout is already a huge win as there would be approx 30 of those in a single month. The inner layouts would only be about 4 per month but would still be great if we can get rid of them.


coordinator: fix too much cursor causes by ensemble breaking

Motivation
failed test: https://github.com/streamnative/oxia/actions/runs/9489462225/job/26150775945
In the old logic, we count the removed node into the ensemble, which causes some issues.

the fencingQuorum is breaking the expected quorum number.
assign more followers to the shared leader(since we are waiting quorumFencingGracePeriod). Which will cause too many cursor exceptions and let the leader election constantly fail.

Alternative
I am unsure why we must add RemovedNodes to the quorum. If we must have a reason, we can filter it in quorumFencingGracePeriod logic. :)

Is the effect that we have many repeated entries in the cluster status? I think I've seen that problem at some point though I was unable to replicate again.

Could you please clarify the repeated entries in cluster status? I am unsure which part you mentioned.
I tested some times. I found our leader election is not stable after introducing the node swap function, which will cause the concurrent leader election. you can simply close server 1 after you change configuration here.
https://github.com/streamnative/oxia/blob/9696873987158b171c9ffe5d825571c00fff271f/coordinator/impl/coordinator_e2e_test.go#L570
some issues might happen when you run it many times.
The RC should be related to concurrent leader election in the shards controller.

even though we cancelled the old context, we didn't interrupt the old goroutine. so the behaviour will be undefined. plus, our context is not accurate, and it can make things worse.

e.g: https://github.com/streamnative/oxia/blob/9696873987158b171c9ffe5d825571c00fff271f/coordinator/impl/shard_controller.go#L289
If we are using this context to control the concurrent, we might need to assign this to all the sub-operations in the election. but I suggest to use a channel to sequence operation and make it simple.

if the removed node is crashed. the leader election will never done.  (caused by delete shards error)
https://github.com/streamnative/oxia/blob/9696873987158b171c9ffe5d825571c00fff271f/coordinator/impl/shard_controller.go#L341

etc...
Sorry,  I just brought up some issues I found but still have no time to fix them. also, it's not very common and urgent. I guess we can fix it later.


Logging of authorization decisions

Inspiration: forum topic https://www.cuba-platform.ru/discuss/t/otladka-prichiny-dostupnosti-elementa-ekrana/5185
Problem: when users setup security roles, they often can't realize why particular button / column isn't available. For some actions like Exclude / Include it may be not trivial.
It would be great if we had trace logging right inside of the framework. So you can just enable trace logging level and check logs for information why particular column / form field / action isn't permitted.
Places in code:

isPermitted() implementation in standard actions
form field hiding depending on security settings
table column hiding depending on security settings
main menu loading maybe?
generic filter loading (like: is filter editing permitted, etc)
.. what else?

logging.level.io.jmix.core.AccessLogger = debug
This logger outputs all authorization decisions, it is set by default in new projects on Jmix 1.2.

1.2.0-SNAPSHOT - verified


Extend vue form

Added two custom form components/constructs:

Multiselect and Async Multiselect (uses vue-multiselect)
Bag behavior

Looks good, can you add a bit of documentation on how to use the Bag component?

I added documentation for both multiselect and bag.


Initial recording rules, for a given room

Question
What is the recommended way to to edit the initial recording rules, for a given room?
Additional context
One example would be:

not to start the recording automatically for a room called NoRecording
start the recording automatically for the room Recording when the first participant joins, till a participant overwrites that behavior by clicking on "Stop Recording" via their menu.

Thank you so much for your help! 🙏

Hey @MoncefB - thanks for the question!
I think this may be easy. This app uses the Twilio API to create a Room when the first use joins. You can see that code in the token server here: https://github.com/twilio-labs/plugin-rtc/blob/master/src/serverless/functions/token.js#L74
The Rooms API does accept a parameter that could be useful for your use case. It accepts recordParticipantsOnConnect, which, if true, will record participants when they connect to the room.
So you could alter the code in the token server to change this value based on the room name. Maybe something like this:
        // If room doesn't exist, create it
        room = await client.video.rooms.create({
          uniqueName: room_name,
          type: ROOM_TYPE,
          recordParticipantsOnConnect: room_name === 'Record',
        });

Of course, you can get fancier with the room_name === 'Record' statement, but I think you get the idea. Lemme know what you think!

Hi @MoncefB  I will be closing this due to inactivity. Please let us know if you still have questions and we will reopen this issue. Thank you!


Aggregate spatial

Hi team,
We have completed the implementation of the aggregate_spatial process. You can use the code snippet below to test it. The current output format is an x-vector cube as an xarray dataset, but it can also be configured as a DatArray, depending on the requirements of processes utilizing the output, such as fit_regr_random_forest.
import xarray as xr
import pandas as pd
from shapely.geometry import MultiPolygon, Polygon, mapping
import geopandas as gpd
import json
from openeo.local import LocalConnection
local_conn = LocalConnection("./")

json_file = {
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "coordinates": [
          [
            [
              11.143181900944768,
              46.682468440575775
            ],
            [
              11.143181900944768,
              46.67892170969685
            ],
            [
              11.14948639229209,
              46.67892170969685
            ],
            [
              11.14948639229209,
              46.682468440575775
            ],
            [
              11.143181900944768,
              46.682468440575775
            ]
          ]
        ],
        "type": "Polygon"
      }
    },
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "coordinates": [
          [
            [
              11.181891477817032,
              46.69812317718774
            ],
            [
              11.176847884739885,
              46.697171913851975
            ],
            [
              11.173695639065556,
              46.69284777838911
            ],
            [
              11.178234872836669,
              46.69250183259447
            ],
            [
              11.181891477817032,
              46.69812317718774
            ]
          ]
        ],
        "type": "Polygon"
      }
    }
  ]
}

bbox =  [10.93311286, 46.66029087, 11.41500808, 46.85360212]

url = "https://planetarycomputer.microsoft.com/api/stac/v1/collections/sentinel-2-l2a"
spatial_extent =  {"west": bbox[0], "south": bbox[1], "east": bbox[2], "north": bbox[3], 'crs':'EPSG:4326'}

temporal_extent = ["2022-06-01", "2022-06-30"]
bands = ["B04","B03","B02","B08"] # B04 = red, B03 = green, B02 = blue, B08 = near infrared
properties = {"eo:cloud_cover": dict(lt=30)}

datacube = local_conn.load_stac(
    url=url,
    spatial_extent=spatial_extent,
    temporal_extent=temporal_extent,
    bands=bands,
    properties=properties,
)

# Geometries - Polygon
datacube = datacube.filter_spatial(json_file)

datacube = datacube.aggregate_spatial(json_file, reducer='mean')
datacube

Here if the output is xr.Dataset

And this is as DataArray

@masawdah in the example you mention a json_file but it's not defined.
Anyway, it would be good to provide a simple geometry in the code so that it's self contained and it can be executed without further inputs.

@masawdah in the example you mention a json_file but it's not defined. Anyway, it would be good to provide a simple geometry in the code so that it's self contained and it can be executed without further inputs.

updated with geometries and bbox.

LGTM, thank you for working on this!

 :)

Thanks for working on this! I will now release a new openeo-processes-dask version and continue testing on larger scales!

@masawdah @ValentinaHutter, I also noticed something that needs to be adjusted.
You can run the first example adding datacube.execute() at the end and inspect the result.

The result is an xarray.Dataset, but we agreed to use DataArray as a common data format.
The result is not Dask based, somewhere the load/computation of the data is being triggered. We need to avoid that and do it only when explicitly requested.

@masawdah @ValentinaHutter, I also noticed something that needs to be adjusted. You can run the first example adding datacube.execute() at the end and inspect the result.

The result is an xarray.Dataset, but we agreed to use DataArray as a common data format.
The result is not Dask based, somewhere the load/computation of the data is being triggered. We need to avoid that and do it only when explicitly requested.

I'm not sure if I missed something about the output format but it mentioned here https://github.com/Open-EO/openeo-processes-dask/issues/124#issuecomment-1810331949 xarray.dataset. but it would be easy to switch.

Please be aware that now the conversion from xarray.Dataset to xarray.DataArray is using the .to_dataarray() method, the .to_array() is deprecated. See here: https://docs.xarray.dev/en/stable/generated/xarray.Dataset.to_dataarray.html#xarray.Dataset.to_dataarray

@clausmichele  @ValentinaHutter  I have tested the new implementation of the built-in functionality of xvec for spatial aggregation, and it performed well. It successfully handled the points mentioned by Michele.
We can replace the existing functionality with this new implementation upon its release.
Thanks @martinfleis

@masawdah there's a new release of xvec including your contribution https://github.com/xarray-contrib/xvec/releases/tag/v0.2.0
You can create a new PR now


Update JMS guide to JmsListener

Update the messaging with JMS guide to use the new JmsListener annotation
introduced in Spring Framework 4.1

Hold on, I forgot some documentation link. I'll push an update in a min.

I think that if a given bean is unneeded, I'd go ahead and remove it. We can add a NOTE with a link indicating the option to override.

I'd rather keep it as it makes the link between the factory and the listener. It's a bit too magic at first without that.

Fixed the typo, thanks!


[runtime] Optimize Instruction Storage using Arena Allocation

Check out https://crates.io/crates/bumpalo.
Right now, we waste padding for large primitives:
https://github.com/mrodz/mscript-lang/blob/9e5b5700ab20cb3191092b46669302d9feb1247d/bytecode/src/variables/primitive.rs#L13
... when we only need a few bits for small primitives.

This is guaranteed to ship with v2.0.0

I think this actually isn't necessary right now. I will look into this and possibly reopen it later if the need for greater performance arises.


More tips about how to reduce resources usage

Depends on https://github.com/rtfd/readthedocs.org/issues/4418
Related to https://github.com/rtfd/readthedocs.org/issues/4362#issuecomment-404766625

Looks good. #4515 should have fixed the listing of things included.

@ericholscher https://github.com/rtfd/readthedocs.org/pull/4422 was needed too!


Submit survey at end of routing path

What is the context of this PR?
When the end of the routing path is reached submit the survey.
How to review
Does the survey still submit data when expected

I think @ajmaddaford has some views on this so will hold it until he has reviewed.

Rebase?

In this approach I have concerns over implicitly submitting a users answers when we decide the end of the survey (routing path) is reached. I think this should only be done when the user has performed an action to submit their answers e.g. clicking a 'submit answers' button. After discussing with Jon we've come up with a hybrid solution - make the submit button on any page we determine to be at the end of the routing path a 'submit answers' button and look for this in the POST request.

After further discussions with @benjefferies the new proposal is that we submit the survey when there is no next location and the current location block is of type Summary or Confirmation. This will give us confidence the user is at the end of the survey and allows us to make the default action on POST to be 'Save and continue' or 'Submit answers'. This also means that the action[x] buttons will only be needed for additional submit buttons on a page (e.g. adding/removing household members in the Census or 'Save and complete later').

@ajmaddaford didn't want me to squash?


Add doesNot[Start/End]WithWhitespace methods to AbstractCharSequenceAssert

Check List:

Fixes #3433
Unit tests : YES
Javadoc with a code example (on API only) : YES
PR meets the contributing guidelines

Can't we use CharSequence#codepoints()?
Character.isWhiteapce(actual.codePoints().findFirst().getAsInt());
Character.isWhiteapce(actual.codePoints().reduce((v1, v2) -> v2).getAsInt());

Thanks for better method. I'll fix it right now.

@onacit why would using code points be better than char to detect whitespaces ?
do you have an example where using code points would detect whitespaces that char don't ?

@joel-costigliola As documented in Character.isWhitespace(char), it'll, I think, be better when we use codePoints.

Note: This method cannot handle supplementary characters. To support all Unicode characters, including supplementary characters, use the isWhitespace(int) method.

Thanks.

Can't we use CharSequence#codePoints()?
Character.isWhiteapce(actual.codePoints().findFirst().getAsInt());
Character.isWhiteapce(actual.codePoints().reduce((v1, v2) -> v2).getAsInt());

Best would be to compose a test that demonstrates the need for codePoints, for example using Unicode whitespace that wouldn't be detected by Character.isWhitespace(char) but would otherwise work with Character.isWhitespace(int). The test would also prevent regressions if we changed the implementation to Character.isWhitespace(char).
Taking inspiration from https://stackoverflow.com/a/18169122/9714611, maybe a value from this list could help?

I'm on it @scordio ! @yyytir777  you'll get full credit for the PR don't worry :)

Integrated thanks @yyytir777 !


Use client-side prepared statements

This partially fixes artisan migrate:fresh reported in https://github.com/singlestore-labs/singlestore-laravel-driver/issues/3 by replicating SingleStore's official recommendation.
More information on why this is needed here.

Perfect! Thanks Franco

🎉


Fix Google Analytics

I couldn’t get Google Analytics to work using the Tracking ID in the
admin section until I changed the code to this.

Interesting. Is that the code recommended by Google?

Yeah, it was the only difference between my tracking code and what was in Telescope's function (other than my ID of course).

Thanks :+1:


Proposal: Dockerfile restructuring

Requirements

Build

Build cilium binaries based on golang code
Build cilium-envoy binary based on C++ code

Runtime image

Minimal in size
Needs to contain clang + iproute2
Does not require golang + C++ + bazel build environment
Minimal debugging tools

Proposal

[ ] cilium/build-base image: golang + bazel + protobuf + precompiled envoy
[ ] cilium/runtime-base: ubuntu + clang + iproute2 + gops
[ ] Dockerfile: Multistage build

[ ] Stage 1: FROM cilium/build-base, build
[ ] Stage 2: FROM cilium/runtime-base, copies binaries from stage1

This looks great! We will need a newer version of Docker to do multistage builds than what is currently in the Vagrant VM. I am addressing this as part of the Ginkgo CI migration, in which I install Docker CE 17.06

Can we evaluate using Alpine for runtime image?
clang package: https://pkgs.alpinelinux.org/package/edge/main/x86/clang
iproute2: https://pkgs.alpinelinux.org/package/edge/main/x86/iproute2
I wonder if we need everything from clang package, not sure TBH.

Given the new multi stage builds, exchanging the base image will become very simple. We already slim down the clang package to a minimum.

I've completed the build base image which includes a fully built envoy in /root/.cache/.
Unfortunately it's huge in size:
cilium/build        latest              004b8c554398        6 minutes ago       4.45GB

@tgraf did you try to compress the objects in /roo/.cache in a tarball? Then we would get that tarball from in the multi stage for the runtime image.

did you try to compress the objects in /roo/.cache in a tarball? Then we would get that tarball from in the multi stage for the runtime image.

The tarball will reduce the image size but it will also dramatically increase the build time because it has to be unpacked/uncompressed every time.

Implemented since 1.3


IPv6 client shows as docker host IPv4 in logs

I have a Caddy docker listening on 80 and 443, both port published on the host (with -p).
When an IPv6 client connects to caddy, in the logs I see the docker host IPv4 address (in my case <IP_ADDRESS>) instead of the real client's IPv6.
I have a custom network bridge to connect caddy to an application container via the proxy directive.
This is my Caddyfile:
http://site1 {
    tls off
    redir https://{host}{uri}
}
https://site1 {
    proxy / app-container:8080
    tls<EMAIL_ADDRESS>    root /srv
    log / stderr {combined}
}

What am I missing?

This is a Docker issue, you need to setup IPv6 for your Docker.
See: https://github.com/robbertkl/docker-ipv6nat


fixed #3

fixed #4 fixed #3

Current coverage is 99.21% (diff: 100%)

Merging #4 into master will increase coverage by <.01%

@@             master         #4   diff @@
==========================================
  Files            10         10
  Lines          1647       1650     +3
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1634       1637     +3
  Misses           13         13
  Partials          0          0

Powered by Codecov. Last update 9e02888...63c6c31

I have pushed the changes requested to my fork, let me know if you want anything else changed too.
I'm working on a neuronal network and will use your package. As I will probably have to write some methods for mathematical operations on the way: Are generally interested in merging them? Also Is there some documentation on the assembler parts, I have never worked with that and am a bit confused by it.


Maximizing window on second monitor breaks window until glfwMakeContextCurrent() is called

Hello!
I have found a very specific, yet 100% reproducible issue that I believe to be some complex bug within GLFW.
Relevant specs:

2x Nvidia GTX 1080.
Two monitors plugged in, one monitor on each graphics card (could be important?), SLI disabled.
Latest LWJGL nightly build for GLFW.
Latest Nvidia drivers.
Windows 7, 64-bit.

How to reproduce:

Start our game in windowed mode on monitor 1.
a) Grab window, move it to monitor 2, then maximize it with the maximize button, OR alternatively b) Grab window, then move it to the top edge of monitor 2 so that it is maximized on monitor 2 in one motion.
Window is now permanently broken until glfwMakeContextCurrent(handle) is called, even though  is already the active context.

Video of the problem: https://drive.google.com/open?id=1fVN_LBUeF7PF76I0te9XvmlZiJpjvCEP
As shown in the video, the problem can be permanently resolved by calling glfwMakeContextCurrent(handle), even though GLFW is telling me that  is already the active context, so this should be a no-op. Also, if I resize or maximize the window on monitor 1 first, THEN maximize the window on monitor 2, the problem does not occur at all. Once the window is broken, it behaves as if glfwSwapBuffers(handle) is not being called at all. Input and resizing still works as usual; glfwSwapBuffers(handle) just doesn't register until glfwMakeContextCurrent(handle) is called again.
I have checked all calls to glfwMakeContextCurrent() in my entire program, and although I do create two offscreen texture streaming context windows (one short-lived during load time, and one permanent for streaming), nothing really stands out there. It's worth noting that glfwSwapBuffers() is being called from a separate thread (not the main GLFW thread). Of course, all my window creation/other GLFW function calls that require it are called from the main thread, which is a dedicated for GLFW calls.
I have been unable to reproduce the problem in any of my other test programs for unknown reasons. I would like to not publicly post an executable of our entire game here, but I can provide a binary by email for reproducing. Testing is a bit complicated as I am using the LWJGL binding of GLFW, but if something needs testing I can probably figure it out.
Thank you for your time!

@theagentd, if you can only reproduce it only on this particular program, you can't just share your executable and expect people to figure out what's happening - it doesn't work like that. You will have to share your sources for someone to be able to find the root cause of the problem. I understand you don't want to share sources, so I suggest narrowing down the problem, like commenting out parts of your code and see if it's still happening.

I was hoping that it'd be possible to debug the program that way, but I will try to narrow down the issue then.


Overriding implicit visibility

In Closure, a child class cannot override visibility of a property with different visibility.
But if the parent visibility is not declared in the jsdoc explicitly (that is treated as @public implicitly if no @fileoverview), the child can change the visibility now.
Is this intentional or bug?
For example:
/**
 * @constructor
 */
app.Foo = function() {};

/**
 * @return {string}
 * @public
 */
app.Foo.prototype.explicitPublic = function() {
  return 'explicitPublic!';
};

/**
 * @return {string}
 */
app.Foo.prototype.implicitPublic = function() {
  return 'implicitPublic!';
};

/**
 * @constructor
 * @extends {app.Foo}
 */
app.Bar = function() {};

/**
 * Correct: `WARNING - Overriding PUBLIC property of app.Foo.prototype with PRIVATE property.`
 *
 * @override
 * @private
 */
app.Bar.prototype.explicitPublic = function() {
  return 'explicitPublic!';
};

/**
 * No warnings! Intentional?
 *
 * @override
 * @private
 */
app.Bar.prototype.implicitPublic = function() {
  return 'implicitPublic!';
};

Repro:

playground
https://github.com/teppeis-sandbox/closure-compiler-sandbox/tree/override-visibility

Also I found such cases in Closure Library, but it does not appear to be intentional.

Created internal Google issue b/121377215

Thanks for pointing this out @teppeis

@brad4 The following should be fixed at the same time.

goog.ui.BidiInput.prototype.createDom
goog.ui.MenuButton.prototype.handleBlur
goog.ui.Palette.prototype.setContentInternal


HOFF-731-Medium-security-vulnerability-icasework-resolver-aws-sdk-dependency

What

Medium-security-vulnerability-icasework-resolver-aws-sdk-dependency - HOFF-731

Why

Medium security vulnerability was seen in aws-sdk-dependency.

How

updated aws-sdk version to ^2.1354.0 to resolve vulnerabilities
updated node engine
updated yarn.lock
updated hof version to 20.0.0
updated  "knex": "2.4.0"
updated .snyk file
image created '1206eea5c4af9eb7597ceb7d1b89a63aa7268d23 was added to modern slavery' and tested

Testing

tests passing locally

Can you get the testers to do regression testing? If it passes then I'd be happy to approve and merge it


Allow organize column

Hi,
I would to know if it was planed to organize column like under TeemIP tool ?
It will be much appreciate I think.
Thanks in advance.
Thomas V.

Do you mean rearranging the order of columns in the table? Why would it matter? If you want to export objects in a different format, you can always create a custom export template.

Hi,
Yes, to choose which column display and the order.
Thanks :-)

Hello,
Just wanted to chime in here.  Picking which columns to display would certainly be helpful in the case that you have important custom fields.  For instance, for circuits we have designated 'primary' 'secondary' 'tertiary' circuits, so I created a Priority custom field.  Since I don't use tenants for circuits, that field is unused and wasted space in the listing of circuits, but I would love to be able to see at a glance which circuits are primary and backups.
Thanks

+1 for what @mryauch said.

I would love to see this feature, too.

Is this currently on track for a release?

Originally I was interested in this feature, but honestly at this point I'm interacting with the API and making my own web interfaces to display this information anyways.  I'm going the Flask route and using Netbox as a source of documentation, then interacting with the environment to compare documentation to reality.
In the circuit example I used before I'm planning on a circuit page that would grab all of the circuits in Netbox and display their BGP status and confirm if they're configured to be the 'primary' 'secondary' etc.

I think this is still hugely beneficial for those that would rather have everything in a single site instead of directing users to another site for some data and Netbox for others.  I believe this makes sense as part of the core product.

Absolutely, it would certainly be nice to glance at Netbox and be able to see how everything is configured, but I was just illustrating on why it's not personally as important to me anymore.
This actually reminded me of how Docker allows you to set the format of commands with a simple json template.
# cat ~/.docker/config.json
{
  "psFormat": "table {{.Names}}\\t{{.Image}}\\t{{.Status}}"
}

# dps
NAMES               IMAGE                 STATUS
netbox_nginx_1      nginx:1.11-alpine     Up 13 days
netbox_app_1        netbox_app            Up 13 days
netbox_postgres_1   postgres:9.6-alpine   Up 13 days

I'm thinking just setting a template or picking columns via the Admin panel would be sufficient, but I could see some power users wanting to be able to set columns themselves.

That template isn't a bad idea.  It looks like a form of Jinja2.  I can see doing something like this to create the template and save it as a view could work.  If you take the Templating feature from Grafana and put that at the top of the view, the end user can select things like the prefix or VLAN of what they're interested in and reuse the same view to display that new data.
Also, when exporting from that view, the CSV file output would match the columns displayed on the screen.  We really need this to display custom fields in with our external to internal NATS.
Grafana Templating Example

My two cents here, we too have a use case involving custom fields and it would be really useful for us to customize default views. For example in the IP Addresses view we usually have three empty or "not really used" columns (NAT, Parent, Interface) but it would really help us to see the custom "fqdn" field.
As a case of columns customization we are already enjoying I'd bring the example of Redmine:

the default issues view
the same view with customized columns

In Redmine you can edit which columns to see and in what order directly from the page and they get encoded in the URL, while for our NetBox use case (and IMHO for the vast majority of people) it could probably be enough to configure columns from the admin interface.

Blocked by #3294

+1 for this. We're automatically storing ansible facts into custom fields on the hosts. Would be great to choose these fields as display columns when on the devices/ virtual machines view

@havedill I have implemented rendering of customfields in our own local netbox fork, and having more then 2-3 customfield columns is not something that you want to go to right now with how the CF:s is structured internally inside the database. The lookups and data fetching through django-tables is horrible in those scenarios and it makes the table rendering horrible slow. Yes i know there is probably a much faster way to render the column and prefetch the data then what i do, which is basically that i use a template column and a class method on the model to get up the CFV for that model object. So for a table with 50 rows, it would make 50 looksup to render one single column and scale that up with more rows and more columns and the performance will drop like a stone in water.

Hi guys!
How's it going with this issue? Does anyone work on this? If anyone does, I could help you.

Hi everyone!
We are very interesting of this feature. We'll want to make a special universal wrapper for all lists in netbox that could be configure from django admin panel for all users. Is it suitable conception or not?

Blocked by #3294


⚠ Bofrost.fr has degraded performance

In 989e436, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1587 ms

Resolved: Bofrost.fr performance has improved in 6ebef86 after 7 minutes.


Proxy support for other official repositories

Theoretically, we could support other official repositories, such as for example:

https://wpackagist.org/

This would be great, e.g. also for https://packages.drupal.org/8


Drip Notifications Experiment

Task/Issue URL: https://app.asana.com/0/1125189844152671/1169851185874169
Tech Design URL:
CC:
Description:
This PR adds different variants to test drip notifications campaigns for users that have been inactive for one day.
Steps to test this PR:
Note: Change all the times in AndroidNotificationScheduler from 1 day to 10 seconds or so.
DRIP A1

Hardcode to use variant zc
Launch the app twice.
Kill the app and wait ~10 seconds
A notification should show saying "How anonymous is DuckDuckGo?" and "Learn why DuckDuckGo is better than Incognito." with "Show Me" as a button.
Pixel mnot_s_a1 should be sent
Tap on the notification
Pixel mnot_l_a1 should be sent
You should be taken to https://spreadprivacy.com/how-anonymous-is-duckduckgo
After ~10 seconds the clear data notification should show

DRIP A2

Hardcode to use variant zd
Launch the app twice.
Kill the app and wait ~10 seconds
A notification should show saying "Tired of being tracked online? We can help." and "Learn how DuckDuckGo keeps you private." with "Show Me" as a button.
Pixel mnot_s_a2 should be sent
Tap on the notification
Pixel mnot_l_a2 should be sent
You should be taken to https://spreadprivacy.com/how-does-the-duckduckgo-app-extension-protect-my-privacy
After ~10 seconds the clear data notification should show

DRIP B1

Hardcode to use variant ze
Launch the app twice.
Kill the app and wait ~10 seconds
A notification should show saying "Customize your app icon." and "Visit settings to choose a different icon theme." with "Try It Out" as a button.
Pixel mnot_s_b1 should be sent
Tap on the notification
Pixel mnot_l_b1 should be sent
You should be taken to the Customize Icon activity.
You should be able to use the back button/arrow to navigate back to settings and the browser.
After ~10 seconds the clear data notification should show

DRIP B2

Hardcode to use variant zf
Launch the app twice.
Kill the app and wait ~10 seconds
A notification should show saying "Instantly clear tabs & browsing data." and "Simply tap the Fire Button by the address bar." with "Try It Out" as a button.
Pixel mnot_s_b2 should be sent
Tap on the notification
Pixel mnot_l_b2 should be sent
You should be taken to the app's home screen
After ~10 seconds the clear data notification should show

Control group

Hardcode to use variant za
Launch the app twice.
Kill the app and wait ~10 seconds
The usual privacy notification should show
Tap the notification
After ~10 seconds the clear data notification should show

Null control group

Hardcode to use variant zb
Launch the app twice.
Kill the app and wait ~10 seconds
No notifications should be shown

Other variants

Change the weight of all variants to 0 so we will get the default variant
Launch the app twice.
Kill the app and wait ~10 seconds
The usual privacy notification should show
Tap the notification
After ~10 seconds the clear data notification should show

Internal references:
Software Engineering Expectations
Technical Design Template

Thanks for the review @malmstein. Some further amends after a product review just got merged in case you want to have another look. The commit is https://github.com/duckduckgo/Android/pull/786/commits/c8873e7e73c3c9aea4e6d4e705a7981adb91bea0
To test you can test only one notification:

Change all the times in AndroidNotificationScheduler from 1 day to 10 seconds or so.
Hardcode to use variant zc
Launch the app twice.
Kill the app and wait ~10 seconds
A notification should show saying "How anonymous is DuckDuckGo?" in the title and "Learn why DuckDuckGo is better than Incognito." as the content and "Show Me" as a button.
Make sure the first line of the content is visible when you get the notification.


⚠ ClamAV has degraded performance

In 35794b1, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 48 ms

Resolved: ClamAV performance has improved in ca3808a.


If the request already has the scope, don't fetchToken again

AuthorizeRequest() injects the 'pull' scope if from is set unconditionally. If the current token already has that scope, it will be inserted into the scope list twice and addedScopes will be set to
true, resulting in a new token being fetched that has no net new scopes.
Instead, check whether additionalScopes are actually new.
Signed-off-by: Clayton Coleman<EMAIL_ADDRESS>

LGTM


🐛 Sessions error starting server.js

Describe the bug
Server run until I go to http://localhost:3000/, then there's an error named 'secret option required for sessions.'
To Reproduce
Steps to reproduce the behavior:

Go to my house.
Start my computer.
(etc)
npm run start or or npm run start :dev or npm run server.
Go to http://localhost:3000/.

Expected behavior
Webpage is viewable.
Screenshots

After going to http://localhost:3000/ webpage:

The webpage shows this error too:

Desktop (please complete the following information):

OS: Windows 10
Browser: FireFox
Terminal: Ubuntu

Additional context
Added the env file to the folder before starting the server.

Pull new changes from Github.
(pull (retrieves new changes and merge in the local files)
or Fetch All (retrieve new changes, doesn't manipulate or change files (safest option))).

Try completely restarting the server.
(Anything after $ should be a typed prompt)

in terminal running node: key shortcut ctrl + c
npm run start

Let me know if it fixes anything. If not, comment and I will try to solve it on my pc.

Thanks for the suggestion! To be sure: I need to pull from remote dev branch to my local dev branch, right?
After doing that, the resave option error is gone, but the other still remains:

Didn't think it was relevant earlier, but better safe than sorry: before npm run start, I need to do npm install otherwise I get this error:

Thanks for the suggestion! To be sure: I need to pull from remote dev branch to my local dev branch, right?
After doing that, the resave option error is gone, but the other still remains:

Didn't think it was relevant earlier, but better safe than sorry: before npm run start, I need to do npm install otherwise I get this error:

Aha, the node_modules weren't installed after pulling development.
Does the issue secret option required for sessions. persist?

Yeah, after npm install I still got this error:

The current issue indicates that the application wants to connect to a MongoDB database that is run locally which in turn refuses as there is no local MongoDB

Ah, so I díd have to do something with mongoDB? Or is there another way I could start the project, so I can work on the CSS of our app?

Only thing to do with mongoDB is that it runs. Current version of the development branch relies on MongoDB to setup session.
Check if .env still contains the following:
SESSION_SECRET=LUIGI
DB_NAME=shreks
MONGO_URL=mongodb+srv://bommezijn:bommezijn1@bt-dating-yddzz.mongodb.net/shreks?retryWrites=true&w=majority

Yeah check. I have the exact code in the .env. Unfortunately. still the same result...

.....................................................env


Fix set-cookie response value check

Allow a single set-cookie binary as a response header value
(assuming the value is a list occurs when it isn't a binary)

I don't think this is a good idea because single header values can legitimately be iolists.

@essen Yes, the source code was written to only accept iolists for the set-cookie header value while other header values are able to be iodata.  The fix was to ensure all header values were able to be iodata, to be more consistent.

No the way it works is that set-cookie as a header breaks the HTTP spec, and there has to be one set-cookie header line per cookie. It can't be concatenated like other HTTP headers. So Cowboy has to handle set-cookie specially and internally Cowboy treats the set-cookie value as a list of cookies. Individual cookies are iodata(). You should not treat set-cookie as a normal header but instead call set_resp_cookie.
There's a separate ticket that I will work on soon that will change the code to explicitly reject a set-cookie header and redirect the user to the appropriate function, and I think another to make it simpler for proxies to convert their responses into appropriate calls.


[TE] Enable Merge For Two Sided SignTest

Add isMergeable logic to time based merge model. By comparing two anomalies' detection properties and decide if mergeable.

This PR is a better fix version that can overwrite https://github.com/linkedin/pinot/pull/1454


CSV export improvements

The previous CSV export functionality did not deal well with different form revisions or with fields like multiple choice. Also, a couple of the field types in the editor (Date and Editor) seem to be broken, so they've been disabled.
Additionally, the data tab has been revised to only include the NDT test results, and not the survey test results. With the changing surveys, different entries could have different fields and the table layout could easily get out of control. Survey results are still fetchable through the API or the CSV export (the download link text has been revised to indicate more clearly that all survey results can be gotten via the CSV).
To test, revise the form, run the survey with the new form, and ensure all fields are in the CSV.

This change is

LGTM!


[incubator/sparkoperator] Support podAnnotations

Signed-off-by: Sam Clinckspoor<EMAIL_ADDRESS>What this PR does / why we need it:
Support adding custom annotations to the operator pod
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[X] DCO signed
[X] Chart Version bumped
[X] Variables are documented in the README.md
[X] Title of the PR starts with chart name (e.g. [stable/chart])

/assign @liyinan926

@SamClinckspoor Please fix the merge conflicts and bump the version number to 0.3.0.

@yuchaoran2011 done

/ok-to-test

/lgtm


modify: public .htaccess follow REQUEST_SCHEME when rewriting

Description
Explain what you have changed, and why.
Checklist:

[x] Securely signed commits
[ ] Component(s) with PHPDoc blocks, only if necessary or adds value
[ ] Unit testing, with >80% coverage
[ ] User guide updated
[x] Conforms to style guide

Ref https://httpd.apache.org/docs/trunk/mod/mod_rewrite.html#rewritecond

The purpose of the block is "# Rewrite "www.example.com -> example.com"", but additionally the scheme is changed to http. This makes requests to https://www.example.com translate to http://example.com which is wrong because a HTTPS only server cannot serve this request.
The mistake may be hidden by a few ways:

the server is HTTP only
the server is HTTP only, but the frontend is served using specialized tools (i.e. cloud tools) which are able to change incoming HTTPS to HTTP and outgoing HTTP to HTTPS
the server is able to serve both HTTP and HTTPS
production .htaccess has additional statements which change HTTP to HTTPS

Why do requests to https://www.example.com/ translate to http://example.com/ with RewriteCond %{HTTPS} !=on?
	# Rewrite "www.example.com -> example.com"
	RewriteCond %{HTTPS} !=on
	RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
	RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

My mistake. I'm going to close this PR. It seems your intention is to do the rewriting only for non-https requests which is different from my approach.
Can you please tell me to which branch I should make a pull request for a proposed new feature of CodeIgniter? (which most probably requires changes). Is it develop?

It is not my intention, but the current .htaccess is like that.
Now 4.5 branch is for new features.
develop is only for bug fixes.

Actually it makes sense: protect www for non-https. Thank you very much.


Spec cleanup

Fixes #6015

Updated CreditDisplay Scene and CesiumWidget to properly remove elements they've added to the DOM
Updated CreditDisplaySpec to destroy after each test
Fixed a few spots where we we calling createScene but not destroyForSpecs

@emackey

@hpinkos, thanks for the pull request! Maintainers, we have a signed CLA from @hpinkos, so you can review this at any time.
:warning: I noticed that CHANGES.md has not been updated. If this change updates the public API in any way, fixes a bug, or makes any non-trivial update, please add a bullet point to CHANGES.md and comment on this pull request so we know it was updated. For more info, see the Pull Request Guidelines.

I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome.
:earth_africa: :earth_americas: :earth_asia:

No need for CHANGES since this is new.  Still waiting for Travis to finish.


Datagrid is truncated in IE11.

Select one ...  (check one with "x")
[x] bug
[ ] feature request
[ ] enhancement

Expected behavior

Actual behavior
I encounter a problem in IE11. When the data of the datagrid is less, the table shows well:

but when I add text it is truncated:

I didn't reproduce this issue in Firefox and chrome, I guess this issue is related to https://github.com/vmware/clarity/issues/1150
Reproduction of behavior

Include a link to the reproduction scenario you created by forking one of the Clarity Plunker Templates:

Environment details

Angular version: 4.1.3

Clarity version: 0.10.27

OS and version: Win7

Browser: IE 10

As you pointed out, this is a duplicate of #1150 which is being worked on right now. Please follow that issue for updates, we have a team member already working on a fix for it (among other fixes).


requirements.txt - Python dependency resolution stops with an error

365.9 WARNING: jsonschema 4.1.0 does not provide the extra 'format-nongpl'
365.9 WARNING: jsonschema 4.0.1 does not provide the extra 'format-nongpl'
365.9 WARNING: jsonschema 3.2.0 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.5.1 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.5.0 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.4.0 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.3.3 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.3.2 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.3.1 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.3.0 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.2.1 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.2.0 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.1.2 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.1.1 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.1.0 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 4.0.1 does not provide the extra 'format-nongpl'
366.0 WARNING: jsonschema 3.2.0 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.5.1 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.5.0 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.4.0 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.3.3 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.3.2 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.3.1 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.3.0 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.2.1 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.2.0 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.1.2 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.1.1 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.1.0 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 4.0.1 does not provide the extra 'format-nongpl'
366.2 WARNING: jsonschema 3.2.0 does not provide the extra 'format-nongpl'
366.3 WARNING: jsonschema 4.5.1 does not provide the extra 'format-nongpl'
366.3 WARNING: jsonschema 4.5.0 does not provide the extra 'format-nongpl'
366.3 WARNING: jsonschema 4.4.0 does not provide the extra 'format-nongpl'
366.3 WARNING: jsonschema 4.3.3 does not provide the extra 'format-nongpl'
366.3 WARNING: jsonschema 4.3.2 does not provide the extra 'format-nongpl'
366.3 WARNING: jsonschema 4.3.1 does not provide the extra 'format-nongpl'
366.3 WARNING: jsonschema 4.3.0 does not provide the extra 'format-nongpl'
366.4 INFO: pip is looking at multiple versions of pickleshare to determine which version is compatible with other requirements. This could take a while.
366.4   Downloading pickleshare-0.4.tar.gz (11 kB)
366.4   Preparing metadata (setup.py): started
366.6   Preparing metadata (setup.py): finished with status 'error'
366.6   error: subprocess-exited-with-error
366.6
366.6   × python setup.py egg_info did not run successfully.
366.6   │ exit code: 1
366.6   ╰─> [11 lines of output]
366.6       Traceback (most recent call last):
366.6         File "", line 2, in
366.6         File "", line 34, in
366.6         File "/tmp/pip-install-40xfnxrc/pickleshare_118f0a7d8a57465088b38d568a6c39b0/setup.py", line 3, in
366.6           import pickleshare
366.6         File "/tmp/pip-install-40xfnxrc/pickleshare_118f0a7d8a57465088b38d568a6c39b0/pickleshare.py", line 41, in
366.6           from path import path as Path
366.6         File "/tmp/pip-install-40xfnxrc/pickleshare_118f0a7d8a57465088b38d568a6c39b0/path.py", line 724
366.6           def mkdir(self, mode=0777):
366.6                                   ^
366.6       SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
366.6       [end of output]
366.6
366.6   note: This error originates from a subprocess, and is likely not a problem with pip.
366.6 error: metadata-generation-failed
366.6
366.6 × Encountered error while generating package metadata.
366.6 ╰─> See above for output.
366.6
366.6 note: This is an issue with the package mentioned above, not pip.
366.6 hint: See above for details.
366.7
366.7 [notice] A new release of pip is available: 23.0.1 -> 23.2.1
366.7 [notice] To update, run: pip install --upgrade pip
failed to solve: process "/bin/sh -c pip3 install --no-cache-dir -r requirements.txt     && rm requirements.txt" did not complete successfully: exit code: 1

Executed command: docker-compose up -d
-In VSCode/ a PowerShell terminal on Windows 11.

@max-85 I needed to change the 51 line in aio/Dockerfile ... I added  --use-deprecated legacy-resolver to solve this problem.

@max-85 I needed to change the 51 line in aio/Dockerfile ... I added --use-deprecated legacy-resolver to solve this problem.

Can you export a more descriptive requirements file? I am struggling to make the dependencies work.


84 - Add .all-contributorsrc file to the Website repo

Ticket(s)
Addresses ticket #84
Issue
Add .all-contributorsrc to the website repository.
Scope
Is not visible to site users, but is visible when someone looks at the repository.
Work Done

Added file .all-contributorsrc file
Used relevant contributors' information from the .all-contributorsrc file in the docs repository.

TODOs

Need to collect the rest of the contributors' info (contributors listed on the website Github repository)
Need to ask about other contributions which are not code-related, and add these to the file.
Need to integrate the file into the Readme, as per All Contributors documentation

And...A bolt of lightning contains enough energy to toast 100,000 slices of bread. :bread: :laughing:

we won't merge this, as the web site doesn't need this file


New tab immediatly close

Version: 1.0.88
Platform: win32 10.0.17134
Plugins: none
I can't open new tabs on terminus. It's closing in a second. Does not matter which one i'm using (powershell/cmd etc). Can't do a thing, and switching terminals in settings does not seems to change something. Can't use terminus.

Please capture DevTools console logs at the time of the issue: https://github.com/Eugeny/terminus/wiki/Debug-logs


Update for 1.3.3

Some new items, couple of new tiles, new banners and music box, file version update

Awesome.. I didn't even know there was an update.


feat: Added Categories

Fixed #89 and #123
https://github.com/code100x/daily-code/assets/136337515/9e256667-6d13-4acc-a0d1-497985f666f5

hey @hkirat
Please let me know if you need any further adjustments or have additional tasks.
https://github.com/code100x/daily-code/assets/136337515/a2b13337-d6b0-4990-b613-e7c315f16719

@ShubhamMewara One suggestion, instead of making a row of categories try to make a dropdown button if possible. UI will look better imo.


Style1 tables in Optimize tab converted to Patternfly

Parent issue: #3139
Before:

After:

Before:

After:

@dclarizio Please review

@epwinchell please verify and ack

@romanblanco Please, update the selects to use bootstrap-select styling.

@epwinchell updated, thanks.

@romanblanco The selects need the "select picker" class not "form-control" like is used here: https://github.com/ManageIQ/manageiq/pull/3828 @PanSpagetka or @skateman can help.

@epwinchell updated

@dclarizio Good to go


Samples (python/teams/search) fail due to the disabled XMLRPC Search feature

Context
For more information, see the parent issue. #3436
Sample information

Sample type: Samples
Sample language: python
Sample name: 50.teams-messaging-extension-search and 52.teams-messaging-extensions-search-auth-config

Describe the bug
The Bots throw an error due to the disabled feature PyPI's XMLRPC API. For the current status, see https://status.python.org/.
The Bots failed when communicating through MS Teams.

Bots
Status

samples/python/50.teams-messaging-extension-search
• The Bot fails due to PyPi XMLRPC Search being disabled.  • Fails due to, RuntimeError: PyPI's XMLRPC API is currently disabled due to unmanageable load and will be deprecated in the near future. See https://status.python.org/ for more information.

samples/python/52.teams-messaging-extensions-search-auth-config
• The Bot fails due to PyPi XMLRPC Search being disabled.  • Fails due to, RuntimeError: PyPI's XMLRPC API is currently disabled due to unmanageable load and will be deprecated in the near future. See https://status.python.org/ for more information.

Expected behavior
Being able to communicate with the bot in through MS Teams
Actual behavior
Fails due to the XMLRPC disabled feature.

Is there any update on this issue?


Add raw values operation

Codecov Report

Merging #152 (21d109d) into main (6668d30) will decrease coverage by 0.27%.
The diff coverage is 63.63%.

@@            Coverage Diff             @@
##             main     #152      +/-   ##
==========================================
- Coverage   58.46%   58.18%   -0.28%
==========================================
  Files          51       52       +1
  Lines        2949     2992      +43
==========================================
+ Hits         1724     1741      +17
- Misses       1113     1137      +24
- Partials      112      114       +2

Flag
Coverage Δ

unittests
58.18% <63.63%> (-0.28%)
:arrow_down:

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

Impacted Files
Coverage Δ

pkg/pipeline/utils/convert.go
18.18% <18.18%> (ø)

pkg/pipeline/encode/encode_prom.go
81.85% <59.09%> (+0.77%)
:arrow_up:

pkg/pipeline/extract/aggregate/aggregate.go
95.12% <100.00%> (+0.25%)
:arrow_up:

pkg/test/utils.go
82.22% <100.00%> (-0.20%)
:arrow_down:

pkg/pipeline/ingest/ingest_kafka.go
85.85% <0.00%> (ø)

pkg/pipeline/decode/decode_json.go
90.90% <0.00%> (+0.43%)
:arrow_up:

Continue to review full report at Codecov.

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

@KalmanMeth @eranra Please pay attention to the added documentation. Is it clear enough?


Improved the real test coverages, autocreate the topic when it doesn't exist.

Mainly test improvements.

@gainward
I'd like you to review this CL.
I improved the test coverage (adding tests and removing pragmas). Also I realized that the thread safety code in get_pubsub_client() is not necessary, because pubsub_handler just serializes the input, and the API calls are blocking.

Coverage remained the same at 100.0% when pulling ffd5fb30f114fde1ff8ed139fdfcfe137d927c29 on tmatsuo:improve-tests into f15770a91a2038c411961624d19c841de52cf7ac on GoogleCloudPlatform:master.

The tests successfully run in local. I encrypted the service account JSON key with travis command, but in the travis container, the environment variables for decryption aren't injected.
@gainward I think you did a similar setup in the past. Did you encounter a similar issue?
Thanks!

@gainward never mind. The secure environment variables are not available for builds by pull requests from another repo. So I need to move it to a branch in the same repo in order to the travis build to work.
Sorry about it, but can we move the discussion to https://github.com/GoogleCloudPlatform/cloud-pubsub-logging-python/pull/12


Change separator between patch number and commit count

Assuming your project is at version 1.2.3 commits after the last patch change append .N where N is the number of commits after the patch update.
It would be good if we could change the separator from . to some arbitrary value so that this update becomes more meaningful. For example:
versioner {
 buildSeparator = '-SNAPSHOT-'
}

Would give versions with 1.2.3-SNAPSHOT-14.
It also allows for the possibility of inserting other information at build time, such as the branch name. For example:
versioner {
 buildSeparator = "-${project.getProperty('branch-name')}-"
}

When gradle is invoked as following:
export BRANCH=$(git rev-parse --abbrev-ref HEAD | tr -d '\n' | sed -e 's/\//-/g' -e 's/feature/ft/g')
./gradlew -Pbranch-name=${BRANCH} -q printVersion

When run in a branch with name feature/wowee, you would get the following output:
1.2.3-ft-wowee-14

This should have been fixed by #9, which ought to handle this kind of flexibility.
Please re-open if this does not meet your needs


Product Construction is Inefficient

Currently, product construction is inefficient, appending vectors repeatedly. I have some ideas for better ways to do that, but I want to track that here in case I forget to do that.

It is now efficient :)


Export and Import in SHP cuts date cells

From:

To:

Not sure if this ever worked as expected. Checking steps from API export through import.

According to wikipedia, datetime is not supported by SHP format:
http://en.wikipedia.org/wiki/Shapefile

Supported field types are: floating point (13 character storage), integer (4 or 9 character storage), date (no time storage; 8 character storage), and text (maximum 254 character storage)

More on this:
http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf

Attributes are held in a dBASE® format file.

With a 2-row sample table:
$ file untitled_table_13*
untitled_table_13.cpg: ASCII text, with no line terminators
untitled_table_13.dbf: DBase 3 data file (2 records) <---
untitled_table_13.prj: ASCII text, with no line terminators
untitled_table_13.shp: ESRI Shapefile version 1000 length 78 type Point
untitled_table_13.shx: ESRI Shapefile version 1000 length 58 type Point
untitled_table_13.zip: Zip archive data, at least v2.0 to extract

Seems like DBase 3 did not support dates: http://www.fileformat.info/format/corion-dbase-iii.htm
http://www.dbase.com/KnowledgeBase/int/db7_file_fmt.htm

D	Date	8 bytes - date stored as a string in the format YYYYMMDD.

It was a 'known problem', closing this...


MRI.jl no longer present

Hi, in your instructions for using SWI, you indicate using MRI.jl but it looks like you have changed that name to MriResearchTools. Your Project and Manifest files on this project both indicate to use MRI as well as the instructions in your readme file.  Maybe consider changing this?
thanks!

Thanks! I will fix it soon.
I plan to completely update this package in the coming weeks and also rename it to ClearSwi.jl. We presented CLEAR SWI at the ISMRM and are currently publishing the corresponding paper.

awesome, looking forward to the changes!

The package is updated now.
I still want to refactor and clean up some code and add some documentation, but it should work now


Fix color issues in Downloads dropdown

Summary
Fix hover style of download list in dark mode and other minor UI changes
Ticket Link
https://mattermost.atlassian.net/browse/MM-47772
Screenshots
https://recordit.co/I50w0pbdnf
Release Note
NONE

Cherry pick is scheduled.


When a mobile phone is connected, dhcpcd is used. After arp is broadcast, announce is sent less than once

When the dhcpcd5.2.10 version is used, no ip address is assigned when I connect to the mobile phone. After the carrier lost occurs after the lease is transferred to the ip address, the wireshark is used to capture the packet and check the log. When the ip address is allocated normally, the carrier lost packet is sent twice, and when an exception occurs, only one announce packet is sent. It should be certain that two announce packets are sent, but only one is sent in the log. Please help me analyze why only one announce packet is sent. Thank you
log：
行 8426: Apr 11 05:21:50.1583.158247 dhcpcd[5056]: wlan0: waiting for carrier
行 8439: Apr 11 05:21:50.4739.473458 dhcpcd[5056]: wlan0: carrier acquired
行 8442: Apr 11 05:21:50.5358.535728 dhcpcd[5056]: wlan0: broadcasting for a lease
行 8443: Apr 11 05:21:50.5805.580333 dhcpcd[5056]: wlan0: offered <IP_ADDRESS> from <IP_ADDRESS>
行 8458: Apr 11 05:21:50.6085.608440 dhcpcd[5056]: wlan0: acknowledged <IP_ADDRESS> from <IP_ADDRESS>
行 8459: Apr 11 05:21:50.6972.697043 dhcpcd[5056]: wlan0: checking for <IP_ADDRESS>
行 8477: Apr 11 05:21:55.4824.477025 dhcpcd[5056]: wlan0: leased <IP_ADDRESS> for 3599 seconds
行 8478: Apr 11 05:21:55.4824.479524 dhcpcd[5056]: wlan0: open: Read-only file system
行 8479: Apr 11 05:21:55.4825.479647 dhcpcd[5056]: write_lease: Read-only file system
行 8491: Apr 11 05:21:57.5028.502671 dhcpcd[5056]: wlan0: carrier lost
wireshark log：

dhcpcd-5.2.10 is pretty old and very much unsupported. Can you try something newer like dhcpcd-10.0.6 please?


Server data not reactive anymore in runes mode

Describe the bug
In runes mode
let {data} = $props()

returns data which is not bindable to eg. input elements etc.
afaik this worked before and its also working when using 'let mode'
Reproduction
import type { PageServerLoad } from './$types';

export const load = (async ({params}) => {
    return {name: params.name};
}) satisfies PageServerLoad;

<script lang="ts">
    let {data} = $props()

</script>

<p>{data.name}</p>
<input type="text" bind:value={data.name} />

Logs
No response
System Info
I dont get output since I'm using pnpm, help appreciated

Severity
annoyance
Additional Information
No response

Regarding the system info, simply replace npx with pnpm dlx command.
pnpm dlx envinfo --system --binaries --browsers --npmPackages "{svelte,@sveltejs/*,vite}"


Added support for srcset attributes in discoverRegex

Fixes #237 and supersedes #239. Sorry about the coup @mertenhanisch, but I thought the easiest solution would be for me to implement the whole thing

@fredrikekelund Hey, I won't complain. Thank you, sir!


Day279

Resolves #566.

Pull Request Test Coverage Report for Build 1050

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

Totals

Change from base Build 1039:
0.0%

Covered Lines:
5

Relevant Lines:
5

💛  - Coveralls


Post data fails

When I try to execute post by the following code,then it $response->getBody() gives me a stream Object.How to get the json/response from this object?
if ($method == "POST") {
$client = new GuzzleHttp\Client();
$request = $client->createRequest('POST', $url);
$request->addHeader('Accept', $contentTypeValue);
if($access_type!=NULL && $access_token!=NULL){
$this->setTokenAsHeader($request, $access_type, $access_token);
}
if($dataAsJson!=NULL){
$stream = GuzzleHttp\Stream\Stream::factory(htmlentities($dataAsJson));
$request->setBody($stream);
}
$response = $client->send($request);
}
Alternatively if I donot use stream and just do it with the following code
if ($method == "POST") {
$client = new GuzzleHttp\Client();
$request = $client->createRequest('POST', $url);
$request->addHeader('Accept', $contentTypeValue);
if($access_type!=NULL && $access_token!=NULL){
$this->setTokenAsHeader($request, $access_type, $access_token);
}
if($dataAsJson!=NULL){
$request->setBody($dataAsJson);
}
$response = $client->send($request);
is giving me
Argument 1 passed to GuzzleHttp\Message\AbstractMessage::setBody() must implement interface GuzzleHttp\Stream\StreamInterface, string given
Please help

When I try to execute post by the following code,then it $response->getBody() gives me a stream Object.How to get the json/response from this object?

This will give you the JSON data: $response->json();
Your second example does not work because you are providing an array and the function expects a stream. You should instead provide an array to the "json" option when creating a request:
$request = $client->createRequest('POST', $url, ['json' => ['foo' => 'bar']]);


Parsing error

Aws::Xml::Parser::ParsingError
XML declaration allowed only at the start of the document
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/xml/parser/stack.rb:45:in `error'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/xml/parser/engines/nokogiri.rb:39:in `error'
/usr/local/bundle/gems/nokogiri-1.10.5/lib/nokogiri/xml/sax/parser.rb:110:in `parse_with'
/usr/local/bundle/gems/nokogiri-1.10.5/lib/nokogiri/xml/sax/parser.rb:110:in `parse_memory'
/usr/local/bundle/gems/nokogiri-1.10.5/lib/nokogiri/xml/sax/parser.rb:83:in `parse'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/xml/parser/engines/nokogiri.rb:13:in `parse'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/xml/parser.rb:34:in `parse'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/rest/response/body.rb:43:in `parse'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/rest/response/body.rb:23:in `apply'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/rest/response/parser.rb:32:in `extract_body'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/rest/response/parser.rb:12:in `apply'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/rest/handler.rb:9:in `block in call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/seahorse/client/response.rb:45:in `block in on'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/seahorse/client/http/response.rb:144:in `block in on_success'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/seahorse/client/http/response.rb:171:in `block in listener'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/seahorse/client/http/response.rb:135:in `on_done'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/seahorse/client/http/response.rb:142:in `on_success'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/seahorse/client/response.rb:44:in `on'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/rest/handler.rb:9:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/plugins/user_agent.rb:13:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/plugins/endpoint_pattern.rb:28:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/plugins/endpoint_discovery.rb:78:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/seahorse/client/plugins/endpoint.rb:45:in `call'
/usr/local/bundle/gems/aws-xray-sdk-0.10.2/lib/aws-xray-sdk/facets/aws_sdk.rb:31:in `block in call'
/usr/local/bundle/gems/aws-xray-sdk-0.10.2/lib/aws-xray-sdk/recorder.rb:120:in `capture'
/usr/local/bundle/gems/aws-xray-sdk-0.10.2/lib/aws-xray-sdk/facets/aws_sdk.rb:28:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/plugins/param_validator.rb:24:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/seahorse/client/plugins/raise_response_errors.rb:14:in `call'
/usr/local/bundle/gems/aws-sdk-s3-1.57.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:22:in `call'
/usr/local/bundle/gems/aws-sdk-s3-1.57.0/lib/aws-sdk-s3/plugins/dualstack.rb:26:in `call'
/usr/local/bundle/gems/aws-sdk-s3-1.57.0/lib/aws-sdk-s3/plugins/accelerate.rb:35:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:20:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/plugins/idempotency_token.rb:17:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/plugins/param_converter.rb:24:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/aws-sdk-core/plugins/response_paging.rb:10:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/seahorse/client/plugins/response_target.rb:23:in `call'
/usr/local/bundle/gems/aws-sdk-core-3.82.0/lib/seahorse/client/request.rb:70:in `send_request'
/usr/local/bundle/gems/aws-sdk-s3-1.57.0/lib/aws-sdk-s3/client.rb:1110:in `copy_object'

Hi himberjack,
Is this the full stack trace? It looks like the call is failing in the AWS SDK not the X-Ray SDK. There seems to be something wrong with the call itself?
Here's the line of code at the bottom of the stack trace:
https://github.com/aws/aws-sdk-ruby/blob/master/gems/aws-sdk-s3/lib/aws-sdk-s3/client.rb#L1110

@awssandra It happens only after I added the xray sdk to the ruby!

Hi himberjack,
Very interesting! Sorry to hear about the issue. Can you possibly supply a small snippet to repro the issue?
Thanks!
Sandra

S3.copy_object(
bucket: 'xxxx',
copy_source: "xxxx/yyyy",
key: 'zzzzzzz'
)
On Wed, Dec 4, 2019 at 2:32 PM Sandra McMullen<EMAIL_ADDRESS>wrote:

Hi himberjack,
Very interesting! Sorry to hear about the issue. Can you possibly supply a
small snippet to repro the issue?
Thanks!
Sandra
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/aws/aws-xray-sdk-ruby/issues/40?email_source=notifications&email_token=AAX634KXTP5MYUPCX5WN5C3QXAAUPA5CNFSM4JUBS46KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEF6HFAI#issuecomment-561803905,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAX634JSYMIFNF6LRV2I2GDQXAAUPANCNFSM4JUBS46A
.

Hi himberjack,
Can you show us the snippets how/where you are using this call to S3? Where you are importing the SDK? Are you running in Lambda or non-Lambda?

Closing this for now. Feel free to reopen.

I'm looking into this now - trying to get a reproduction but haven't been able to yet.
One workaround is to switch the XML engine you are using - some of them are more forgiving than others.  Based on the stacktrace, it looks like you have nokogiri loaded.  If you add ox to your Gemfile, the AWS SDK will pick it up and use ox as the engine and it is a bit more forgiving and is able to parse the xml from the stack trace you included.