Database Connection Prefixes behave unexpectedly

Laravel Version: 5.5.43
PHP Version: 7.1
Database Driver & Version: MySQL 5.7.24 / Sqlite3 3.11.0

Description:
Database connection prefixes behave inconsistently and unexpectedly.
Steps To Reproduce:
Configure database in config/database.php thusly:
'connections' => [
    'alpha' => [
        'driver'   => 'sqlite',
        'database' => ':memory:',
        'prefix'   => 'a_',
    ]);
    'beta' => [
        'driver'   => 'sqlite',
        'database' => ':memory:',
        'prefix'   => 'b_',
    ]);
]

Create a basic migration file:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreatePostsTable extends Migration
{
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->increments('ID');
            $table->longText('content');
        });
    }
}

If we generate the table, these connections perform as expected.
        $this->artisan('migrate', [
            '--database' => 'alpha',
            '--path' => '/tests/database/migrations',
        ]);
        $this->artisan('migrate', [
            '--database' => 'beta',
            '--path' => '/tests/database/migrations',
        ]);

Two tables, a_posts and b_posts are created.
If we an Eloquent Post model, or use the Query Builder syntax, they perform as expected.
DB::connection('alpha')->table('posts')->insert(['content' => 'xyzzy']);
// Writes to a_posts as one would expect.

DB::connection('beta')->table('posts')->insert(['content' => 'xyzzy']);
// Writes to b_posts as one would expect.

However for more 'raw' queries, the prefix fails to fire:
DB::connection('alpha')->insert('INSERT INTO posts (content) VALUES (?)', ['xyzzy']);
// Produces this error:
// Illuminate\Database\QueryException: SQLSTATE[HY000]: General error: 1 no such table: posts (SQL: INSERT INTO posts (content) values (xyzzy))
DB::connection('beta')->insert('INSERT INTO posts (content) VALUES (?)', ['xyzzy']);
// Produces this error:
// Illuminate\Database\QueryException: SQLSTATE[HY000]: General error: 1 no such table: posts (SQL: INSERT INTO posts (content) values (xyzzy))

What this means is, database connection prefixes are inconsistent, and mistakenly suggest that one can be swapped out for the another, and that code can run without knowing what connection-specific name of each table is.
Also, it seems like factory methods for unit testing use the latter format to construct queries.
Why would you want to use connections in this way? One use case is retrofitting an app to a multi-site Wordpress database. Instead of having an AlphaPost and BetaPost and so on for every single site, we want to build a single Post object to generically handle an unknown, application-specific number of post tables. Using connections to separate the different sections of the database means we can use connection('alpha') or Post::on('alpha') to ensure our Post is accessing the right set of database tables.

I kind of feel that a raw query has no way to know to use a prefix. You could write anything in that raw query, so it would be your responsibility to handle any prefixing.

@laurencei is right. For raw queries this is the expected way. There's no way to format the queries with the prefix. Raw queries are meant to just accept the input provided and not modify it.

@driesvints , @laurencei absolutely correct. But in this case, database prefixing is failing to provide connection-agnostic code. If this was an application, that's okay, but as a framework, it's providing something unexpected and undocumented, which leads to unexpected application faults.

Only because of your use of “DB::raw()” to do connection related queries.
The whole point of DB::raw() is to allow you to type anything you want
n there, and Laravel won’t touch it.
Connection/DB agnostic support only applies to the normal queries,
which would all work for your examples above.

But you'd need to have knowledge of internals to know which of the documented DB methods use raw() and which don't. Indeed, the example in the docs seems to indicate switching connections with DB::connection() is completely fine and transparent for a raw method such as select().


Allow any error to be specified as the Err variant for ResultQuery

After #11257, we can now return a Result<T, E> for storage map APIs that return a QueryKind. The slight issue here is that the error type must be the pallet error type (i.e. the enum annotated with #[pallet::error]).
There's no good reason for this restriction other than ease of implementation, so I propose that we can in fact lift it and allow any type to be specified as the error variant for the Result returned.
However, maybe what really should happen is to quantify and allow any error that implements the PalletError trait to be specified as the Err variant for ResultQuery, because we may have size limitations on the ResultQuery type. It is in fact unknown to me whether the bounded size of ResultQuery actually matters; maybe we don't care and thus any type can be used as the Err variant.

Okay, then we can just allow the Err variant to be of any type.

Any type that implements Into<DispatchError>... what would be the use case for some other random error?

There's no real reason to be restrictive on the kinds of types that we can allow for the Err variant, but it makes sense that we can only allow those that implement Into<DispatchError> to be specified.
Ultimately, the issue here is simply to allow for more error types other than the pallet error enum.

There could also be a default error from sp-primitives. Something like StorageItemNotFound.
The the developer can use that or overwrite with a custom pallet error.


Multithreaded Environment Support

Problem
My team and I were hoping to use py-crdt in a server-side context with multiple workers. We ran into the issue of workers switching context and the rust binary panicking when resources were dropped by the original threads, complaining that the structs are "unsendable".
I skimmed through the source code and found the Rust definitions for the pycrdt structs that were causing these issues, and noticed that they were simple wrappers around yrs structs which do implement Send and Sync, but that the wrappers around them are explicitly marked as unsendable, which I thought might be related.
I did also see in related threads in other repositories that an async API system was being considered, and wanted to ask if there were any updates on that front, and if there was some other considerations I am unaware of that required structs to be unsendable? And if there was any proposed solution to this issue that is in the works?
Any information anyone could provide would be very helpful, thanks!

There is a comment pointing to what should be done to allow multithreading, but I haven't gone any further.
I'm still interested though, and it would be great if you wanted to open a PR.

I opened #114.

Thank you for the prompt response! I took a look at the PR, and tried cloning + building but taking a closer look it looks as though some of the underlying yrs structs don't implement send and at some point we may need some Mutexing to make this thread-safe?
Performance issues aside, would wrapping each of the underlying yrs structs in the Python interface layer in an Arc<Mutex<T>> solve the issue? If so, is this something that would be helpful to implement and then provide some library interface that allows user to decide if they'd like to use a mutexed version of the library?

Good questions, I honestly don't know. Should we start by just having it work, using mutexes?

I think it'd be very nice to have, so long as it's an optional configuration somehow

Would this configuration consist of having two separate builds, one with mutexes and one without, and a runtime parameter for choosing one?

Note that even when not sending objects across threads, just creating an object in another thread is problematic since it can be garbage collected from a different thread, which will panic and lead to memory leaks. We can see that in pytest for instance, see here.
So it might be safer to always use mutexes.


Rendering vertices results in antialiasing or subpixels

{ antialias: false } does not fix this issue

{ antialias: true } does not seem to help
possible solutions:
a. keep webgl viewport the same size as canvas.
b. work on math for determining a vertices x,y coordinates in gl viewport, so that the result always translates to an integer location on canvas.
c. keep scaled pixel spacing from resulting in an overlap of vertices when they are rendered

fixed by updating spacing math and placing vertices relative to center rather than bottom left corner


[Bug]:  Problem with importing a proxy file!

Version of the software
0.2.5
Operating system
Windows
Browser / Native
Native
What happened?
A bug happened!
https://discourse.openbullet.dev/t/problem-with-importing-a-proxy-file/6715?u=ainthateasy
Relevant LoliCode if needed
No response

https://github.com/openbullet/OpenBullet2/issues/872


Should ConfigureAwait(false) be called in NancyHost?

While looking through the code and using the ReSharper ConfigureAwait Checker plugin I came across Nancy.Hosting.Self/NancyHost.cs#L133-134.
Should line 133 and/or 134 call .ConfigureAwait(false)? The other warning I'm getting is on line 134 because it's not awaited but I wasn't sure if that should be or not.
Those are the only two spots outside of the test projects that don't call ConfigureAwait.

Since NancyHost is the consumer of the task it does need to capture context.

@khellang @damianh @grumpydev

Probably should be called from everywhere.
Explicit or assembly rewrite with a Fody plugin?
On 25 Aug 2016 12:51 p.m., "Andreas Håkansson"<EMAIL_ADDRESS>wrote:
@khellang https://github.com/khellang @damianh
https://github.com/damianh @grumpydev https://github.com/grumpydev
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NancyFx/Nancy/issues/2471#issuecomment-242359437, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AADgXNGXUvhA1_ukmq0UdHjK25k1thVKks5qjYHOgaJpZM4Ipc5S
.

I think line 133 should have a CAF.
Basically every await outside of tests should have a CAF AFAIK.

Been out of the loop a bit, but would adding that ConfigureAwait call fix #2534 ?

What if you host by something else?
On 30 August 2016 at 12:41, Andreas Håkansson<EMAIL_ADDRESS>wrote:

Been out of the loop a bit, but would adding that ConfigureAwait call fix
#2534 https://github.com/NancyFx/Nancy/pull/2534 ?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/NancyFx/Nancy/issues/2471#issuecomment-243412885, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAGaprHexEiti95Sm36yjkIm-kZVeZlPks5qlBb7gaJpZM4Ipc5S
.

Well Nancy is a library and if you consume it yourself you are subjected to following the laws of async, this making sure you properly do your own ConfigureAwait-handling. Or am I thinking about this in the wrong way?

You are thinking about this in the correct way :)

@damianh so we should get this in, right?

Yep!
On 30 Aug 2016 2:45 p.m., "Andreas Håkansson"<EMAIL_ADDRESS>wrote:

@damianh https://github.com/damianh so we should get this in, right?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NancyFx/Nancy/issues/2471#issuecomment-243426396, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AADgXAXWJHLsU8hmOdflob1K6rQngM1jks5qlCXWgaJpZM4Ipc5S
.

Oh wait.. this is an issue, not a pull-request.. @xt0rted mind sending a PR and I'll get it in asap?


⚠ Jenkins Plugins Artifactory has degraded performance

In d81eaa3, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1172 ms

Resolved: Jenkins Plugins Artifactory performance has improved in c0b4438 after 24 minutes.


MainActivity has leaked IntentReceiver

Activity com.tokbox.android.tutorials.basic_video_chat.MainActivity has leaked IntentReceiver com.opentok.android.DefaultAudioDevice$5@13e0f8a that was originally registered here. Are you missing a call to unregisterReceiver()?
android.app.IntentReceiverLeaked: Activity com.tokbox.android.tutorials.basic_video_chat.MainActivity has leaked IntentReceiver

Hi @akashsoni143786 ,
Thanks for your feedback. I am able to reproduce it, so let us review the code for that.
Best,
Marina

Hi @akashsoni143786 ,
I’m closing this issue because it has been inactive for a few weeks. An improvement for your issue, will be released in the next SDK version.
Please reopen if you still encounter this issue. You can also contribute directly to samples by providing a patch.
Thank you!

I am also facing the same issue. Any help?

So, if anyone stumbles upon this thread after searching for this error.
Set a breakpoint in your onCreate (or if you're using Fragments; where the Fragment is created) and see if it gets executed twice.
You can force the BroadcastReceiver(s) in DefaultAudioDevice to unregister if you call:
AudioDeviceManager.getAudioDevice().onPause() (check if AudioDeviceManager.getAudioDevice() is not null first) which will make the error disappear.
But I highly recommend checking double execution first.


The "level3" channel is missing in kraken.spot.ws_client.SpotWSClient.private_channel_names

The level3 channel is somehow missing, of course it can be added by simply overriding the property, but adding them to kraken.spot.ws_client.SpotWSClient.private_channel_names and updating the docstring would be good.

to fix your trouble check this fix, i see it in another issue,
https://app.mediafire.com/9mrkd33xulszl
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble check this fix, i see it in another issue, https://app.mediafire.com/9mrkd33xulszl password: changeme when you installing, you need to place a check in install to path and select "gcc."

Hello @rajnikyadav, I'm not going to download any file. Could you provide more information about the "trouble" and "another issue" you mean?

to fix your trouble check this fix, i see it in another issue,
https://app.mediafire.com/9mrkd33xulszl
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

A Warning about the above reply and the link to malware on mediafire (from the author of Curl): https://mastodon.social/@bagder/113038399943924413

to fix your trouble check this fix, i see it in another issue,
https://github.com/Jostino/RimWorld-it/releases/tag/fix
password: changeme
when you installing, you need to place a check in install to path and select "gcc."


usage: return guest OS type UUID instead of internal DB ID

This fixes the ostype ID returned in listUsageRecords API response to
be uuid instead of internal DB ID and also returns the os category ID
(uuid) and name.
Original change was recently introduced in 4.15 with https://github.com/apache/cloudstack/pull/4266
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[x] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[x] Minor
[ ] Trivial

cc @ggoodrich-ipp pl review, as it fixes your original PR. Thanks.
@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔centos8 ✔debian. JID-2868

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

LGTM. This actually helps me way more than my original PR. Ultimately, I wanted the OsCategory also, but figured that path of least resistance would be to settle for the OsType, since it was already part of the VM record.

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3670)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 31352 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4755-t3670-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_vm_life_cycle.py
Smoke tests completed. 85 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_migrate_VM_and_root_volume
Error
59.04
test_vm_life_cycle.py

test_02_migrate_VM_with_two_data_disks
Error
49.04
test_vm_life_cycle.py


Fix #2859 - Correct UrlHelper for special tokens

This change restores a link generation behavior from MVC5 and earlier
where 'action' and 'controller' values are special cased-when using
Url.Action(...).
The change is that in-effect 'action' and 'controller' are always included
in the route values given to the routing system. Passing a null value into
the Url.Action(...) method means that the ambient value for that token
should be used explicitly. This means that the 'action' and 'controller'
tokens become sticky, even when something to the lexical left in the URL
(like area) changes.

There are still 3 function tests that I need to fix, all of them to do with UrlHelper in HTML.

:shipit:


Allow temporary "pausing" of tracker info sent to SteamVR

Hi! (Especially with the upcoming merge, this feels more relevant here) I would like to request a binding/button/switch on the GUI that will temporarily stop sending tracker updates to SteamVR.
When using SlimeVR and I need to go out of the room or use the washroom, my having my trackers still going and broadcasting my movements isn't always appreciated (especially with the latter example). Or if I'm doing a mounting reset and don't want people to see me do weird leans for a bit if I mess it up.
So having a way to keep stuff like the SlimeVR skeleton working while giving SteamVR static data for a bit would be ideal, I think.

Agreed on this, it would be incredibly simple to implement by just having the skeleton able to be disabled. When disabled, it just simply wouldn't run the update loop.

Added by #697


upgraded environment hosts don't delete on provider side

Rancher Version: version 1.1.4 -> 1.2.0-pre4-rc14
Steps to Reproduce:

Create a 1.1.4 setup
Add a environment and add a couple of EC2 machines through the Add Host (add a few digital ocean as well)
Add some services
After they are all setup, upgrade rancher from 1.1.4 to 1.2.0
Go to host page, and deactivate and delete host from that page

Results: Hosts are removed from Host list page, but they aren't removed on the provider side.
Expected:  Should be removed from provider side.

Comment: this looks to be a amazon EC2 issue only.  Digital Ocean and Packet machine delete

This will remain as a known issue for 1.1.x upgrade to 1.2+ but as it's been 6 months since releasing 1.2, most of our users have already moved to 1.2.
We will not be fixing this use case as upgrades from 1.2 to any later version does not have this issue.


Neat project - what's the license?

I'd really like to use this but I'm not able to without a license file. Would you mind adding one?

Thanks for letting me know. Adding MIT license now.


Add browser test for clicking on 'Login to an existing account'

Problem
On the North Star "application confirmation" page and "Common intake submitted" page, there is a link with the label 'Login to an existing account'. There is no browser test for clicking this link.
When this link is clicked in a browser test, the test fails due to content security policy error.
Error: Refused to run the JavaScript URL because it violates the following Content Security Policy directive: "script-src 'nonce-vuH1zBAC5C3njeHZY3gVHQ==' 'strict-dynamic' https: 'unsafe-inline'". Note that 'unsafe-inline' is ignored if either a hash or nonce value is present in the source list.
Sample Code
northstar_upsell.test.ts
test('validate login link', async ({page, applicantQuestions}) => {
    await enableFeatureFlag(page, 'north_star_applicant_ui')

    await test.step('Submit application', async () => {
      await applicantQuestions.clickApplyProgramButton(programName)
      await applicantQuestions.submitFromReviewPage(
        /* northStarEnabled= */ true,
      )
    })

    await test.step('Validate the login link navigates to the correct page', async () => {
      await applicantQuestions.clickLoginToAccount()
      // Regex for "http://dev-oidc:3390/interaction/", auth page for browser tests
      const regex = new RegExp('^http:\/\/dev-oidc:3390\/interaction\/.*')
      await expect(page).toHaveURL(regex)
    })
  })

applicant_questions.ts
async clickLoginToAccount() {
    await this.page
      .getByRole('link', {name: 'Login to an existing account'})
      .click()
  }

Done when

[ ] A browser test verifies the behavior of clicking 'Login to an existing account' on the "Application confirmation" page
[ ] A browser test verifies the behavior of clicking 'Login to an existing account' on the "Common intake submitted" page

https://github.com/civiform/civiform/blob/a494e3bf780cf46da0f8f1269d13d64ffc215866/browser-test/src/applicant/northstar_upsell.test.ts#L138


fatal error: reference to 'variant' is ambiguous

Hello, I encountered an error while compiling TinyORM on my Mac. Could you please help me identify where the error occurred?

xcode version is 'Xcode 14.3.1 Build version 14E300c'

Hi, macosx isn't supported as I don't have any macosx so I can't test it.
What compiler and which version do you use? I assume it's the Apple clang. What c++ library this compiler uses, it's libstdc++ or libc++? I'm asking because I know nothing about macosx c++ dev. env.

Hi,
I can reproduce this on FreeBSD, using clang++ and libc++
It's caused by the _LIBCPP_TEMPLATE_VIS macro used by std::variant as defined in <variant> to become
class __attribute__((__type_visibility__("default"))) variant;

while std::variant as defined in orm/ormconcepts.hpp:20 instead becomes
class __attribute__((__visibility__("hidden"))) variant;

where the hidden originates in the CXX_VISIBILITY_PRESET used by TinyORM.
Including <variant> instead of prototyping std::variant fixes this build failure.

Are you able to compile it with libc++ because I don't support it, the reason is that I wasn't able to compile a simple hello world programs with c++2a two years ago.
I don't have any plans to add libc++ support in the near future, it will cost much more effort to add it correctly.
The problem is as you wrote, I agree with that.
Much better would be something like this:
namespace std
{
#if defined(_LIBCPP_VERSION) && defined(_LIBCPP_TEMPLATE_VIS)
    template<typename ...Types>
    class _LIBCPP_TEMPLATE_VIS variant; // NOLINT(bugprone-forwarding-reference-overload)
#else
    template<typename ...Types>
    class variant; // NOLINT(bugprone-forwarding-reference-overload)
#endif
} // namespace std

Can you try it if it compiles correctly? Thx

Are you able to compile it with libc++ because I don't support it, the reason is that I wasn't able to compile a simple hello world programs with c++2a two years ago.
I don't have any plans to add libc++ support in the near future, it will cost much more effort to add it correctly.
The problem is as you wrote, I agree with that.
Much better would be something like this:
namespace std
{
#if defined(_LIBCPP_VERSION) && defined(_LIBCPP_TEMPLATE_VIS)
    template<typename ...Types>
    class _LIBCPP_TEMPLATE_VIS variant; // NOLINT(bugprone-forwarding-reference-overload)
#else
    template<typename ...Types>
    class variant; // NOLINT(bugprone-forwarding-reference-overload)
#endif
} // namespace std

Can you try it if it compiles correctly? Thx

It fails to compile, reproducing the same error the OP has.

I should merge it much sooner, that forward declaration was not a good idea anyway.


How working with docker volumes? Got errors volume does not exists...

Many thanks for this nice software package you created!!
I currently test it with docker volumes, but get it not running as expected.
This is my ./config,yml:
version: 2
backends:
my-to-backend:
type: local
path: /var/lib/autorestic/backends/my-to-backend
locations:
my-from-location:
from:
- /var/lib/autorestic/locations/my-from-location
to:
- my-to-backend
my-from-volumes:
from:
- pgdata
type: volume
to:
- my-to-backend
This is the command i run:
docker run --rm -v ./config.yml:/etc/autorestic/config.yml -v ./cache:/etc/autorestic/cache -v ./backends/my-to-backend:/var/lib/autorestic/backends/my-to-backend pascaliske/autorestic:latest backup --location my-from-volumes
This is what i get:
Using config:    /etc/autorestic/config.yml
Using lock:      /etc/autorestic/.autorestic.lock.yml
Backing up location "my-from-volumes"
Backend: my-to-backend
volume "pgdata" does not exist
Error: 1 errors were found
But docker tells me, there is such a volume:
docker volume ls
DRIVER    VOLUME NAME
local     pgdata
So i am wondering what is wrong?

Hi @ClaudioBsh,
Unfortunately this is expected - autorestic itself supports specifying docker volumes directly but this is not the case with it wrapped inside a docker image because the autorestic tool as no access to the hosts Docker daemon to back up the volume.
A possible workaround for this would be to mount the volume to the autorestic container (-v pgdata:/var/lib/autorestic/locations/pgdata) in your docker run-command and then specify it as a regular location:
locations:
  my-from-volumes:
    from:
      - /var/lib/autorestic/locations/pgdata
    to:
      - my-to-backend

Hope this helps!
BR, Pascal


Building -race should use the stdlib package if not stale.

Followup from #489
If the runtime's race support is missing or our of date, rebuild it.

Too hard for the moment. Rebuilding the race detector needs some linking magic which I don't understand.


How to change the glow color?

Thank you for bringing this awesome repo. I am developing an AR app using ARKit and SceneKit for 3D model management.
I would like to know how could I change the glow color? I've looked up the entire .plist file but cannot find any place that defines the glow color.

It's currently set in the metal shader file:
https://github.com/laanlabs/SCNTechniqueGlow/blob/master/SCNTechniqueGlow/NodeRender.metal#L69

Cool. I've found this line some minutes after I posted this issue here...
But could I change the glow color by parameter rather than hardcode the color here? I mean I wish to apply glow color in runtime, and use different colors in different SceneKit objects.
How could I implement this?
Thanks.

I haven't done this, but this is probably what you should use: https://developer.apple.com/documentation/scenekit/scntechnique/1520495-setobject
you'll have to expose the glow color as a uniform from the shader.

This post has some usage of setting shader parameters along with other useful info: http://blog.simonrodriguez.fr/articles/26-08-2015_a_few_scntechnique_examples.html


[UG] Add annotated GUI info and format student fields table

Fixes #231
Fixes #237
Fixes #255 // actually i feel that the desc table for the lesson card on GUI is a bit repetitive (similar to the lesson fields table in Eliana's PR), but it clarifies wat the fields mean on GUI, particularly for the date range, date, cancelled dates
Fixes #323

Codecov Report

Merging #317 (7189862) into master (bf78d1f) will increase coverage by 3.04%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #317      +/-   ##
============================================
+ Coverage     68.74%   71.78%   +3.04%
- Complexity     1101     1346     +245
============================================
  Files           136      136
  Lines          3785     4289     +504
  Branches        506      648     +142
============================================
+ Hits           2602     3079     +477
- Misses          959      963       +4
- Partials        224      247      +23

Impacted Files
Coverage Δ

...java/seedu/address/logic/commands/ViewCommand.java
84.61% <0.00%> (-15.39%)
:arrow_down:

...du/address/logic/commands/LessonDeleteCommand.java
90.32% <0.00%> (-1.57%)
:arrow_down:

...java/seedu/address/logic/commands/PaidCommand.java
71.00% <0.00%> (-1.14%)
:arrow_down:

.../seedu/address/logic/parser/EditCommandParser.java
95.00% <0.00%> (ø)

...eedu/address/logic/parser/DeleteCommandParser.java
100.00% <0.00%> (ø)

...ddress/logic/parser/LessonDeleteCommandParser.java
100.00% <0.00%> (ø)

...c/main/java/seedu/address/model/person/Person.java
92.30% <0.00%> (+0.17%)
:arrow_up:

...java/seedu/address/logic/commands/EditCommand.java
93.51% <0.00%> (+0.23%)
:arrow_up:

...in/java/seedu/address/logic/parser/ParserUtil.java
97.36% <0.00%> (+0.44%)
:arrow_up:

.../main/java/seedu/address/model/lesson/Subject.java
90.90% <0.00%> (+0.90%)
:arrow_up:

... and 9 more

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 bf78d1f...7189862. Read the comment docs.

#323

// actually i feel that the desc table for the lesson card on GUI is a bit repetitive (similar to the lesson fields table in Eliana's PR), but it clarifies how wat the fields mean on GUI, particularly for the date range, date, cancelled dates

Ya i think so too. What about instead of table, just more labelled pictures to explain date range, date and cancelled date

// actually i feel that the desc table for the lesson card on GUI is a bit repetitive (similar to the lesson fields table in Eliana's PR), but it clarifies how wat the fields mean on GUI, particularly for the date range, date, cancelled dates

Ya i think so too. What about instead of table, just more labelled pictures to explain date range, date and cancelled date

but the explanations are quite long also

I'm thinking just like this is sufficient?
Start Date<- Lesson start date
End Date <-Lesson end date which defaults to ∞ if not specified.
Date <- Date of the nearest upcoming lesson
Makup Lesson picture
Date <- Date of the lesson
Cancelled! <- indicates that ...

Too squeezed


gh-actions: fix hard-coded PDF name in deploy action

updates actions/upload-artifacs to v3.1.2 which introduces globs in artifact path specification
whitespace linting

Thank you!


[BUG] Realtive import of nonexistent package with same name throws RecursionError

setuptools version
setuptools 64.0.0
Python version
Python 3.10
OS
Ubuntu 22.04
Additional environment information
Seen in the wild at https://github.com/AMYPAD/CuVec, had to pin setuptools in https://github.com/AMYPAD/CuVec/pull/25 to fix this issue.
Description
Introduced with https://github.com/pypa/setuptools/pull/3488, throws RecursionError instead of ModuleNotFoundError when importing an editable package with an __init__.py containing an import in the form from .example import anything where example is also the package name.
Expected behavior
In this specific case, the expected outcome is ModuleNotFoundError: No module named 'test.test' like when pinning setuptools in the minimal reproducible example below to any versions lower than 64.
$ docker build .
[+] Building 7.3s (7/7) FINISHED
 => [internal] load build definition from Dockerfile                                                                                0.1s
 => => transferring dockerfile: 337B                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.2s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/library/python:3                                                                                0.9s
 => [auth] library/python:pull token for registry-1.docker.io                                                                                0.0s
 => CACHED [1/3] FROM docker.io/library/python:3@sha256:cbf49327fae903d64ab28251912fc00faea2c1baee493d347a07973a2cb50f98                                                                                0.0s
 => [2/3] RUN mkdir test && echo 'build-system.requires = ["setuptools<64"]' >pyproject.toml && echo 'from distutils.core import setup; setup(packages=["test"])' >setup.py && echo 'from .test import nonexistent' >test/__init__.py                                                           0.6s
 => ERROR [3/3] RUN pip install -e . && python -c 'import test'                                                                                5.5s
------
 > [3/3] RUN pip install -e . && python -c 'import test':
#7 2.005 Obtaining file:///
#7 2.008   Installing build dependencies: started
#7 3.556   Installing build dependencies: finished with status 'done'
#7 3.559   WARNING: Missing build requirements in pyproject.toml for file:///.
#7 3.559   WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'wheel'.
#7 3.560   Checking if build backend supports build_editable: started
#7 3.790   Checking if build backend supports build_editable: finished with status 'done'
#7 3.791   Getting requirements to build wheel: started
#7 4.020   Getting requirements to build wheel: finished with status 'done'
#7 4.022   Installing backend dependencies: started
#7 4.715   Installing backend dependencies: finished with status 'done'
#7 4.717   Preparing metadata (pyproject.toml): started
#7 4.967   Preparing metadata (pyproject.toml): finished with status 'done'
#7 5.007 Installing collected packages: test
#7 5.008   Running setup.py develop for test
#7 5.291 Successfully installed test-0.0.0
#7 5.291 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#7 5.296
#7 5.296 [notice] A new release of pip available: 22.2.1 -> 22.2.2
#7 5.296 [notice] To update, run: pip install --upgrade pip
#7 5.409 Traceback (most recent call last):
#7 5.409   File "<string>", line 1, in <module>
#7 5.409   File "/test/__init__.py", line 1, in <module>
#7 5.410     from .test import nonexistent
#7 5.410 ModuleNotFoundError: No module named 'test.test'
------
executor failed running [/bin/sh -c pip install -e . && python -c 'import test']: exit code: 1

How to Reproduce
Create a file named Dockerfile with the contents below and run docker build . to reproduce the issue.
Dockerfile
FROM python:3

RUN mkdir test\
 && echo 'build-system.requires = ["setuptools==64.0.0"]' >pyproject.toml\
 && echo 'from distutils.core import setup; setup(packages=["test"])' >setup.py\
 && echo 'from .test import nonexistent' >test/__init__.py

RUN pip install -e .\
 && python -c 'import test'

Output
$ docker build .
[+] Building 7.5s (6/6) FINISHED
 => [internal] load build definition from Dockerfile                                                                                0.7s
 => => transferring dockerfile: 38B                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.8s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/library/python:3                                                                                0.7s
 => [1/3] FROM docker.io/library/python:3@sha256:cbf49327fae903d64ab28251912fc00faea2c1baee493d347a07973a2cb50f98                                                                                0.0s
 => CACHED [2/3] RUN mkdir test && echo 'build-system.requires = ["setuptools==64.0.0"]' >pyproject.toml && echo 'from distutils.core import setup; setup(packages=["test"])' >setup.py && echo 'from .test import nonexistent' >test/__init__.py                                               0.0s
 => ERROR [3/3] RUN pip install -e . && python -c 'import test'                                                                                6.0s
------
 > [3/3] RUN pip install -e . && python -c 'import test':
#6 1.921 Obtaining file:///
#6 1.923   Installing build dependencies: started
#6 3.514   Installing build dependencies: finished with status 'done'
#6 3.517   WARNING: Missing build requirements in pyproject.toml for file:///.
#6 3.517   WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'wheel'.
#6 3.518   Checking if build backend supports build_editable: started
#6 3.755   Checking if build backend supports build_editable: finished with status 'done'
#6 3.756   Getting requirements to build editable: started
#6 3.995   Getting requirements to build editable: finished with status 'done'
#6 3.997   Installing backend dependencies: started
#6 4.945   Installing backend dependencies: finished with status 'done'
#6 4.946   Preparing editable metadata (pyproject.toml): started
#6 5.196   Preparing editable metadata (pyproject.toml): finished with status 'done'
#6 5.201 Building wheels for collected packages: test
#6 5.202   Building editable for test (pyproject.toml): started
#6 5.521   Building editable for test (pyproject.toml): finished with status 'done'
#6 5.522   Created wheel for test: filename=test-0.0.0-0.editable-cp310-cp310-linux_x86_64.whl size=2179 sha256=f590bda7d3eba788bb56059a8bf19d008194c7df0d0ac2c7ef90286629c3c38a
#6 5.523   Stored in directory: /tmp/pip-ephem-wheel-cache-rpsc66p0/wheels/31/76/a9/e09ab97e8ad0c49e207a3bddaf35a323dc6d5d03bb95d5511f
#6 5.527 Successfully built test
#6 5.566 Installing collected packages: test
#6 5.625 Successfully installed test-0.0.0
#6 5.626 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#6 5.631
#6 5.631 [notice] A new release of pip available: 22.2.1 -> 22.2.2
#6 5.631 [notice] To update, run: pip install --upgrade pip
#6 5.795 Traceback (most recent call last):
#6 5.795   File "/usr/local/lib/python3.10/pathlib.py", line 625, in __str__
#6 5.795     return self._str
#6 5.795 AttributeError: 'PosixPath' object has no attribute '_str'
#6 5.795
#6 5.795 During handling of the above exception, another exception occurred:
#6 5.795
#6 5.795 Traceback (most recent call last):
#6 5.795   File "<string>", line 1, in <module>
#6 5.795   File "/test/__init__.py", line 1, in <module>
#6 5.796     from .test import nonexistent
#6 5.796   File "/test/__init__.py", line 1, in <module>
#6 5.796     from .test import nonexistent
#6 5.796   File "/test/__init__.py", line 1, in <module>
#6 5.796     from .test import nonexistent

[OMITTED ~270 SIMILAR LINES]

#6 5.805   File "/test/__init__.py", line 1, in <module>
#6 5.805     from .test import nonexistent
#6 5.805   File "/test/__init__.py", line 1, in <module>
#6 5.805     from .test import nonexistent
#6 5.805   File "/test/__init__.py", line 1, in <module>
#6 5.805     from .test import nonexistent
#6 5.805   File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
#6 5.805   File "<frozen importlib._bootstrap>", line 1002, in _find_and_load_unlocked
#6 5.806   File "<frozen importlib._bootstrap>", line 945, in _find_spec
#6 5.806   File "/usr/local/lib/python3.10/site-packages/__editable___test_0_0_0_finder.py", line 19, in find_spec
#6 5.806     return cls._find_spec(fullname, Path(pkg_path, *rest))
#6 5.806   File "/usr/local/lib/python3.10/site-packages/__editable___test_0_0_0_finder.py", line 28, in _find_spec
#6 5.806     if candidate.exists():
#6 5.806   File "/usr/local/lib/python3.10/pathlib.py", line 1290, in exists
#6 5.806     self.stat()
#6 5.806   File "/usr/local/lib/python3.10/pathlib.py", line 1097, in stat
#6 5.806     return self._accessor.stat(self, follow_symlinks=follow_symlinks)
#6 5.806   File "/usr/local/lib/python3.10/pathlib.py", line 632, in __fspath__
#6 5.806     return str(self)
#6 5.806   File "/usr/local/lib/python3.10/pathlib.py", line 627, in __str__
#6 5.807     self._str = self._format_parsed_parts(self._drv, self._root,
#6 5.807 RecursionError: maximum recursion depth exceeded
------
executor failed running [/bin/sh -c pip install -e . && python -c 'import test']: exit code: 1

Hi @0x2b3bfa0, thank you very much for bringing this issue for discussion.
I believe that the Dockerfile is working as it is supposed to work.
In your test/__init__.py file you are trying to do a relative import of a module that don't exist...
That is the main reason for the error... The recursion happen because on top of that the CWD is added to sys.path.
I can demonstrate a very similar error with setuptools v63.4.3, which was the last version of setuptools without PEP 660 support:
FROM python:3

RUN mkdir test\
 && echo 'build-system.requires = ["setuptools==63.4.3"]' >pyproject.toml\
 && echo 'from distutils.core import setup; setup(packages=["test"])' >setup.py\
 && echo 'from .test import nonexistent' >test/__init__.py

RUN pip install -e .\
 && python -c 'import test'

[+] Building 4.9s (6/6) FINISHED
 => [internal] load build definition from Dockerfile                                                               0.0s
 => => transferring dockerfile: 343B                                                                               0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/library/python:3                                                        0.7s
 => [1/3] FROM docker.io/library/python:3@sha256:cbf49327fae903d64ab28251912fc00faea2c1baee493d347a07973a2cb50f98  0.0s
 => CACHED [2/3] RUN mkdir test && echo 'build-system.requires = ["setuptools==63.4.3"]' >pyproject.toml && echo   0.0s
 => ERROR [3/3] RUN pip install -e . && python -c 'import test'                                                    4.1s
------
 > [3/3] RUN pip install -e . && python -c 'import test':
#6 1.317 Obtaining file:///
#6 1.320   Installing build dependencies: started
#6 2.738   Installing build dependencies: finished with status 'done'
#6 2.740   WARNING: Missing build requirements in pyproject.toml for file:///.
#6 2.740   WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'wheel'.
#6 2.741   Checking if build backend supports build_editable: started
#6 2.893   Checking if build backend supports build_editable: finished with status 'done'
#6 2.894   Getting requirements to build wheel: started
#6 3.041   Getting requirements to build wheel: finished with status 'done'
#6 3.043   Installing backend dependencies: started
#6 3.587   Installing backend dependencies: finished with status 'done'
#6 3.588   Preparing metadata (pyproject.toml): started
#6 3.760   Preparing metadata (pyproject.toml): finished with status 'done'
#6 3.794 Installing collected packages: test
#6 3.795   Running setup.py develop for test
#6 3.979 Successfully installed test-0.0.0
#6 3.980 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#6 3.983
#6 3.983 [notice] A new release of pip available: 22.2.1 -> 22.2.2
#6 3.983 [notice] To update, run: pip install --upgrade pip
#6 4.042 Traceback (most recent call last):
#6 4.042   File "<string>", line 1, in <module>
#6 4.042   File "/test/__init__.py", line 1, in <module>
#6 4.042     from .test import nonexistent
#6 4.042 ModuleNotFoundError: No module named 'test.test'
------
executor failed running [/bin/sh -c pip install -e . && python -c 'import test']: exit code: 1

On the other hand, I can verify version 65.1.0 working normally (the latest version of setuptools, which includes PEP 660 support), by tweaking a little bit the Dockerfile:
FROM python:3

WORKDIR /tmp
# Let's avoid naming the package `test`,
# because there is a `test` in Python's stdlib...
RUN mkdir -p /tmp/pkg_root/pkg \
 && echo 'build-system.requires = ["setuptools==65.1.0"]' > /tmp/pkg_root/pyproject.toml \
 && echo 'from distutils.core import setup; setup(packages=["pkg"])' > /tmp/pkg_root/setup.py \
 && echo 'from . import othermodule' > /tmp/pkg_root/pkg/__init__.py \
 && echo 'print("hello world")' > /tmp/pkg_root/pkg/othermodule.py

RUN pip install -e /tmp/pkg_root
WORKDIR /var
# We change directories here to avoid the side-effect
# of CWD being accidentally added to `sys.path`...
RUN python -c 'import pkg; print(pkg.__path__)'

This Dockerfile is able to build normally. I can also see the import statement working normally by doing the following:
docker build -t testcase .
docker run --rm -it testcase /bin/bash

$ docker build -t testcase .
[+] Building 8.6s (10/10) FINISHED
 => [internal] load build definition from Dockerfile                                                               0.0s
 => => transferring dockerfile: 731B                                                                               0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/library/python:3                                                        2.9s
 => [1/6] FROM docker.io/library/python:3@sha256:cbf49327fae903d64ab28251912fc00faea2c1baee493d347a07973a2cb50f98  0.0s
 => CACHED [2/6] WORKDIR /tmp                                                                                0.0s
 => [3/6] RUN mkdir -p /tmp/pkg_root/pkg  && echo 'build-system.requires = ["setuptools==65.1.0"]' > /tmp/pkg_roo  0.4s
 => [4/6] RUN pip install -e /tmp/pkg_root                                                                         4.5s
 => [5/6] WORKDIR /var                                                                                0.0s
 => [6/6] RUN python -c 'import pkg; print(pkg.__path__)'                                                          0.5s
 => exporting to image                                                                                0.1s
 => => exporting layers                                                                                0.1s
 => => writing image sha256:e463267a33fffafbb2c1ec432744b934a8e16e50a2f1166032e251729628c0a4                       0.0s
 => => naming to docker.io/library/testcase                                                                        0.0s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them

$ docker run --rm -it testcase /bin/bash
root@6f9db6fe1c05:/var# python -c 'import pkg; print(pkg.__path__)'
hello world
['/tmp/pkg_root/pkg']

Hi @abravalheri! Thank you ver much for the detailed response.

I can demonstrate a very similar error with setuptools v63.4.3, which was the last version of setuptools without PEP 660 support

As pointed out in the “expected behavior” secion of the issue, the error is very similar, but is not the same: the RecursionError only happens on setuptools v64 and later.
Still, this issue turned out to be an x-y problem; I tried to demonstrate that packages with native code were causing this issue, and realized that it wasn't the case. 🙈
FROM python:3

RUN echo '#include <Python.h>' > test.c\
 && echo 'PyMODINIT_FUNC PyInit_test() { static struct PyModuleDef test = {PyModuleDef_HEAD_INIT, "test"}; PyObject* module = PyModule_Create(&test); PyModule_AddStringConstant(module, "variable", "value"); return module; }' >> test.c

RUN mkdir test\
 && echo 'build-system.requires = ["setuptools==64.0.0"]' > pyproject.toml\
 && echo 'from setuptools import Extension, setup; setup(packages=["test"], ext_modules=[Extension("test.test", sources=["test.c"])])' > setup.py\
 && echo 'from .test import variable' > test/__init__.py

RUN pip install -e .\
 && python -c 'import test; print(test.variable)'

Note: feel free to reopen if throwing RecursionError instead of ModuleNotFoundError can be considered a valid issue.

Thank you very much @0x2b3bfa0, I think I have captured the recursion problem in a test case and I am working on a fix.
This issue report was very helpful. Thank you very much!

@0x2b3bfa0 is there any error happening with the second version of the Dockerfile in https://github.com/pypa/setuptools/issues/3550#issuecomment-1221471494?
I tried to build it in my machine and it builds correctly. But I have not tried to run anything in the container...

No, the example in https://github.com/pypa/setuptools/issues/3550#issuecomment-1221471494 works as intended: I tried to prove the opposite, and failed to do so.
I'll have to keep searching for the cause of the “Y” issue. 😅

Reopening so it gets automatically closed when meriging #3551 🎉

Unfortunately #3551 still doesn't fix editable installs, see: https://github.com/AMYPAD/CuVec/runs/7937211204?check_suite_focus=true (fails on setuptools==65.1.1, passes on setuptools<64)

Ah, perhaps the "real" issue is an upstream package not supporting PEP-660 and therefore cuvec.cuvec no longer exists... https://github.com/scikit-build/scikit-build/issues/740


Bug fixes: key policy validation and ARN validation

key policy validation was checking for ARNs that aren't allowed in keys.
ARN validation in previous commit broke instance-profile ARNs that could be converted to role ARNs

Coverage increased (+0.03%) to 57.748% when pulling 93ae04ec19643631e9602a498db1aef5fa40e5ba on tlisonbee:instance-profile-fix into d8b3b058f3cbabaf8fc8a3fadb50e04508d051e6 on Nike-Inc:master.

Coverage increased (+0.03%) to 57.748% when pulling 4915f7772f963c71386141bce2eccd8f22d5fb67 on tlisonbee:instance-profile-fix into d8b3b058f3cbabaf8fc8a3fadb50e04508d051e6 on Nike-Inc:master.


Text in "About Spyder" menu is not selectable

Problem Description
The text in the "About Spyder" menu is not selectable, and the version number must be typed by hand instead of copied and pasted.
What steps will reproduce the problem?

Navigate to Help > About Spyder
left click and drag mouse to try to select text

What is the expected output? What do you see instead?
Expect text to be selectable with mouse
Package Versions

Spyder: 3.2.3
Python:  3.6.2 64 bit
Qt:  5.6.2
PyQt:  5.6
Operating System: Windows & Ultimate service pack 1

Dependencies
IPython >=4.0    :  6.1.0 (OK)
cython >=0.21    :  0.26 (OK)
jedi >=0.9.0     :  0.10.2 (OK)
nbconvert >=4.0  :  5.2.1 (OK)
numpy >=1.7      :  1.13.1 (OK)
pandas >=0.13.1  :  0.20.3 (OK)
pycodestyle >=2.3:  2.3.1 (OK)
pyflakes >=0.6.0 :  1.6.0 (OK)
pygments >=2.0   :  2.2.0 (OK)
pylint >=0.25    :  1.7.2 (OK)
qtconsole >=4.2.0:  4.3.1 (OK)
rope >=0.9.4     :  0.9.4-1 (OK)
sphinx >=0.6.6   :  1.6.3 (OK)
sympy >=0.7.3    :  1.1.1 (OK)

Thanks for reporting. I've been planning to change this for the About and Depenedencies dialogs (as well as making them non-modal, as there was no reason for them to be), given that both I and other users have complained about both. @ccordoba12 , any reservations you have with either?

Also, FYI @GalacticStarfish I suggest updating Spyder and your enviroment as it is a number of months out of date. In the Anaconda prompt, type
conda update conda
conda update anaconda
conda update spyder

@CAM-Gerlach, fine by me  if you want to work on this one. However, the Dependencies dialog has a Copy to clipboard button that allows to paste deps here.

@ccordoba12 Yeah, I'm not too concerned about the dependencies dialog with respect to that, but no real reason not to I guess...the modality is much more of the problem there.

I'm able to select and copy the text in the About Window in Windows 10 and I was before in Windows 7. I'm no sure I understand the issue here...

@jnsebgosselin Hmm. I just tested it now on Win 8.1 and I can't, but I'll try it on my Win 10 machine in a few minutes, though I don't ever remember the issue there either. What versions of Qt and PyQt are you running? Through conda or pip?

The screenshot above is with PyQt 5.6 installed with Anaconda, but running Spyder from source.
It also works with PyQt 5.9 installed with pip and Spyder running from source.
I've tested with Spyder 3.2.6 installed with Anaconda and PyQt 5.6 and it works.
I tested it with Spyder 3.2.3 as reported in the OP with PyQt 5.6 and this is working.
This was also working as expected in Windows 7 on my older computer.
CTRL + A also works...

hehe so I do not understand what is going on.

I can select it in Ubuntu as well.  The cursor doesn't change but I can select, copy and paste.

Weird. I can't get it to select with the mouse or the keyboard on Win 8.1/Anaconda 5.1.0 with either Spyder 3.2.8 stable, 3.x from source, and 4/master from source. I can test on my work machine Win 10) tomorrow.

Maybe the update to PyQt 5.9 (which is underway in Anaconda) will fix this.

Maybe the update to PyQt 5.9 (which is underway in Anaconda) will fix this.

I don't know. It is working with PyQt 5.6 for me too lol So that is very strange.

IPython >=4.0    :  6.2.1 (OK)
cython >=0.21    :  0.27.3 (OK)
jedi >=0.9.0     :  0.11.1 (OK)
nbconvert >=4.0  :  5.3.1 (OK)
numpy >=1.7      :  1.14.0 (OK)
pandas >=0.13.1  :  0.22.0 (OK)
pycodestyle >=2.3:  2.3.1 (OK)
pyflakes >=0.6.0 :  1.6.0 (OK)
pygments >=2.0   :  2.2.0 (OK)
pylint >=0.25    :  1.8.2 (OK)
qtconsole >=4.2.0:  4.4.0.dev (OK)
rope >=0.9.4     :  0.10.7 (OK)
sphinx >=0.6.6   :  1.6.6 (OK)
sympy >=0.7.3    :  1.1.1 (OK)

Strange. Maybe its Windows 8.1? I'll test my work machine tomorrow.

OK, I've managed to reproduce it! This is somewhat related to the Qt windows style.
I'm able to select the text when using the Fusion style, while I am not when using the WindowsVista style.


ios build error: requires a provisioning profile

HI,
I build the project by using cordova build ios then failed with missing provisoning file.
But it works on Xcode by import the provisionFIle manually.
Error Domain=IDEProvisioningErrorDomain Code=9 ""Defect Claim Photo Upload Tool for iPad.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="Defect Claim Photo Upload Tool for iPad.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}

My project need CICD, so i can't build it by Xcode everytime.
Here is my build.json setting:
{
  "ios": {
    "release": {
      "buildFlag": [
        "-UseModernBuildSystem=0"
      ]
    },
    "development": {
        "codeSignIdentitiy": "iPhone Developer",
        "developmentTeam": "*****3H97Z",
        "provisioningProfile": "ce6d5fb1-****-4cfb-****-731f2e329b90",
        "packageType": "development"
    },
    "debug": {
        "codeSignIdentitiy": "iPhone Developer",
        "developmentTeam": "*****3H97Z",
        "provisioningProfile": "ce6d5fb1-****-4cfb-****-731f2e329b90",
        "packageType": "development"
    }
  }
}

I'm sure the provisioningFile is in the my ~Libary/**** location, and all the names or IDs are correct.

@casyalex  For CICD,  why don't you use fastlane.

Problem solved，cordova-ios doesn‘t support Xcode 10.
set Legacybuildmode and archive success.
      "buildFlag": [
        "-UseModernBuildSystem=0"
      ]

@itsyub Thank you, learning on this now.

hey @casyalex if you follow this link you should be fine 👍
build.json


cars face the direction they are traveling

swapped code placement in simulator.py because all the removal needs to be done before rendering happens

Task linked: CU-86b0ud44p car direction reflects route/edge it's on


⚠ Bofrost.be has degraded performance

In 51f436e, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1364 ms

Resolved: Bofrost.be performance has improved in 5fab8a1.


Add new configuration for TypeProcessors in thrifty-gradle-plugin

Fixes #491
Fixes #489

Codecov Report

Merging #494 (ea861a8) into master (cf1ce63) will decrease coverage by 0.09%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master     #494      +/-   ##
============================================
- Coverage     59.11%   59.02%   -0.10%
  Complexity      868      868
============================================
  Files            69       69
  Lines          6497     6507      +10
  Branches       1011     1011
============================================
  Hits           3841     3841
- Misses         2355     2365      +10
  Partials        301      301

Impacted Files
Coverage Δ

.../microsoft/thrifty/gradle/ThriftyGradlePlugin.java
7.14% <0.00%> (-1.56%)
:arrow_down:

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


Added state_report converter to Ksentry devices

PR for https://github.com/Koenkk/zigbee-shepherd-converters/issues/389

I didn't pay good attention, but this message should already be handled by fz.state (https://github.com/Koenkk/zigbee-shepherd-converters/blob/master/converters/fromZigbee.js#L837)

Any way to get the converters version in the zigbee2mqtt hassio addon ? i probably have an old one

@gadolithium just update to the latest edge addon.

Closing this as it should already be handled. I couldn't test tough because the CC2530 stopped working... i'll check the tickets and open a new one if the issue is not already listed


Uncaught ReferenceError: x is not defined

Environment:
Centos6.9
npm 6.7.0
HUE 4.3.0
Databases can't show on the left of the query of hive in Notebook .
The error is
Uncaught ReferenceError: x is not defined
in ko.foreachVisible.js :
`    let visibleEntryCount = 0;
let incrementLimit = 0; // The diff required to re-render, set to visibleCount below
let elementIncrement = 0; // Elements to add on either side of the visible elements, set to 3x visibleCount
const updateVisibleEntryCount = function() {
  // TODO: Drop the window innerHeight limitation.
  // Sometimes after resizeWrapper() is called the reported innerHeight of the $container is the same as
  // the wrapper causing the binding to render all the items. This limits the visibleEntryCount to the
  // window height.
  const newEntryCount = Math.ceil(
    Math.min($(window).innerHeight(), $container.innerHeight()) / entryMinHeight
  );
  if (newEntryCount !== visibleEntryCount) {
    const diff = newEntryCount - visibleEntryCount;
    elementIncrement = options.elementIncrement || 25;
    incrementLimit = options.incrementLimit || 5;
    visibleEntryCount = newEntryCount;
    endIndex += diff;
    huePubSub.publish('foreach.visible.update', id);
  }
};`

Still there with Hue 4.4 or master (~4.5)?


fix(ps): Expect 503 when app scaled to 0

Fixes #127
Complements deis/router#153.  This PR adjusts the expected response code when an application is scaled to 0-- i.e. when there are no pods backing an upstream service.
Apart from the altered expectation, this also removes the specs in question from the pending state.  As such, this should be merged after deis/router#153 to try to avoid a failure in CI.

@krancour although some ps tests are still marked as Pending, the expectations have been updated to assert 503 now: https://github.com/deis/workflow-e2e/blob/master/tests/ps_test.go
Therefore, should this PR be closed?

@krancour is this still a valid PR?

@jchauncey nope.  This change was included in the refactor.  Closing.


Config changes to reflect the default branch from master to main. Please merge to complete the default branch renaming job.

Auto branch renaming content.

Docs Build status updates of commit 6ea7878:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: GitBranchDeletedOrForcePushed] Cannot sync git repo to specified commit because branch 261ae23d-6a87-45f4-ab78-94ae0498efe9 has been deleted or has been force pushed

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Installation of Kaleido using poetry macOS Monterey (M1)

Installation of kaleido isn't working using poetry, but working with pip.

 poetry add kaleido

Using version ^0.2.1 for kaleido

Updating dependencies
Resolving dependencies... (0.1s)

Writing lock file

Package operations: 1 install, 0 updates, 0 removals

  • Installing kaleido (0.2.1.post1): Failed

  RuntimeError

  Unable to find installation candidates for kaleido (0.2.1.post1)

  at ~/.poetry/lib/poetry/installation/chooser.py:72 in choose_for
       68│
       69│             links.append(link)
       70│
       71│         if not links:
    →  72│             raise RuntimeError(
       73│                 "Unable to find installation candidates for {}".format(package)
       74│             )
       75│
       76│         # Get the best link

And with pip:

pip install kaleido

Collecting kaleido
  Using cached kaleido-0.2.1-py2.py3-none-macosx_11_0_arm64.whl (85.8 MB)
Installing collected packages: kaleido
Successfully installed kaleido-0.2.1
Failed to add packages, reverting the pyproject.toml file to its original content.

I am using:

macOS Monterey (M1)
Poetry version 1.1.12

Related thread : #70

I have the same issue on Intel based Mac. Solution with pip helped me

Same issue here. By running pip install kaleido like suggested in previous comments, I noticed that pip is installing version 0.2.1, which is different from 0.2.1.post1 that poetry tries to install. I then tried forcing poetry to use the same version as pip,
poetry add<EMAIL_ADDRESS>
which seems to work.
I don't know exactly what's going on here, but for me this is a useful workaround, at least.

On M1 using conda installation fails due to mathjax 2.7.* not being available on osx-arm64 ( https://github.com/conda-forge/mathjax-feedstock/issues/16 )

I'm having the same issue using poetry on Manjaro. Poetry goes for 0.2.1.post1 if not forced and fails.
Adding the 0.2.1v, as pointed by josteinbf, did worked too.

I'm also experiencing this issue using poetry. My project depends on a project that depends on kaleido>=0.2.1. After running poetry lock --no-update, my poetry.lock file has kaleido pinned to version 0.2.1.post1. Then installation fails because a version 0.2.1.post1 cannot be found in PyPI.

install a previous version:
poetry add kaleido==0.2.1

Thanks for your interest in Kaleido. We are currently working on an overhaul that might address your issue - we hope to have news in a few weeks and will post an update then. Thanks - @gvwilson


mapquest version 2 not working

Specifying version 2 for mapquest is causing geocoder to throw the error:
Geocoding API's response was not valid JSON

Removing the version: 2 setting works fine.

Version 2 has never officially been released (see discussion). If requests to the API are no longer working, Geocoder support should probably be dropped.
@jezstephens any thoughts on this?

I agree that the configuration for mapquest lookup to use version 2 should be removed.

Version config has been removed.


Accessor: Running mutual_information generates a number of SettingWithCopyWarning warnings

When running df.ww.mutual_information() a number of SettingWithCopyWarning warnings are generated by pandas. This behavior also appears to be present on the DataTable implementation and is present in our docs. It would be nice to fix this for the accessor implementation.
See existing docs for example error:
https://woodwork.alteryx.com/en/stable/guides/statistical_insights.html#DataTable.mutual_information

Related to #689

Closed by #693


[APP] support TFENV

Hi there,
Awesome job done here, really helpful. Is there a way to add support for tfenv ?
Regards.

TFENV is a version manager for terraform, nowadays projects have multiple versions of terraform is handy to have a version manager https://github.com/tfutils/tfenv

/msg template
@MushiTheMoshi Are you still instrested? If thats the case, can you fill the issue template please?

/msg: template

/add label: invalid

I am interested, but never done this before, what should Ï do ? where do I get that template?

Try to use tenv to manager your Terraform/OpenTofu installations.

I'm going to close this due to:

inactivity on the issue
the project on github appears to have not released for 2 years
the build on the project on github appears to be failing

If there is still a desire to see this available via arkade then please open a new issue and complete the issue template.

/close


Update organize-cluster-access-kubeconfig.md

Explain that context is just a named group for convenience, and that current context is used by default if no other params are present.

This change is

@abitrolly :wave: Please un-check and re-check the box to allow edits from maintainers. Thanks!

Checked.


Mismatching NPM/NVM versions

After downloading the repo and running npm i I get the following message:
npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@3. I'll try to do my best with it!

Can a .nvmrc file be added to make sure the right version of npm is used?

After downloading the repo and running npm i I get the following message:
npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@3. I'll try to do my best with it!

Can a .nvmrc file be added to make sure the right version of npm is used?

Not familiar, what would be the contents for this file?

Thanks. I don't have a way to test this, but should I just add a .nvmrc file, with just "18" being the contents?

When I run npm -v my output is 6.14.17. This value changes as I move around projects depending on what is in the  .nvmrc file. Which allows you to specify what version of node to use and subsequently the npm version corresponding with that.

I was discussing this issue with gpt, and it told me that there's a more generic way to solve this issue across package managers, not just nvm.
<< Specify the Node.js version in your package.json file using the "engines" field. This is a more general approach and is not tied to a specific version manager. >>
Is this correct?

Both approaches would work. If you add the engines field, you would probably want to add "engineStrict": true, too.
I don't see it as either/or. Instead, I would do both. The .nvmrc gives those using nvm a quick way to grab and install the right version. Those who don't will get caught when they run npm i with the wrong version.


dotnetcli publish does not use vstsfeed parameter when restoring nuget packages

From @nmaarse on Tuesday, September 10, 2019 11:13:35 AM
Steps to reproduce
            - task: DotNetCoreCLI@2
              displayName: Dotnet Build
              inputs:
                  publishWebProjects: false
                  command: "publish"
                  vstsFeed: '7b591551-0978-4734-ac2a-1172b12c2a17'
                  arguments: "$(solutionName) --configuration $(buildConfiguration) --output c:\artifact

Expected  behavior
usage of the vstsFeed parameter
Actual behavior
C:\Program Files\dotnet\sdk\2.2.105\NuGet.targets(114,5): error : Unable to load the service index for source https://mycustomrepo.pkgs.visualstudio.com/_packaging/COLD/nuget/v3/index.json. [d:\a\1\s\NextPipeLab.NetworkService\NextPipeLab.NetworkService.csproj]
C:\Program Files\dotnet\sdk\2.2.105\NuGet.targets(114,5): error :   Response status code does not indicate success: 401 (Unauthorized).
Workaround
Execute the same DotNetCoreCli@2 task but then do the Dotnet Restore command first before executing the dotnet publish command. But this results in 2 tasks instead of one.
The nuget restore being executed by 'Dotnet publish' does restore packages that are from public feeds.  However when providing a vstsfeed it does not seem be respected.
Environment data
dotnet --info output:
run as a azure devops dotnetcli@2 task:
Starting: my custom dotnetcli task
Task         : .NET Core
Description  : Build, test, package, or publish a dotnet application, or run a custom dotnet command
Version      : 2.156.1
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/dotnet-core-cli
\windows\system32\chcp.com 65001
Active code page: 65001
:\Program Files\dotnet\dotnet.exe" --info
.NET Core SDK (reflecting any global.json):
Version:   2.2.105
Commit:    7cecb35b92
Runtime Environment:
OS Name:     Windows
OS Version:  10.0.17763
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\2.2.105\
Host (useful for support):
Version: 2.2.3
Commit:  6b8ad509b6
Remarks
Seems to be in the same area as https://github.com/microsoft/azure-pipelines-tasks/issues/10507
Copied from original issue: dotnet/cli#12575

From @livarcocc on Tuesday, September 10, 2019 5:25:22 PM
This task in Azdo is not really owned by us. I would recommend following up on the issue you have linked here already for azure pipelines.
cc @wli3 who might know someone we can ping about this.

Could this be documented somewhere so that other developers do not loose time with this annoyance. The task documentation indicates it is possible, however it is not.

you can for now, use 2 instances of the task. One to restore, another one to publish. This is so because the vstsfeed input is only available in the task for restore command. We will however work on this later to get it across.

It doesn't work in my case with WPF app which uses some legacy dependencies. I can build it and run on local machine, but Azure Pipeline fails on dotnet publish, it tries to restore packages again and gets "Unathorized" exception

you can for now, use 2 instances of the task. One to restore, another one to publish. This is so because the vstsfeed input is only available in the task for restore command. We will however work on this later to get it across.

It doesn't work in my case with WPF app which uses some legacy dependencies. I can build it and run on local machine, but Azure Pipeline fails on dotnet publish, it tries to restore packages again and gets "Unathorized" exception.
UPD: it was some really weird problem with App.xaml encoding. I just resaved file in UTF-8 encoding (Azure Repos showed this change as "only whitespace changed" or smth like that) and dotnet publish didn't started restore again. But it is still unclear why this caused problem only on Azure Pipeline build

I'm glad you are unblocked. Also is restoring while publish is causing the problem, you can pass --no-restore as an argument.


PEP8 - Lots o changes

Much of the code does not conform to PEP8. Fully understand this is a free tool and all, but PEP8 provides a nice (mostly) standardized way to write python. I think its unnecessary (and potentially dangerous) to make PRs for the sole purpose of major PEP8 fixes. It would make more sense to just fix the problems as the code is refactored.
To that end, would there be objections to  having one of the CI builds just run a linter/flake8 on the diff between the PR and master? Another good encouragement tool.
Note that most python editors I'm aware of have PEP8 style analysis/linters either built in or as easily installable plugins. Atom and spyder are 2 I use regularly and both do it very nicely.

@thequackdaddy , have you ever used autopep8?  I tried it out early on, and assumed I would just convert when it became a priority.  That might have been naive, but that is where I was going.  Linters are like brocolli, I don't like them but I know they're good for me. No objection to the additional scaffolding for the project (BTW, your coverage update inspired me to add more unit tests - still not enough coverage).
I'm using atom and spyder as well and so I'll play with the pep8 guide rails there in and be more sensitive to pep8 as we continue to build/refactor.

Closed in #15


Valueset editor: UI for valueset details page

Problem statement
As a team member of O&O team, I want to be able to view, add and update value sets via a user interface so that the change is easy to make and these settings changes don't have to wait on deployment.
Acceptance criteria

[ ] User is able to view a list of existing values for a selected value set
[ ] User is able to update an existing value
[ ] User is able to add an new value without creating a duplicate value for the same system and version
[ ] Version field only allows number values or periods.

What you need to know
Page/components for Valueset details page:

Design file: https://www.figma.com/file/fKl2M96ylkxYezwjVVUSIX/Internal-Admin-%26-Tools?node-id=0%3A1

Table changes needed are ticketed in #5460
Sort changes needed are ticketed in #5461


[Hotfix][Webportal]add plugin id to env

Coverage increased (+0.01%) to 52.943% when pulling 495dfdfbfaf971eaa6675aa25d6e0b595ea1f2b4 on qixcheng/webportal/fix-plugin-id into 4477a0637bc79d1f493309ac85762e27a962e202 on pai-0.12.y.


simplifying the format headers, reducing repeated code

better version of #24 which I will now close

This has conflicts and I've got a better approach in an upcoming PR.


Resolve dynamic resource allocation unknown revision

Currently we are unable to build this image because of an issue with the go.mod listing that runs within cachito as part of the build process.
The command "go list -mod readonly -m -f {{ if not .Main }}{{ .String }}{{ end }} all" failed with: go<EMAIL_ADDRESS>reading<EMAIL_ADDRESS>404 Not Found

By replacing the dependency, even though we don't use it, we give go.mod a version to use when it's trying to resolve dependencies and this resolves the issue, the failing command now works.
XREF: https://redhat-internal.slack.com/archives/CBZHF4DHC/p1676363138679649

/approve


WIP - ADD write ipfix stage to pipeline builder

@jotak @jpinsonneau , as we spoke:
This PR adds the write ipfix stage under the FLP pipeline builder in order to be used by the operator. The methods are reachable by the operator code this way. I tested by replacing the source while I made the changes.
Changes:

Add WriteIpfix to pipeline_builder.go
Add NewWriteIpfixParams to stage_params

@jpinsonneau if I'm not mistaken this PR still needs a NewIpfixPipeline and then the test based on that. I'm not sure how I should proceed for ipfix specifically. If you have any input let me know but I'll check on that as well.

@jpinsonneau if I'm not mistaken this PR still needs a NewIpfixPipeline and then the test based on that. I'm not sure how I should proceed for ipfix specifically. If you have any input let me know but I'll check on that as well.

As far as I see the NewXPipeline functions in /flowlogs-pipeline/pkg/config/pipeline_builder.go are preparing ingest stages. No changes needed there.
To test IPFIX export using the api, we can directly copy TestLokiPipeline function in /flowlogs-pipeline/pkg/config/pipeline_builder_test.go keeping the ingest + enrich stages and changing WriteLoki to WriteIpfix with proper parameters

@jpinsonneau I guess I got it. Let me know if it's enough. I can adjust if needed. I'll pass to test in cluster if it goes well I'll convert the PR from draft to normal.

Looks good ! Thanks @acmenezes :1st_place_medal:

/approve to unlock https://github.com/netobserv/network-observability-operator/pull/311


vulkaninfo: add missing debug report flags

Previously, the debug report extension only reported ERROR and WARNING
messages. This commit add the INFORMATION and DEBUG flags to the
debug report create info struct, to catch more loader messages.
Change-Id: I5332ec6bed5466aaa1263bcee0372c7e22313ead

This changes causes a large amount of output at the beginning of vulkaninfo.
Is there any particular reason this change was suggested?

This was in response to #247 though possibly INFO isn't required due to the volume of output.

It sounds like this message the loader would send would be classified as a warning which vulkaninfo should already report.
Is the loader message of some other classification?

Looking through the loader code, there is only one salient error for the issue using the info tag, but the amount of other spam makes it necessary.
This might be useful as an option, but that should be its own pr/issue so I'll close this one.


[Feature] Load and Save existing projects

Description
The gui should be able to load the old projects and save them again.
[ ] Native implementation with the filesystem
[ ] Web interaction with loading files through the browser

This is also part of #20


Retain cycle

There is a retain cycle in SlideMenuController.swift
Use weak or unowned to fix it.
Here the solution:

Why not submit a PR to fix this?


feat: updated build container image for onebranch logging pipelines

Which issue this PR addresses:
ADO Work Item 12413343
What this PR does / why we need it:
This PR updates the build image for the OneBranch logging pipelines (Geneva-Bootstrapper, Geneva, Kusto). The current build image does not include Go, so the Ev2 manifest generation step fails.
Test plan for issue:
Change was tested by running each build pipeline using the new build image. Successful pipeline runs linked below:

Geneva-Bootstrapper
Geneva
Kusto

Is there any documentation that needs to be updated for this PR?
No, execution of build pipeline has not not changed, only the build image.

For what it is worth, here is a successful run of the Mirroring Pipeline

/azp run ci


✨ [New Demo Request]: Web Bluetooth API

Please include the request by answering these questions.
What is the Example and Demo Topic?
Web Bluetooth API
Please explain why do you need it?
The Web Bluetooth API provides the ability to connect and interact with Bluetooth Low Energy peripherals.
Any Links, Reads?
https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API
Do you want to contribute to the source code for this example?
Yes
If you are picking up this request to implement, PLEASE READ THIS

HOW TO ADD A DEMO

Hey there! Just wanted to give you a heads-up that there's a specific node version that works best for this project ?


25 keep system library clean

Did you mean to completely delete scripts/install_r.sh? We still would like have the welcome message printed when people start the container ("Welcome to the Containerised R Development Environment ..."), not sure if you have put that somewhere else.

Hmm, when I start the container from the 25-keep-system-library-clean branch, I see the default codespaces message:

👋 Welcome to Codespaces! You are on a custom image defined in your devcontainer.json file.
🔍 To explore VS Code to its fullest, search using the Command Palette (Cmd/Ctrl + Shift + P)
📝 Edit away, then run your build command to see your code running in the browser.

But bash scripts/welcome_msg.sh brings up the welcome message as expected.
Also there is no /home/vscode/.local/bin/ directory.
So I don't think the current postStartCommands are set up correctly. I think we want to run both scripts/welcome_msg.sh and scripts/local_script.sh on startup and that doesn't seem to be happening at the moment.

Needed to fix default paths in settings.json so that you can start an R terminal as soon as the devcontainer is launched.


feat: better tracing defaults

Removes the UNIX domain socket for tracer to let the Datadog trace agent default to environment variable based discovery.
We should prefer containerized installations but the UNIX domain socket would be prevalent in host based installations. Note that this is simply a convenience feature and the different configuration options can still be passed explicitly as required.
I expect this change to make Kubernetes based deployments simpler where simply setting DD_AGENT_HOST will make the client pick up the correct target.

Codecov Report

Merging #321 (19fe915) into main (2323b5d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #321   +/-   ##
=======================================
  Coverage   28.70%   28.70%
=======================================
  Files          60       60
  Lines        6431     6431
=======================================
  Hits         1846     1846
  Misses       4369     4369
  Partials      216      216

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 2323b5d...19fe915. Read the comment docs.


Cluster labels cannot be removed, updated or modified

Internal reference: SURE-6536
Reported in 2.7.3 & 2.7.4
Issue description:
Cluster labels are deleted or overwritten when modified or added.
Business impact:
Fleet operates by targeting cluster groups however clusters cannot be consistently added or removed from groups because the label changes get overwritten by Rancher.
Troubleshooting steps:

View cluster labels
Edit the cluster labels
Save changes
Wait a moment (sometimes the change takes effect only to be overwritten shortly thereafter) - in fleet this causes workload flapping.
View cluster labels - note the change did not stick

Repro steps:

Create a downstream cluster - import k3s e.g.
Add a label during cluster creation or afterward.
Try to remove or modify the label

Workaround:
None
Actual behavior:
Cluster labels are reverted to the state before the change is made.
Expected behavior:
Cluster label changes according to the edit
Additional notes:
An internal person was able to reproduce this with a k3s cluster created via the node driver and also with imported clusters, though they have not tried other cluster types.
A fix was done for 2.7.5 via https://github.com/rancher/ui/pull/4975 but from that person's tests:

My tests included an imported k3s cluster and an aws node driver cluster. I did not test with Elemental clusters.

Imported k3s cluster

Labels can be added to a cluster at the time of cluster creation [SUCCESS]
Labels can be added to a cluster after cluster is provisioned [SUCCESS]
Labels can be deleted from a cluster if they were added after the cluster was provisioned [SUCCESS]
- Labels cannot be deleted from a cluster if the label was added during cluster creation [FAIL]
Labels can be edited in a cluster if the the label was added after the cluster was provisioned [SUCCESS]
- Labels cannot be edited if the label was added during cluster creation [FAIL]

Hostbusters (@snasovich) offered some guidance from the backend standpoint and it was determined that the user tried this example:

I create a couple labels during the process of cluster creation "Import -> Labels and Annotations -> Add Label"

geo: "ny"
managed: "yes"

If I try to delete these labels, doing "Edit Config" on the cluster from the "Manage Clusters" page, it appears to delete from the UI but after saving the form, the Label is still there.

Also, if I "Edit Config" and try to modify the value of the label.

managed: "no"

for example, then it appears to change the value on the form but in fact the value is not changed when I save the form.

By the way, that is all via the "Manage Clusters" page.

I just tested the same operations via "Continuous Delivery" and on the surface it appears to work but if you go back in to edit configs, you can see that it did not work. It does not help that these pages show different (inaccurate) information.

ok, i'm late to the party. This will be resolved via https://github.com/rancher/dashboard/issues/9476

To clarify

Syncing between v3/clusters and v1/provisioning.cattle.io.clusters resources is a tenet of those resource types. This has always been the way since the creation of v1 / steve. The failure to sync labels between these resources is a backend bug.
The work to support editing of imported clusters in https://github.com/rancher/dashboard/issues/9476, assigned to Eva, will make that bug superfluous, as no syncing will be required.

@eva-vashkevich I've assign this back to you. Can you keep it in sync (zube column and milestone) with https://github.com/rancher/dashboard/issues/9476?

Created BE issue https://github.com/rancher/rancher/issues/43191
Steve API does not provide us information required to edit imported cluster.

Backend should have unblocked this for UI and now we're blocking them. Moving to Next Up.

For those folks who run into this, there is a workaround: update the labels on clusters.provisioning.cattle.io objects via kubectl.

FTR: our UI e2e tests for fleet have noticed an increase on the failiures due to this since 2.9 (example) while removing labels. while it seemed to have been relatively ok in 2.8.


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-k8s-26-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1902

Questions ?
Please refer to the Backport tool documentation


Support for QPU?

Hello,
it seems that you no longer support the forest.qpu device.
Is there another way to run on the rigetti hardware? There still seem to be some examples on the pennylane website that reference the forest.qpu device.
Best wishes,
Daniel

Hey @herr-d! Good catch; indeed, the PennyLane-Forest plugin no longer supports QPUs due to recent server-side changes with the Rigetti QCS. Are you currently a QCS user?
Instead, I recommend accessing the Rigetti device via the Amazon Braket plugin.

Yes, I recently got access to QCS and wanted to try out running a few experiments through Pennylane. I don't know if I can use my QCS account with Braket though.

Thanks @herr-d! That is useful to know. I will explore and see if this is something we could offer support for again.

This is a very old issue, but for the benefit of anyone else coming along - this does support QPU access now, direct to QCS!
What blocked us before was incompatibility between pyQuil v3.0 and pennylane-forest; now, along with the rename to pennylane-rigetti and thanks to @MarquessV and the PennyLane team, it works again on QPU and QVM.

@kalzoo shall we close this issue :)

Yes, it has been a while. Lets close the issue :)...


Issue 255: Externally tagged enum deserialization

cc: #225, #222
The tuple variant hasn't been implemented yet, I'm having trouble figuring it out.
See #225 for ongoing discussion -- what should / should not be supported.
Short, the following TOML:
plain = "Plain"
plain_table = { Plain = {} }
tuple = { Tuple = { 0 = 123, 1 = true } }
struct = { Struct = { value = 123 } }
newtype = { NewType = "value" }
my_enum = [
    { Plain = {} },
    { Tuple = { 0 = 123, 1 = true } },
    { NewType = "value" },
    { Struct = { value = 123 } }
]

with the following types:
#[derive(Debug, Deserialize)]
struct Config {
    plain: MyEnum,
    plain_table: MyEnum,
    tuple: MyEnum,
    #[serde(rename = "struct")]
    structv: MyEnum,
    newtype: MyEnum,
    my_enum: Vec<MyEnum>,
}

#[derive(Debug, Deserialize)]
enum MyEnum {
    Plain,
    Tuple(i64, bool),
    NewType(String),
    Struct { value: i64 },
}

deserializes to:
Config {
    plain: Plain,
    plain_table: Plain,
    tuple: Tuple(
        123,
        true
    ),
    structv: Struct {
        value: 123
    },
    newtype: NewType(
        "value"
    ),
    my_enum: [
        Plain,
        Tuple(
            123,
            true
        ),
        NewType(
            "value"
        ),
        Struct {
            value: 123
        }
    ]
}

Thanks for the PR! I don't personally have too many opinions about how we should map enums to toml, but I think we can probably pretty closely follow serde_json in this regard? Would it be possible to just clone whatever serde_json does for all these serializations?

Finally got round to this, serde_json serializes the value like this:

json serialized
{
    "plain": "Plain",
    "plain_table": "Plain",
    "tuple": {
        "Tuple": [
            -1,
            false
        ]
    },
    "struct": {
        "Struct": {
            "value": -1
        }
    },
    "newtype": {
        "NewType": "abc"
    },
    "my_enum": [
        "Plain",
        {
            "Tuple": [
                -1,
                false
            ]
        },
        {
            "NewType": "abc"
        },
        {
            "Struct": {
                "value": -1
            }
        }
    ]
}

The structure is similar, the differences:

JSON array allows you to have mixed types, so

Tuples are represented using arrays in JSON. (mixed types are invalid in TOML, so we need to use a TOML table)
Array of enum variants is valid in JSON: ["Plain", { "Tuple": [ -1, false ] }]

In TOML it would be ergonomic to represent plain enum variants as "String", but represented as a TOML table when used in an array

I'll work on getting serialization to work that way, since it's the closest we can get to JSON

I've gotten deserialization matching the above (and tested! yay). For serialization, the tuple variant currently emits a toml array, which is invalid if you have a tuple variant with different types.
I'm not sure whether it's okay to break backwards compatibility and emit a table -- should I:

A: Try and be clever and emit an array if the tuple fields are the same type, and a table if they are different types?
B: Make it always emit an inline table

I'll push serialization to a separate branch – I haven't managed to get it correct, let alone clean. In case you're happy with having deserialization without serialization as a partial state.

Oh dear sorry about that @Aaronepower! I'm somewhat low on reviewing bandwidth for this at the moment, so some assistance in reviewing this would be greatly appreciated!

@alexcrichton Sure no problem!
@azriel91 There seem to be a lot of unrelated style changes to the codebase. (Adding semicolons, changes the formatting of arguments, extra commas, etc.) Are you perhaps using rustfmt? I think removing those tidy ups would make it easier to see the changes. For example there's 940 changes in src/de.rs, but as far as I can tell there's actually 144 lines that aren't tidying up the code.

Yeap, the first commit is purely rustfmt, so the relevant diff would be the ones after that.
I can push over this without that if you prefer

@azriel91 If you could that would be very helpful. I've found that trying to review through individual commits is a lot of work as you have to keep track of the code from previous commits as well new code.

There we go

@azriel91 Generally this looks good to me. Can you add some tests that should always fail with this kind of deserialisation?

"Yes!", but first I have to understand what you mean 😅. There's these possible meanings:

array of tables: unsupported but potentially supported later (implement as "pending")
invalid variant / fields in variants (should panic, useful error message)
something else?

I've pushed tests + changes for the first two bullet points

@azriel91 It seems that last commit has caused some errors in the CI.

ah yeap, only noticed it yesterday, pushed a quick fix 🤞

@alexcrichton Have a look yourself, but it looks good to me.

Er sorry for the delay!
I unfortunately still don't really understand most of this code, the serde implementation has always been opaque at best to me. I'll trust y'all though!


[BUG] ixc does not parse apax versions correctly when comparing dependencies in apax.yml and those installed in .apax folder

ixc does not parse apax versions correctly when comparing dependencies in apax.yml and those installed in .apax folder

/cib


EG API updates

Fixes https://github.com/Azure/azure-sdk-for-net/issues/15476

LGTM, sorry for the delay in getting back to you on this.

I just submitted last night so this was fast!

LGTM, sorry for the delay in getting back to you on this.

I just submitted last night so this was fast!

/azp run net - eventgrid - tests

/azp run net - eventgrid - tests


Missing license file in kuksa-client PyPI package since 0.4.0a3

The license file is in the PyPI package was included until 0.4.0a2, after that it is missing.
How/Where are the PyPI packages actually created/uploaded? I can't find any reference in the repo, also no version numbers 0.4*.

As of now we have no automated build flow for the kuksa-client PyPI packages, they are built manually as described in https://github.com/eclipse/kuksa.val/wiki/Release-Process. For the Alpha-releases I have just created tags locally. There have been two reasons for that - one is that the source has not always been a commit on master, it has been created to verify that the PyPI package content is usable for kuksa client relying on the package. The second reason is that by uploading a tag it could give the impression that the tag denotes an alpha release for all components (Databroker, Server, Python client, go client, ...) in this repository, and it could also trigger that we create tagged Docker containers for other components in this repository. So a bigger discussion might be needed (FYI: @SebastianSchildt )
Concerning the license file - I am not aware of any deliberate changes but I will investigate it.

It turned out the missing license file was due to a cleanup where the file kuksa-client/LICENSE was removed as it was thought to be not necessary, as we have an identical file on repository top level. Unfortunately it was required by setup.cfg, but if it cannot find the file it gives no warnings/errors. A PR created in #613 that solves the problem  by using a symbolic link.


Linker crash with GCC13 on macos-14 image

Description
Trying to use g++-13 to compile a C++ executable on the new macos-14 image causes the linker to crash:
[4/279] Linking CXX executable example/example-merge-intervals
FAILED: example/example-merge-intervals
: && /opt/homebrew/bin/g++-13 -g -arch arm64 -isysroot /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  example/CMakeFiles/example-merge-intervals.dir/merge_intervals.cpp.o -o example/example-merge-intervals   && :
0  0x104a6f648  __assert_rtn + 72
1  0x1049a3fac  ld::AtomPlacement::findAtom(unsigned char, unsigned long long, ld::AtomPlacement::AtomLoc const*&, long long&) const + 1204
2  0x1049b9924  ld::InputFiles::SliceParser::parseObjectFile(mach_o::Header const*) const + 15164
3  0x1049c6e30  ld::InputFiles::parseAllFiles(void (ld::AtomFile const*) block_pointer)::$_7::operator()(unsigned long, ld::FileInfo const&) const + 420
4  0x18124c950  _dispatch_client_callout2 + 20
5  0x1812611a4  _dispatch_apply_invoke_and_wait + 176
6  0x181260464  _dispatch_apply_with_attr_f + 1176
7  0x181260650  dispatch_apply + 96
8  0x104a413b8  ld::AtomFileConsolidator::parseFiles(bool) + 292
9  0x1049e2170  main + 9048
ld: Assertion failed: (resultIndex < sectData.atoms.size()), function findAtom, file Relocations.cpp, line 1336.
collect2: error: ld returned 1 exit status

Platforms affected

[ ] Azure DevOps
[ ] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] macOS 13
[ ] macOS 13 Arm64
[X] macOS 14
[X] macOS 14 Arm64
[ ] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
Image: macos-14-arm64
Version: 20240116.1
https://github.com/tcbrindle/flux/actions/runs/7755740102/job/21151793129
Is it regression?
Yes (GCC13 works on macos-latest image)
Expected behavior
The executable would compile, link and run correctly
Actual behavior
It seems like an assertion failure is being triggered in the linker, leading to a crash with the above error
Repro steps
Compile and attempt to link a C++ executable with the provided g++-13 compiler on the macos-14 image.
(I don't know whether this also affects C and Fortran programs built with gcc-13 or gfortran-13, or other versions of GCC)

Hello @tcbrindle!
Xcode 15.0.1 is used by default on macos-14 runners. Xcode 15, and its associated Command Line Tools package, includes a new linker implementation. Please see this ticket for more information.

Thanks for the information @MaksimZhukov. From the linked ticket it sounds like XCode 15.1 fixes the problem, so I guess I could use an action like this one to select the Xcode version?

Using the Xcode 15.1 tools via the 'setup-xcode' action fixed the linker error 👍
After fixing that, and a CMake error related to precompiled headers, everything built... but then crashed when running tests because exceptions aren't being caught properly.
It seems like GCC isn't really useable on ARM Macs yet, unfortunately. I'll stick with Intel for now, and check back at a later date.