1.0.0 Updates

See this ticket for list of updates.
Important notes:

There is no sample data for Allergy Intolerance, Adverse Event, or Clinical Result, so I was unable to verify those tests
The IG update did not include adding OMB race categories to the package.tgz file, so we are still forced to include an external package to make up for this. I did not modify the existing external package

FYI there was a merge conflict on the "version" related files because you hadn't pulled down the latest commits here (I needed to bump the version on this side to deploy a new version).  I just did the 'resolve merge conflict' in GitHub, which merges this main back into your PR branch.  Just make sure that the commits on your main branch matches the commits on this main branch on here exactly next time you make changes so there is a clean merge.  Let me know if you need help w/that or think there is a better strategy for managing keeping these repos in sync!

Thanks for fixing the merge conflict! Sorry, I had clicked the "sync fork" button on GitHub before starting and thought that would update the repo, but I guess it did not pull all the updates. Next time I'll be sure to double check!
Lucas

From: Rob Scanlon @.>
Sent: Friday, September 8, 2023 9:55 AM
To: inferno-framework/uds-plus-test-kit @.>
Cc: Lucas Tucker @.>; Author @.>
Subject: Re: [inferno-framework/uds-plus-test-kit] 1.0.0 Updates (PR #15)
FYI there was a merge conflict on the "version" related files because you hadn't pulled down the latest commits here (I needed to bump the version on this side to deploy a new version). I just did the 'resolve merge conflict' in GitHub, which merges this main back into your PR branch. Just make sure that the commits on your main branch matches the commits on this main branch on here exactly next time you make changes so there is a clean merge. Let me know if you need help w/that or think there is a better strategy for managing keeping these repos in sync!
—
Reply to this email directly, view it on GitHubhttps://github.com/inferno-framework/uds-plus-test-kit/pull/15#issuecomment-1711714343, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A6RYF7LVOT3ECZBPAYNE7YDXZMPVNANCNFSM6AAAAAA4PPWSZI.
You are receiving this because you authored the thread.Message ID: @.***>

Thanks for fixing the merge conflict! Sorry, I had clicked the "sync fork" button on GitHub before starting and thought that would update the repo, but I guess it did not pull all the updates. Next time I'll be sure to double check!

Strange!  No problem, just FYI to keep this as smooth as possible in the future.  The PR will state thee is a merge conflict at hte bottom, so you can just double check that doesn't show up next time.


Regarding instructions of loading in a Digits model into GRE

https://github.com/NVIDIA/gpu-rest-engine/issues/4
I was looking at this instruction and tried following the links to modification of the deploy file and found error 404 on those links. Can you provide the modifications necessary to the prototxt files that are necessary for GRE to utilize an exported Digits model?

Look at those lines:
https://github.com/NVIDIA/gpu-rest-engine/blob/722f3597f8a47881c2d7bd9fe7fecd86f2fba0a6/Dockerfile.caffe_server#L96-L103

Is there a way to load more than one model into the GRE?

It will require modifying the golang code, but it's totally possible. Adding new endpoints handlers is quite easy in go.
Another option is to run N different containers (one for each model) listening on different ports (e.g. 8000, 8001, 8002...). Then you put an nginx reverse-proxy on top that dispatches to the right server based on the URI, you have examples on the CLI:
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

Would I be modifying the main.go file in the gpu-rest-engine/caffe folder?


FtpClient.IsAuthenticated is always false even though it's authenticated and can perform authenticated actions

FTP OS: Windows Server 2019
FTP Server: FileZilla
Computer OS: ? Windows 11
FluentFTP Version: ? 35.2.2
Example code:
using var client = new FtpClient(Server, Port, User, Pw);
client.OnLogEvent = (level, content) =>
{
    // Remove comment on next line for log
    // Console.WriteLine($"{level,-10} {content}");
};

client.ValidateAnyCertificate = true;

var profile = await client.AutoConnectAsync();
Console.WriteLine("IsAuthenticated: " + client.IsAuthenticated);
var list = await client.GetListingAsync();
Console.WriteLine("Item Count: " + list.Length);
Console.WriteLine("IsAuthenticated: " + client.IsAuthenticated);

Output:
IsAuthenticated: False
Item Count: 51
IsAuthenticated: False

I know the server setup is correct and if I indeed use wrong or empty username/password, I would receive this exception on GetListingAsync() call instead:

Exception caught and discarded while closing control connection: System.InvalidOperationException: This operation is only allowed using a successfully authenticated context.

Logs :
Verbose    >         AutoConnectAsync()
Verbose    >         AutoDetectAsync(True, False)
Verbose    >         ConnectAsync()
Info       Status:   Connecting to My.Ser.ver.Ip:21
Verbose    Response: 220-FileZilla Server 1.2.0
Info       Response: 220 Please visit https://filezilla-project.org/
Info       Status:   Detected FTP server: FileZilla
Info       Command:  AUTH TLS
Info       Response: 234 Using authentication type TLS.
Info       Status:   FTPS Authentication Successful
Verbose    Status:   Time to activate encryption: 0h 0m 0s.  Total Seconds: 0.6271897.
Info       Command:  USER [username]
Info       Response: 331 Please, specify the password.
Info       Command:  PASS ***
Info       Response: 230 Login successful.
 No need to send this command
Info       Command:  SYST
Info       Response: 215 UNIX emulated by FileZilla.
Verbose    Status:   Listing parser set to: Machine
Verbose    >         GetListingAsync(null, Auto)
Info       Command:  PWD
Info       Response: 257 "/" is current directory.
Info       Command:  TYPE I
Info       Response: 200 Type set to I
Verbose    >         OpenPassiveDataStreamAsync(PASV, "MLSD /", 0)
Info       Command:  PASV
Info       Response: 227 Entering Passive Mode (10,4,0,240,236,19)
Info       Status:   Connecting to My.Ser.ver.Ip:60435
Info       Command:  MLSD /
Info       Response: 150 About to start data transfer.
Info       Status:   FTPS Authentication Successful
Verbose    Status:   Time to activate encryption: 0h 0m 0s.  Total Seconds: 0.3015987.
Verbose    +---------------------------------------+
Verbose    Listing:  type=file;size=30245;modify=20211228082856.162;perms=awrdf; 12986565-12986584-15.json
[Other files]
Verbose    -----------------------------------------
Verbose    Status:   Disposing FtpSocketStream...
Verbose    >         CloseDataStream()
Info       Response: 226 Operation successful
Verbose    Status:   Disposing FtpSocketStream...
Verbose    >         Dispose()
Verbose    Status:   Disposing FtpClient object...
Info       Command:  QUIT
Info       Response: 200 Goodbye.
Verbose    Status:   Disposing FtpSocketStream...
Verbose    Status:   Disposing FtpSocketStream...

I investigated the source code, I am positive it's due to ConnectAsync method calling AuthenticateAsync, which does not set m_IsAuthenticated variable as oppose to Authenticate.
Calling Connect() (which calls Authenticate()) would set m_IsAuthenticated to true and IsAuthenticated has the correct value.

This would fix the issue, at line 960:
				// only possible 3** here is `332 Need account for login`
				if (reply.Type == FtpResponseType.PositiveIntermediate) {
					reply = await ExecuteAsync("ACCT " + account, token);

					if (!reply.Success) {
						throw new FtpAuthenticationException(reply);
					} else
					{
						m_IsAuthenticated = true;
					}
				}
				else if (reply.Type == FtpResponseType.PositiveCompletion)
				{
					m_IsAuthenticated = true;
				}

Great work finding this and fixing it! Much appreciated.

Great work finding this and fixing it! Much appreciated.


Byebug thread handling

I'd like to use byebug in the project I'm working which is a cross platform GUI, with an embedded Ruby  https://github.com/Shoes3/shoes3.  The 'remote' interface does work but it's not as useful as the terminal based interface. Since Shoes is a GUI, there is no terminal. I do have a Shoes/Ruby level GUI window that does satisfy the byebug interface (puts, readline, etc) it uses a couple of Ruby threads and I believe byebug shuts those down.   Assuming that is true, is there some way to tell byebug to let some Ruby threads run?
Currently I am attempting to start byebug with this:
     @byethr = Thread.new {
          Byebug.debug_load($PROGRAM_NAME, true) # this starts byebug loop

see https://github.com/Shoes3/shoes3/blob/master/lib/shoes/debugger.rb

perhaps you should try debugger-xml+byebug for this.

Oleg, thanks for the info. Shoes is pretty unique in how it does things, for better or for worse. User scripts are loaded and run inside Shoes in a new Ruby thread (perhaps) and not a in separate os level process like most IDE would do.

@ccoupe I'm so sorry for taking this long to reply. Yes, byebug shuts shutdown every thread before giving back a prompt to the user. There's a special Thread subclass that is ignored. I think it's called DebugThread.
Hope it helps.

@deivid-rodriguez .  I did find DebugThread earlier but my problem is actually more difficult - Ruby is run on the Gtk thread which has to be blocked by byebug.  Fortunately, byebug can be used if the user launches Shoes from a terminal/console in Linux, OSX, and Windows so that's good enough.


Infinite loop in clip_line_segment_to_rect

After attempting to update to fed372229a4e4730b476be6436087d06f4f2ce0f in my app, I'm seeing it hang periodically. When I sample the process, I see many of the threads occupied with stacks that look like this:
    2002 Thread_23062470
    + 2002 thread_start  (in libsystem_pthread.dylib) + 15  [0x7fff673c9b8b]
    +   2002 _pthread_start  (in libsystem_pthread.dylib) + 148  [0x7fff673ce109]
    +     2002 std::sys::unix::thread::Thread::new::thread_start::h545d31fdf79b3d9e  (in zed) + 45  [0x103db4d7d]
    +       2002 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::he862cdbfb89d729f  (in zed) + 97  [0x103d7c831]
    +         2002 std::sys_common::backtrace::__rust_begin_short_backtrace::h676446a1390a22cc  (in zed) + 34  [0x103d7ba52]
    +           2002 rayon_core::registry::ThreadBuilder::run::h00c30b6f2120b0c7  (in zed) + 1422  [0x103d7a09e]
    +             2002 rayon_core::registry::WorkerThread::wait_until_cold::ha551cfa030ef9fe4  (in zed) + 350  [0x103df592e]
    +               2002 _$LT$rayon_core..job..StackJob$LT$L$C$F$C$R$GT$$u20$as$u20$rayon_core..job..Job$GT$::execute::h86e993ae71b3f169  (in zed) + 151  [0x103bd8ee7]
    +                 2002 rayon::iter::plumbing::bridge_producer_consumer::helper::h8ddb1da964800b3e  (in zed) + 458  [0x103c05bba]
    +                   2002 rayon_core::registry::in_worker::hd6b8274e541998e2  (in zed) + 386  [0x103bb4d12]
    +                     2002 rayon::iter::plumbing::bridge_producer_consumer::helper::h8ddb1da964800b3e  (in zed) + 458  [0x103c05bba]
    +                       2002 rayon_core::registry::in_worker::hd6b8274e541998e2  (in zed) + 574  [0x103bb4dce]
    +                         2002 rayon_core::registry::WorkerThread::wait_until_cold::h12d90f5e31262005  (in zed) + 180  [0x103de83a4]
    +                           2002 rayon_core::registry::WorkerThread::execute::h56c2fd0e6ec4b97a  (in zed) + 14  [0x103d7b15e]
    +                             2002 _$LT$rayon_core..job..StackJob$LT$L$C$F$C$R$GT$$u20$as$u20$rayon_core..job..Job$GT$::execute::h86e993ae71b3f169  (in zed) + 151  [0x103bd8ee7]
    +                               2002 rayon::iter::plumbing::bridge_producer_consumer::helper::h8ddb1da964800b3e  (in zed) + 458  [0x103c05bba]
    +                                 2002 rayon_core::registry::in_worker::hd6b8274e541998e2  (in zed) + 481  [0x103bb4d71]
    +                                   2002 rayon_core::job::StackJob$LT$L$C$F$C$R$GT$::run_inline::h100733435229296f  (in zed) + 154  [0x103bd116a]
    +                                     2002 rayon::iter::plumbing::bridge_producer_consumer::helper::h8ddb1da964800b3e  (in zed) + 458  [0x103c05bba]
    +                                       2002 rayon_core::registry::in_worker::hd6b8274e541998e2  (in zed) + 574  [0x103bb4dce]
    +                                         2002 rayon_core::registry::WorkerThread::wait_until_cold::h12d90f5e31262005  (in zed) + 180  [0x103de83a4]
    +                                           2002 rayon_core::registry::WorkerThread::execute::h56c2fd0e6ec4b97a  (in zed) + 14  [0x103d7b15e]
    +                                             2002 _$LT$rayon_core..job..StackJob$LT$L$C$F$C$R$GT$$u20$as$u20$rayon_core..job..Job$GT$::execute::h86e993ae71b3f169  (in zed) + 151  [0x103bd8ee7]
    +                                               2002 rayon::iter::plumbing::bridge_producer_consumer::helper::h8ddb1da964800b3e  (in zed) + 458  [0x103c05bba]
    +                                                 2002 rayon_core::registry::in_worker::hd6b8274e541998e2  (in zed) + 386  [0x103bb4d12]
    +                                                   2002 rayon::iter::plumbing::bridge_producer_consumer::helper::h8ddb1da964800b3e  (in zed) + 458  [0x103c05bba]
    +                                                     2002 rayon_core::registry::in_worker::hd6b8274e541998e2  (in zed) + 386  [0x103bb4d12]
    +                                                       2002 rayon::iter::plumbing::bridge_producer_consumer::helper::h8ddb1da964800b3e  (in zed) + 458  [0x103c05bba]
    +                                                         2002 rayon_core::registry::in_worker::hd6b8274e541998e2  (in zed) + 574  [0x103bb4dce]
    +                                                           2002 rayon_core::registry::WorkerThread::wait_until_cold::h12d90f5e31262005  (in zed) + 180  [0x103de83a4]
    +                                                             2002 rayon_core::registry::WorkerThread::execute::h56c2fd0e6ec4b97a  (in zed) + 14  [0x103d7b15e]
    +                                                               2002 _$LT$rayon_core..job..StackJob$LT$L$C$F$C$R$GT$$u20$as$u20$rayon_core..job..Job$GT$::execute::h86e993ae71b3f169  (in zed) + 151  [0x103bd8ee7]
    +                                                                 2002 rayon::iter::plumbing::bridge_producer_consumer::helper::h8ddb1da964800b3e  (in zed) + 458  [0x103c05bba]
    +                                                                   2002 rayon_core::registry::in_worker::hd6b8274e541998e2  (in zed) + 574  [0x103bb4dce]
    +                                                                     2002 rayon_core::registry::WorkerThread::wait_until_cold::h12d90f5e31262005  (in zed) + 180  [0x103de83a4]
    +                                                                       2002 rayon_core::registry::WorkerThread::execute::h56c2fd0e6ec4b97a  (in zed) + 14  [0x103d7b15e]
    +                                                                         2002 _$LT$rayon_core..job..StackJob$LT$L$C$F$C$R$GT$$u20$as$u20$rayon_core..job..Job$GT$::execute::h86e993ae71b3f169  (in zed) + 151  [0x103bd8ee7]
    +                                                                           2002 rayon::iter::plumbing::bridge_producer_consumer::helper::h8ddb1da964800b3e  (in zed) + 194  [0x103c05ab2]
    +                                                                             2002 rayon::iter::plumbing::Folder::consume_iter::h6e1d4b04190ded33  (in zed) + 234  [0x103bf031a]
    +                                                                               2002 pathfinder_renderer::builder::SceneBuilder::build_draw_path_on_cpu::h207de4f6e27a1440  (in zed) + 638  [0x103d6864e]
    +                                                                                2002 pathfinder_renderer::tiler::Tiler::generate_tiles::hee32a8a548039fc5  (in zed) + 606  [0x103d6550e]
    +                                                                                2002 pathfinder_renderer::tiler::process_segment::hba1584190896e69b  (in zed) + 125  [0x103d6594d]
    +                                                                                2002 pathfinder_content::clip::clip_line_segment_to_rect::h12c22efb161b7557  (in zed) + 289,233,...  [0x103d83d21,0x103d83ce9,...]

Could this be related to https://github.com/servo/pathfinder/pull/419?

There is a bug in clip_line_segment_to_rect method which in content/src/clip.rs file:
...
else if outcode.contains(Outcode::TOP) {
            point = vec2f(lerp(line_segment.from_x(),
                               line_segment.to_x(),
                               (line_segment.min_y() - line_segment.from_y()) /
                                (line_segment.max_y() - line_segment.min_y())),
                          rect.min_y());
        } else if outcode.contains(Outcode::LEFT) {
            point = vec2f(lerp(line_segment.from_x(),
                               line_segment.to_x(),
                               (line_segment.max_y() - line_segment.from_y()) /
                                (line_segment.max_y() - line_segment.min_y())),
                          rect.min_y());
        }
...

should change to
...
} else if outcode.contains(Outcode::TOP) {
            point = vec2f(lerp(line_segment.from_x(),
                               line_segment.to_x(),
                               (line_segment.min_y() - line_segment.from_y()) /
                                (line_segment.max_y() - line_segment.min_y())),
                          rect.min_y());
        } else if outcode.contains(Outcode::BOTTOM) {
            point = vec2f(lerp(line_segment.from_x(),
                               line_segment.to_x(),
                               (line_segment.max_y() - line_segment.from_y()) /
                                (line_segment.max_y() - line_segment.min_y())),
                          rect.max_y());
        }


Local Virtual Storage Provisioner

Description
This pr introduces the logic to provide local PersistentVolumes for the liqo virtual storage class
Ref #944
How Has This Been Tested?

[x] locally on KinD
[x] add unit test

/test

/test

/test

/merge


Can't compile tdlib

I can't compile tdlib anymore from revision https://github.com/tdlib/td/commit/ab2223b034a344807994eb97fb5987adfb94d232 to the current one.
I get the following compilation error:
[ 72%] Building CXX object CMakeFiles/tdcore.dir/td/telegram/Payments.cpp.o
[ 73%] Building CXX object CMakeFiles/tdcore.dir/td/telegram/PasswordManager.cpp.o
In file included from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/tdutils/td/utils/misc.h:13:0,
                 from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/tdutils/td/utils/MpscPollableQueue.h:10,
                 from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/tdactor/td/actor/impl/Scheduler-decl.h:18,
                 from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/tdactor/td/actor/impl/Actor.h:11,
CMakeFiles/tdcore.dir/build.make:1783: recipe for target 'CMakeFiles/tdcore.dir/td/telegram/PasswordManager.cpp.o' failed
                 from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/tdactor/td/actor/actor.h:9,
                 from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/td/telegram/net/NetQuery.h:13,
                 from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/td/telegram/PasswordManager.h:9,
                 from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/td/telegram/PasswordManager.cpp:7:
/home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/tdutils/td/utils/Status.h: In instantiation of ‘td::Result<T>::Result(S&&) [with S = td::tl::unique_ptr<td::telegram_api::account_passwordInputSettings>&; typename std::enable_if<(! std::is_same<typename std::decay<_U1>::type, td::Result<T> >::value), int>::type <anonymous> = 0; T = td::tl::unique_ptr<td::telegram_api::account_passwordInputSettings>]’:
/home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/td/telegram/PasswordManager.cpp:692:10:   required from here
/home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/tdutils/td/utils/Status.h:415:55: error: use of deleted function ‘td::tl::unique_ptr<T>::unique_ptr(const td::tl::unique_ptr<T>&) [with T = td::telegram_api::account_passwordInputSettings]’
   Result(S &&x) : status_(), value_(std::forward<S>(x)) {
                                                       ^
In file included from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/td/generate/auto/td/telegram/telegram_api.h:3:0,
                 from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/td/telegram/NewPasswordState.h:9,
                 from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/td/telegram/PasswordManager.h:10,
                 from /home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/td/telegram/PasswordManager.cpp:7:
/home/runner/work/tdlib-java-natives/tdlib-java-natives/generated/implementation/td/tl/TlObject.h:100:3: note: declared here
   unique_ptr(const unique_ptr &other) = delete;
   ^~~~~~~~~~
make[2]: *** [CMakeFiles/tdcore.dir/td/telegram/PasswordManager.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:498: recipe for target 'CMakeFiles/tdcore.dir/all' failed
Makefile:145: recipe for target 'all' failed
make[1]: *** [CMakeFiles/tdcore.dir/all] Error 2
make: *** [all] Error 2
##[error]Process completed with exit code 2.

Thanks. Fixed in master.


[SPARK-11732] Removes some MiMa false positives

This adds an extra filter for private or protected classes. We only filter for package private right now.

cc @pwendell @mengxr

Test build #45875 has started for PR 9697 at commit 39a59bd.

Test build #45875 has finished for PR 9697 at commit 39a59bd.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * public class JavaGradientBoostingClassificationExample \n  * public class JavaGradientBoostingRegressionExample \n  * public class JavaRandomForestClassificationExample \n  * public class JavaRandomForestRegressionExample \n

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/45875/
Test PASSed.

Test build #46006 has started for PR 9697 at commit 69d75ab.

@srowen sorry the delay. comments addressed

Test build #46006 has finished for PR 9697 at commit 69d75ab.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/46006/
Test PASSed.

Merged build finished. Test PASSed.

LGTM @pwendell as I can't see why MiMa would need to look at private classes of any type.

Yep, this LGTM

Merged to master/1.6

Thank you @srowen


custom webroot location

enhancement request:
add an option to allow for custom webroot location.

I think this was covered in a previous ticket. I don't remember the reason given but there's allot of files that would need to be changed. The best workaround is to create a symlink to your webroot. I Symlink to a mounted glusterFS cluster and have had no issues. Hope this helps.

Thanks for the tip @aronwp

+1 please add this
In my setup EE is completely undeployable without a custom webroot.

I agree. It would be awesome to be able to do something like this:
ee site create example.com --php --hhvm --webroot=/var/www/html
This would also make migrations way easier IMO

Sorry for a delayed reply.  In v4, we will be doing this differently.


Allow passing NS ID to signups endpoint, and function for converting to legacy ID.

What's this PR do?
This PR updates the Signups transform to allow receiving a Northstar ID OR a Legacy Drupal ID. It references a function that converts the ID from Northstar to Legacy and returns the same, expected data.
Any background context you want to provide?
This is an update to slowly strangle-out the use of legacy IDs in the system, and needed for an upcoming update to Phoenix-Next to add Reportback gallery submissions.
Relevant tickets
Refs https://trello.com/c/ty5jx7nv/382-3-as-a-user-when-i-refresh-phoenix-next-i-want-to-see-any-previously-uploaded-rbs-so-i-can-see-my-progress

Woo! This is great. 👍


Creating a data model

Features ⭐ ⭐ ⭐

[x] Creating a new app. Giving a meaningful name.
[x] Initializing the project with Git.
[x] Make sure that the project has a Postgres database set up.
[x] Building the project schema.

Creating and runing the necessary migration files.
Table and column names should match the ERD diagram.

Note: photo for users table should be a link to an image

Include all Foreign keys.

Pay attention that in posts table the column holding the foreign key to the users table should be named author_id

Add the corresponding index to all columns that are foreign keys.

@VICTOR-CHUKWU Thank you


through<EMAIL_ADDRESS>the created vue3 + TS project cannot use this plug-in normally

I use @vue/<EMAIL_ADDRESS>A vue3 + TS  project was created, but after installing vue-cli-plugin-vite and starting it with the yarn vite command, the following error was thrown:
Uncaught TypeError: Cannot destructure property 'options' of 'inject(...)' as it is undefined.
    at setup (vue-router.esm-bundler.js:2119)
    at callWithErrorHandling (runtime-core.esm-bundler.js?v=1c50029a:154)
    at setupStatefulComponent (runtime-core.esm-bundler.js?v=1c50029a:6542)
    at setupComponent (runtime-core.esm-bundler.js?v=1c50029a:6503)
    at mountComponent (runtime-core.esm-bundler.js?v=1c50029a:4206)
    at processComponent (runtime-core.esm-bundler.js?v=1c50029a:4182)
    at patch (runtime-core.esm-bundler.js?v=1c50029a:3791)
    at mountChildren (runtime-core.esm-bundler.js?v=1c50029a:3975)
    at mountElement (runtime-core.esm-bundler.js?v=1c50029a:3896)
    at processElement (runtime-core.esm-bundler.js?v=1c50029a:3868)

can not reproduction in my side. please give mini demo link.

This is a basic example. You can click here to view it

will figure it out.

@IndexXuan  👍

@sh-winter try v1.0.3.
unknown bug, fixed with hack way.

@IndexXuan 👌, 😘💕


Add some tests

Hi, good idea for this project!
I have some ideas that I could contribute with, but I have a question:
Any reason to not uppercase the step definitions ? It would be more consistent with the doc and the other extensions projects.

Sorry I wasn't clear enough, I meant the first letter, like in Behat doc for example:
Given I am in a directory "test"
And I have a file named "foo"

I understand it better now, thanks for clarifying. In which classes (in this repo) have you seen not capitalized step definitions?

They are good, its my fault broke something while testing :sweat_smile:

No problem! I'm creating the tests this week.


sensor: mcp9808: convert to use device tree

Convert the MCP9808 driver to use device tree and DT_INST_* defines.
Signed-off-by: Marcin Niestroj<EMAIL_ADDRESS>

@galak I have removed generation from device-tree bindings, as requested.

@mniestroj Please address the shippable failure

@MaureenHelm I needed to add dts_fixup.h for mcp9808 sample. I haven't found anything similar for other sensor samples, however all sensors that are already converted to DT are part of some supported boards in Zephyr (which is not the case with mcp9808). Are you ok with that approach?

No, in that case you should add a dts overlay to the sample.

For whatever board I choose? Should I do that similar to adt7420 sensor example?

@galak please revisit

@galak Could you review updated code, so we can move forward with this PR?

This MR has been superseded by #20413 .


Incorrect symbolic sinks in binary built on Linux

Symbolic links of the binary files generated under build/bin are being created. However, these symbolic links are created with absolute paths, which can sometimes result in incorrect links. For instance, in my project, I am using Docker for the builds. When building on a Docker image, the binary is created at /src/build/host/mruby, but it appears at a different path when viewed from the host.
$ rake build
-- snip --
$ pwd
/home/buty4649/src/github.com/buty4649/rf

# The actual mruby binary is located under build/host/bin
$ ls -lah ./build/host/bin/mruby
-rwxr-xr-x 1 buty4649 buty4649 12M Oct 21 12:22 ./build/host/bin/mruby

# The path of mruby under build/bin is incorrect
$ ls -lah ./build/bin/mruby
lrwxrwxrwx 1 buty4649 buty4649 25 Oct 21 12:22 ./build/bin/mruby -> /src/build/host/bin/mruby
$ ls -lah /src/build/host/bin/mruby
/bin/ls: cannot access '/src/build/host/bin/mruby': No such file or directory

I suspect that the issue is caused by calling File.expand_path when creating the symbolic links, as seen here: https://github.com/mruby/mruby/blob/master/lib/mruby/build.rb#L400

I think #6085 could have taken care of this.
In my opinion, I have the impression that #{MRUBY_ROOT}/bin/ is a temporary working directory.
I think it is better to refer to #{MRuby::Build#build_dir}/bin/ if possible when referring to it externally.

#6085 merged. @buty4649 Does this solve the problem? If so, please close this issue.

Issue #6085 has been perfectly resolved. It's excellent! Thank you so much!
$ ls -lah ./build/bin/rf
lrwxrwxrwx 1 buty4649 buty4649 14 Oct 23 20:42 ./build/bin/rf -> ../host/bin/rf


Certificate expired.

Links for requesting features or bug  donot work due to expired certificate. Kindly see above attached image.

Can't reproduce here. Looks like a local issue? Maybe try Troubleshooter?

@mehulzaveri
For me this looks like a local problem with the list of trusted CAs. (If this is a company computer I suggest you to ask your admin if "Download of trusted CA-List" is blocked by GPOs.)

Just tested "https://aka.ms/powertoysrequestfeature" and it worked fine.  I'm not seeing the cert error.
Does it still happen?


Wikicode importer: add missing Wikilinks

Wikipedia has this policy (https://en.wikipedia.org/wiki/WP:BTW) that only the first occurrence of a concept should be linked to its wiki page. That makes sense for human readers but it's annoying for machines which rely on the wiki links to identify entities (which is the case for the wikitext importer).
When there are multiple occurrences of the same concept in a table, only the first one will be wikilinked and therefore reconciled. Example:
https://en.wikipedia.org/w/index.php?title=Transcontinental_Race&oldid=802616649#Route
There should be an option to add these missing links automatically. Just maintain a map of all the surface forms of the links previously seen and scan for that in any free text.

Closing as too vague - this would be a heuristic process. Resorting to manual reconciliation is not too bad.


Force uzmug to mark all migrations as applied

I want my code to either create the db on startup if not present or otherwise migrate it to the latest version.
I think have two options:

Create an initial migrator that basically represents the first version of the DB (which usually involves quite a lot of tables...), and then apply all the migrations.
Do a sync().

If I do 2, which I would prefer in principle to avoid having to duplicate the DB schema already described on the sequelize model, then, after the sync, no migrations will have been recorded, so they will try to be reapplied, which causes issues since he model has been synced before.
Is there a way to tell umzug to record all the migrations as done even if they have not been actually executed? Or should I do that on the up() method itself? Example, add some argument somewhere and do:
up() {
  if (!creating_from_scratch) {migrate...}
}

Suggestions welcomed ;).

Hi @santiagoaguiar,
in general sync is more meant to be a development tool rather than something you want to run in production. Ideally everything that is needed inside your db is shipped as a migration. There have been plans to export a model schema as a migration, but nothing has been done so far. (you might want to do that :)) I'd rather not add the if clause to your migrations tbh. imho you should ship a first version of your db as a migration and build everything on top of that.

Ok, thanks! I kind of assumed that might be the answer!!
It does pain me a little, not only because of the duplication, but because migrations are written by referring to tables. columns and indexes whose names are usually defined by sequelize. So I guess I either go and be explicit about those on the model definition, or use the names I expect sequelize to generate, which will be a kind of 'magic names' for other readers of the code :).
Not comfy enough yet with sequelize to tackle this by a PR. I guess I'll go with be explicit route! Thanks!

yeah explicitly defining table and column names might be a good choice in that case :)

How much would you benefit of a tool that would generate the migration for a model?

+1 to the OP's original request (mark all migrations as "done").  I wanted this too and ended up writing a custom solution for it that duplicates some of Umzug's logic.  It would be much nicer if this was built in.

-1 to mark all migrations as done, looks like a workaround to what you
really want to accomplish
+1 to create migrations based on models, because you can't mess up in this
stage :)
On Monday, March 16, 2015, Roy Paterson<EMAIL_ADDRESS>wrote:

+1 to the OP's original request (mark all migrations as "done"). I wanted
this too and ended up writing a custom solution for it that duplicates some
of Umzug's logic. It would be much nicer if this was built in.
—
Reply to this email directly or view it on GitHub
https://github.com/sequelize/umzug/issues/25#issuecomment-81685990.

I would definitely benefit from something that created the migrations.
I think marking as done might be useful, in any case. When creating a db from scratch, running all the migrations up to that point might be a bit of an overkill, I would prefer to create it as it stands now ,and applies migrations from that point forward, but I'll agree that migrating from scratch is a good way to make sure your migrations are robust enough ;).
One argument against running migrations from scratch: we devel on sqlite on some cases, though our target DB is mysql. SQLite does not like some kind of migrations (e.g. drop a column). So I would prefer being able to drop the table and let my code recreate it from scratch, than let it be recreated applying migrations, since those will fail. A weak argument anyway ;).
Being able to write migrations by talking about the model instead of the DB would definitely be a plus too (ie. no 'add column to table', but 'add property to model').

Lots of tools have an option that just makes it look liked the action happened without actually performing the action - this would be analogous.

I think they're considering to add a kind of auto mode to Sequelize sync api, like .sync({auto: true}) to just change what's necessary from the current database state.
But anyway, can't you just skip the migration in your startup workflow and .sync({force: true}) in your app?

This is what I did (coffeescript):
  markMigrationsAsRan = (umzug)->
    console.log "Marking migrations as ran..."
    umzug.pending()
    .each (migration)->
      console.log "Marking migration '#{migration.file}' as ran"
      umzug.storage.logMigration(migration.file)

Closing, this is a very old issue. As @mdarveau suggested this can be done by iterating through pending migrations. In v3 you'll be able to use the .extend and wrap each migration with a no-op up function. Anyone looking for something like this, I'd suggest opening a new issue because the API has changed since 2015(!)


Bug: Cis check 4.13 does not recognize vcn flow logs that are applied to at the vcn level

CIS check 4.13 says: Ensure VCN flow logging is enabled for all subnets
In our implementation is build using the modules from terraform-oci-modules-observability
We create VCN flow logs for an entire VCN and not for each individual subnet. We implemented this using the following described construct for logging in the logging module:

Defining Flow Logs

flow_logs: A map of flow logs. Use this when defining flow logs in bulk within specified compartments. Logs are created in the same compartment as the enclosing flow log group.
name_prefix: (Optional) a prefix to flow log names.
log_group_id The flow log group. The value should be one of the reference keys defined in log_groups.
target_resource_type The target resource type for flow logs. Valid values: "vcn", "subnet", "vnic".
target_compartment_ids The list of compartments containing the resources of type defined in target_resource_type to create flow logs for. The module searches for all resources of target_resource_type in these compartments. For "vnic" target_resource_type, NLB (Network Load Balancer) private IP VNICs are also included.

By using this module, and specifying the  target_resource_type as "**vcn", this will result in a log_group per VCN with 1 log for all subnets.
The cis_reports.py reports for all the subnets in the VCN that they don't have logging enabled, however this is not true, because its enabled at the VCN level.
The reason is that the python code only checks if a subnet exists in the list of subnet logs based on the subnet OCID.
But this should be either the subnet OCID or the VCN OCID.
After I made the following modification to the code, it actually passed successfully for all VCN's with logging enabled.
Code starts at line 4097:
original code
# CIS Check 4.13 - VCN FlowLog enable
# Generate list of subnets IDs
for subnet in self.__network_subnets:
if not (subnet['id'] in self.__subnet_logs):
self.cis_foundations_benchmark_2_0['4.13']['Status'] = False
self.cis_foundations_benchmark_2_0['4.13']['Findings'].append(subnet)
changed code
# CIS Check 4.13 - VCN FlowLog enable
# Generate list of subnets IDs
for subnet in self.__network_subnets:
if not (subnet['id'] in self.__subnet_logs) and not (subnet['vcn_id'] in self.__subnet_logs):
self.cis_foundations_benchmark_2_0['4.13']['Status'] = False
self.cis_foundations_benchmark_2_0['4.13']['Findings'].append(subnet)
I did not check the 3rd option to enable logging at the VNIC level, but that should fail this test, as the check is to ensure logging is enabled for the entire subnet (or VCN).
Please check and verify and if you agree, I hope you can add this as a fix.

Thank you for the recommendation. We will update the script in the next release.


Update node and package versions

Update node version (18.17.1 to 20.8.0)
Update all package versions (no breaking change versions)

Going to wait until https://github.com/simonpratt/eslint-config/pull/3 is merged and update it here, so that this PR clears out all reported vulnerabilities


Coloring icons in RGB results in very poor quality

Using the following screenshot:

Recoloring the icons in grayscale is fine, but RGB results in the above regardless of the size. In the gray on the right of the image, the left set of icons is displayed after being converted to a QPixmap. The button on the right is keeping the icon as a QIcon. This also occurs regardless of the provider (Material Design, FontAwesome, etc).
My environment (Anaconda):

Python 3.10
Ubuntu 20.04
PySide6 6.4.1

Update: setting the icon color using HEX seems to work properly...

Hi @JulianOrteil thank you for the feedback! Could it be possible for you to give us some basic code snippet to test this in our side? About your test using HEX, could it be something then Qt related? Also, could you try to use a different binding or version (PyQt6, PySide2 or PyQt5) to see if the error is just for PySide6? Let us know!

Apologies for the delay. I'll hopefully get an MRE to you before the end of the week. Completely overloaded right now!

That's the code I've got from the picture:
# -*- coding: utf-8 -*-
import sys

from qtpy import QtCore, QtGui, QtWidgets

import qtawesome as qta

class AwesomeExample(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()

        icon_name: str = 'mdi6.help-circle'
        icon_size: QtCore.QSize = QtCore.QSize(24, 24)
        icon: QtGui.QIcon = qta.icon(icon_name, color='red')

        button: QtWidgets.QToolButton = QtWidgets.QToolButton(self)
        button.setIcon(icon)
        button.setIconSize(icon_size)

        label: QtWidgets.QLabel = QtWidgets.QLabel(self)
        label.setPixmap(icon.pixmap(icon_size))

        layout: QtWidgets.QHBoxLayout = QtWidgets.QHBoxLayout()
        for w in [button, label]:
            layout.addWidget(w)
        self.setLayout(layout)

def main() -> int:
    app: QtWidgets.QApplication = QtWidgets.QApplication(sys.argv)
    window: AwesomeExample = AwesomeExample()
    window.show()
    return app.exec()

if __name__ == '__main__':
    sys.exit(main())

And it does not reproduce the issue. I have a slightly different system, though:

Fedora Linux 6.3.8-100.fc37.x86_64,
Python 3.11.4,
PySide6 <IP_ADDRESS> or PyQt5 5.15.2,
X11 Display Manager.

The last item makes me wonder whether @JulianOrteil used Wayland back then.


Page does not provide the necessary information

The "Create an entity Page" doesn't actually say how to create an entity. How do I create an entity through the Dynamics web page? Can I use an API to do it?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e6288c1d-ff46-c65e-8d15-0ff6fa3fb6ac
Version Independent ID: 78b9e253-46a8-05bc-d44b-e5f1e2d2340e
Content: Create an entity with Dynamics 365 for Customer Engagement
Content Source: ce/customize/create-entities.md
Service: crm-online
GitHub Login: @Mattp123
Microsoft Alias: matp

Thank you for your feedback. I've added the basic procedure for creating an entity since one currently doesn't exist for Dynamics 365 for Customer Engagement.
Closing this issue.


[Business Approvals Kit - BUG] Editing an existing node (aka - steps) results in the loss of previously selected approvers.

Describe the issue
While editing existing nodes(steps), the previous mentioned approvers in not seen in the panel.

Expected Behavior
Approvers should be visible during the editing of an existing node.
What solution version are you using?
BusinessApprovalKit_1.0.20231214.1_managed.zip
What app or flow are you having the issue with?
Business Approval Management App - Process Designer Custom Page
Steps To Reproduce

In the process designer, edit an existing flow which have a approver
The previous list of approvers don't appear in most cases

Anything else?
No response
AB#1890

This issue is addressed in Dec2023 Year-end release version -BusinessApprovalKit_1.0.20231222.1.


Project root directory not found in superpoint_transformer_tutorial

Hi, I recently heard your presentation at the 3D Academy and tried to do the superpoint_transformer_tutorial. I run into a similar issue as #23 and #59 with this error message:
FileNotFoundError: Project root directory not found. Indicators: ('.project-root', 'setup.cfg', 'setup.py', '.git', 'pyproject.toml')

Unfortunatly i don't knw how to fix this.
I'm running the code via Jupyter Notebook on a Docker container.

This is what the project folder looks like at the moment:

I would be glad if you could help me.

Hi @Schmidt-J, have you made any modification to the codebase ? Is the notebook you are running located in the notebooks/ directory or somewhere else on your machine ?

@drprojects the notebook is located in notebboks/. But i used drag and drop within jupyter notebook from a windows computer to open it, because i couldn't access the notebook from within jupyter notebook directly.

But i used drag and drop within jupyter notebook from a windows computer to open it, because i couldn't access the notebook from within jupyter notebook directly.

What do you mean ? Could you use Jupyter lab instead and open the notebook from there, by browsing files ?
Which directory does your notebook's python interpreter live in ?
import os
os.getcwd()

Have you tried manually changing the path to the notebooks/ directory at the beginning of your notebook ?
import os
os.chdir('/path/to/your/superpoint_transformer/')

Which directory does your notebook's python interpreter live in ?
/opt/notebooks

What do you mean ? Could you use Jupyter lab instead and open the notebook from there, by browsing files ?
I cannot browse files there for some reason (I'm new to Docker).

Have you tried manually changing the path to the notebooks/ directory at the beginning of your notebook ?
This solved the problem with the error so far:

import os
os.chdir('/path/to/your/superpoint_transformer/')

Thank you for the help.

On a general note, we do not officially support nor work with Docker. So if more Docker-specific issues arise, I might not be able to help. However, I would happily to integrate any PR from you that would make the code more portable for Docker environments :wink:
Finally, since you opened an issue here (and received some help), please remember:
If you ❤ or simply use this project, don't forget to give the repository a ⭐, it means a lot to us !


Cannot update row in database table (Failed to execute 'objectStore')

Full error message:
Failed to execute 'objectStore' on 'IDBTransaction…n 'IDBTransaction': The transaction has finished.

My code:
/** Update a row in a table */
public UpdateRow(table: string, id: any, changes: object) {
    this.database.table(table).update(id, changes);
}

Check these docs. Let me know if it was of any help.

Hi, I was getting the same error:
InvalidStateError: Failed to execute 'objectStore' on 'IDBTransaction': The transaction has finished.
The referenced docs all mention db.transaction, which I was not using (at least purposefully, thought the underlying code in dexie probably is).
Just like @via-maxcoppen, I was only using Dexie.table() followed by Table.update().
While writing this message to +1 the issue, I was able to find a solution.
I had constructed the database (new Dixie()) and then used it multiple times (for context, this is in a VueJS app - it used to work fine in Vue2 but the error appeared when upgrading to Vue3 - I have not figured out why yet, probably a lifecycle difference).
I fixed it by re-constructing the database (basically not using this.database but const database = new Dixie()) again before using Table.update().
Hope this helps someone!

Thanks @hisem for posting how you solved the issue. I would though strongly advice against instantiating a new Dexie for every request. It would be very slow as it would create and open a new IndexedDB instance for every call. It will also leak memory and resources unless the instance is cleaned up afterwards (using db.close()).
There is probably another reason for this happening. Most likely, the caller of UpdateRow is calling it from a callback of Collection.each() or other transactional scope making it reuse the implicit transaction from that operation.
What you probably need to do is to make sure to not reuse the transaction from the caller's scope.
To ignore any ongoing transaction, use Dexie.ignoreTransaction().
/** Update a row in a table */
public UpdateRow(table: string, id: any, changes: object) {
    return Dexie.ignoreTransaction(
      () => this.database.table(table).update(id, changes)
    );
}

id is a simple integer (auto-incremented primary key) and data is actually the image's base64 data.
The thing is, if I instantiate a new database (my previous bad fix), I do not get the error and everything works fine (new image replaces the old).
I will try to post a repro...
As this is integrated in quite a big codebase for a client (on a budget), I can't guarantee I'll find the time... 😕 I'll try to do it on my personal time.
Even though my previous "fix" isn't great, this "photoUpdate" is a rarely used feature so I might be able to live with it. I made sure to close call .close() on the instance after the update.

@s-montigny-desautels Thanks

@s-montigny-desautels Oh wow, I started having issues with this again, stumbled back on this issue and saw your proposed solution. Just applied it and it fixed my issue. Thank you for the solution AND the explanation.

I found that I was trying to use my dexieObj.someTable property for updates, and this caused the error. When i do dexieObj.someTable.update() I get the error. When I instead do dexieObj.Tables[dexieObj.someTable.name].update(), I never get this error.

Hi, I was getting the same error and I think I have found how to prevent this error. I don't know why it's happening, though. I am using Vue3
In my case, I was wrapping the database instance in a ref. Vue make anything inside a ref deeply reactive. In my case, I simply swapped ref with shallowRef and it fixed the error. In your case, I see that you are using the options API. Putting the database inside the data makes it deeply reactive. You should do this instead.
import {PhotoDatabase} from "path/to/file";
const photoDb = new PhotoDatabase();
export default {
  props: ['photoId'],
  data() {
      return {
        photo: null
        [...]
      }
  },
  mounted: {
      photoDb.getPhoto(this.photoId).then((photo) => {
         this.photo = photo;
      });
  },
  methods: {
      [...]
      update (newData) {
          photoDb.updatePhoto(this.photoId, newData);
      }
 }

Hope it helps!

It works!


[Discussion] Service Bus - Track 2 - Rule operations

The intent of this issue is to solicit feedback from the community in advance of the GA of the next major version of the Service Bus library (which will follow several Preview releases).
As a reference, the .NET Azure SDK guidelines can be found here: https://azure.github.io/azure-sdk/dotnet_introduction.html
Terminology:
Terminology:
Track 0 refers to the WindowsAzure.ServiceBus library
Track 1 refers to the Microsoft.Azure.ServiceBus library
Track 2 refers to the new library, Azure.Messaging.ServiceBus, we are working on releasing.
Rule management operations can be performed for subscriptions. In version 4 of the Service Bus library, the rule operations live on the SubscriptionClient. The available rule operations are AddRuleAsync, RemoveRuleAsync, and GetRulesAsync. These management operations differ conceptually from the data operations that you would do with a subscription, namely receiving and settling messages. Hence, it makes sense to separate out these management concerns from the data concerns of receiving/settling. This also allows the ServiceBusReceiver type, which is the type that will be used for receiving from queues/subscriptions, to present a simpler interface. Finally, since we will have one type for receiving from both queues and subscriptions, we can avoid adding validation to prevent users from doing rule operations on a queue, since in order to do any rule management operations, a user will need to supply a topic and subscription name.
This raises the question - why even have these management operations in our AMQP clients at all? Why not just rely on the HTTP management client which supports these operations? Well, it is possible to bundle rule operations together with other data operations in transactions. Our hypothesis is that this is not a common scenario though. It will still be possible to do this bundling even with the change to have the rule management live off of the client, rather than directly on the receiver.
var client = new ServiceBusClient("connectionString");
var ruleMgr = client.GetRuleManager("topic", "subscription");
var receiver = client.GetReceiver("topic", "subscription", receiverOptions);
using (var ts = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
    var message = await receiver.ReceiveAsync();
    await receiver.CompleteAsync(message.LockToken);
    await ruleMgr.AddRuleAsync("ruleName", filter);
}

Adding some community members who have recently submitted issues/PRs for Service Bus 😃
/cc @nemakam @SeanFeldman @Einarsson @brandondahler @broloaugh @ankrause @GrimGadget @ShaneCourtrille @Pucmaster @Bnjmn83

Initially, during Track 1 there was a very strong resistance to add the HTTP management client to mimic what Track 0 was offering. Very quickly (and after a long debate with the community) it was very obvious that Microsoft was trying to push something that the real world either didn't want or was not ready for. Long story short, the management client was added back. The AMQP option to manage rules was added much earlier, assuming that those operations are very common at runtime and therefore should be supported. Which goes against the your current hypothesis:

Well, it is possible to bundle rule operations together with other data operations in transactions. Our hypothesis is that this is not a common scenario though.

First, let's make sure we don't overload the context here by using the word 'transactions'. Perhaps operation, but not transactions. The word 'transaction' implies a feature supported by Azure Service Bus.
Second, this is not as uncommon as you're assuming. As a matter of fact, it is quite common. Rules are added and modified at runtime more than you can imagine. Most of my customers prefer to have those rules configured and modified from the code that executes data operations rather than script or execute it separately.

It will still be possible to do this bundling even with the change to have the rule management live off of the client, rather than directly on the receiver.

It is what many are doing today. The substantial downside of the HTTP management client as oppose to an AMQP one is speed. HTTP management client is extremely slow.
With that, you should consider getting the feedback from the PG which can elaborate on additional insights of HTTP vs AMQP operations.
A personal note - having similar (or identical) operations in two locations is confusing. I would be happy to see those going through one channel and one channel only. In general, users prefer to use one management client that has rather than various clients for different types of entities.

Initially, during Track 1 there was a very strong resistance to add the HTTP management client to mimic what Track 0 was offering. Very quickly (and after a long debate with the community) it was very obvious that Microsoft was trying to push something that the real world either didn't want or was not ready for. Long story short, the management client was added back. The AMQP option to manage rules was added much earlier, assuming that those operations are very common at runtime and therefore should be supported. Which goes against the your current hypothesis:

Well, it is possible to bundle rule operations together with other data operations in transactions. Our hypothesis is that this is not a common scenario though.

First, let's make sure we don't overload the context here by using the word 'transactions'. Perhaps operation, but not transactions. The word 'transaction' implies a feature supported by Azure Service Bus.
Second, this is not as uncommon as you're assuming. As a matter of fact, it is quite common. Rules are added and modified at runtime more than you can imagine. Most of my customers prefer to have those rules configured and modified from the code that executes data operations rather than script or execute it separately.

It will still be possible to do this bundling even with the change to have the rule management live off of the client, rather than directly on the receiver.

It is what many are doing today. The substantial downside of the HTTP management client as oppose to an AMQP one is speed. HTTP management client is extremely slow.
With that, you should consider getting the feedback from the PG which can elaborate on additional insights of HTTP vs AMQP operations.
A personal note - having similar (or identical) operations in two locations is confusing. I would be happy to see those going through one channel and one channel only. In general, users prefer to use one management client that has rather than various clients for different types of entities.

First, let's make sure we don't overload the context here by using the word 'transactions'. Perhaps operation, but not transactions. The word 'transaction' implies a feature supported by Azure Service Bus.

Yes, I'm specifically referring to the transaction support that Service Bus offers, wherein operations can be grouped together into an atomic unit. The concern with abandoning the rule management from the AMQP layer was that users wouldn't be able to do transactions involving rule management. With the proposal here, users can still do transactions involving rule management, but the rule management operations would live on a separate type than the other data operations.
We haven't gotten to the point of migrating the HTTP management client yet, but the feedback of not wanting to have the same operation available from two locations is helpful.

With that, you should consider getting the feedback from the PG which can elaborate on additional insights of HTTP vs AMQP operations.

Can you clarify what you mean by "PG"?

PG = Product Group

I've never saw the need to mix message and management operations in a transaction. I also don't know if that's even supported, given that a transaction operates on messages and not entities.

I've never saw the need to mix message and management operations in a transaction. I also don't know if that's even supported, given that a transaction operates on messages and not entities.

This was highlighted as a scenario that is supported in the Track 1 libraries - having a transaction that includes both rule operation and message operations. In this proposal, we are still going to support this, but it would involve two types interacting with the service instead of just one.
/cc @nemakam

@SeanFeldman , yeah, there are customers who use update/add/delete rules within a transaction and that does become an important scenario to consider. That's the sole reason for allowing rule management through the regular AMQP path along with the HTTP path.

As for transactions on AMQP, all transactional operations need to be on the same connection. As long as that is satisfied, I'm okay with moving them out to a separate client.

Somewhat related to the conversation - the option of mixing messaging and management operations is not documented anywhere as far as I know. It would be good to document it if that feature survives past track 1. Raised it as a broker issue for now here.

/cc @danielmarbach

Thanks for the participation everyone!
Closing this issue as it has served its purpose. We have moved the new Azure.Messaging.ServiceBus package out of previews and into a stable release (version 7.0.0).
It turned out that including both messaging and rule management operations as part of a single transaction is not supported. Being that this scenario is not supported, we removed the AMQP rule manager client. Rule management can be performed using the operations available on the ServiceBusAdministrationClient which works over HTTP.
See the migration guide from Microsoft.Azure.ServiceBus to Azure.Messaging.ServiceBus for more details

Thanks for the participation everyone!
Closing this issue as it has served its purpose. We have moved the new Azure.Messaging.ServiceBus package out of previews and into a stable release (version 7.0.0).
It turned out that including both messaging and rule management operations as part of a single transaction is not supported. Being that this scenario is not supported, we removed the AMQP rule manager client. Rule management can be performed using the operations available on the ServiceBusAdministrationClient which works over HTTP.
See the migration guide from Microsoft.Azure.ServiceBus to Azure.Messaging.ServiceBus for more details


.NET 6 upgrade plus minimal apis

Hey 👋
would you be interested in an upgrade for Linker to .NET6 and a migration to minimal apis? I may open a PR if you want.
I've appreciated your Cake presentation at the NDC Conferences, and I thought I could contribute to Linker.

Hi there! I'm glad you enjoyed the presentation.
Sure, feel free to open a PR. 👍

#21 is here :)
Let me know what you think. Thanks!


A11y_VscodeWebviewUiToolkit_AllComponents_ProgressBar_ScreenReader: NVDA does not announces any information about "default progress bar" when navigating using down arrow key in browse mode.

Actual:
NVDA does not announces any information about "default progress bar" when navigating using down arrow key in browse mode.
Similar issue is observed with Jaws
Similar issue is with "Default Progress ring"
Expected:
NVDA should be announcing information about "default progress bar" when navigating using down arrow key in browse mode. It should be announcing like "loading"
GitHubTags: #A11yMAS;#A11yTCS;#A11ySev2;#SH_VscodeWebviewUiToolkit_Aug2021;#Webview UI Toolkit for Visual Studio Code;#Win32;#FTP;#DesktopApp;#WCAG1.3.1;#NVDA;#Jaws;#STP;#AINotInScope;
Environment Details:
Application Name: Vscode Webview Ui Toolkit
Windows Version: Win10
Screen Reader: NVDA(2021.1), Jaws(2021.2102.34)
Repro Steps:

Launch VS Code
Open WebView UI Toolkit: All Component extension
Tab to "Progress bar"
Start NVDA in browse mode, use down arrow to navigate to "default progress bar" and check the announcement

User Impact:
Screen Reader users will not get the proper information about the "default progress bar"
“Check out Accessibility Insights! - Identify accessibility bugs before check-in and make bug fixing faster and easier.”

@hawkticehurst  Could you please provide the latest vsix file so that we can verify it, also could you please reopen the bug, it should only be closed by trusted tester

@daviddossett @hawkticehurst Could you please provide the latest vsix file so that we can verify it, also could you please reopen the bug, it should only be closed by trusted tester

Same situation here. This component was removed and thus not applicable for testing.

As per the above comment, the code is removed from the library, so closing the bug.
GitHub:#Closed;


az containerapp up: Fix InvalidResourceType error when cloud in AzureChinaCloud or AzureUSGovernment

This checklist is used to make sure that common guidelines for a pull request are followed.
Related command

az cli fails because GET for "Connnected Environments" resource type fails
"Connnected Environments" resource type is not added to mooncake and fairfax
az containerapp connected-env
az containerapp up
Test with AzureCloud, we can see the az containerapp connected-env, with AzureChinaCloud, it cannot be found.

General Guidelines

[ ] Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
[ ] Have you run python scripts/ci/test_index.py -q locally? (pip install wheel==0.30.0 required)
[ ] My extension version conforms to the Extension version schema

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

Thank you for your contribution! We will review the pull request and get back to you soon.

About Integration test failed, wait for pr: https://github.com/Azure/azure-cli-extensions/pull/7545

About Integration test failed, wait for pr: https://github.com/Azure/azure-cli-extensions/pull/7545

Hi CLI folks @zhoxing-ms  @yonzhan
I want to hind command group when currently account's cloud in AzureChinaCloud or in AzureUSGovernment, it works when I test locally.
But the Linter Failed with error:
Initializing linter with command table and help files...
WARNING: Unable to load extension 'containerapp: Please run 'az login' to setup account.'. Use --debug for more information.

Can you help to take a look? Thanks.
Any suggestion would be appreciated.


Add whisper-jax as new model

https://huggingface.co/spaces/sanchit-gandhi/whisper-jax

Needs TPU to work atm


some Q-s:

its working on windows?
why need server?
can postgrest work without any web-server? for example direct from one index.html file?

its working on windows?
It works on Windows x64, see: https://github.com/begriffs/postgrest/releases/tag/v<IP_ADDRESS>

why need server?
You need a server to run PostgreSQL and PostgREST

can postgrest work without any web-server? for example direct from one index.html file?
If you mean something like nginx or Apache surely you can, Ember.js are just static (JS, HTML, CSS) files. Nevertheless you need a server for PostgreSQL and PostgREST


Mismatch of tensor dimensions.

Hi!
Thanks for your awesome work!
I have a problem running the code with the command
python SSC_train.py --mode l_gen --init_size 32 --l_attention True --vq_size 100 --vqvae_path 1st_stage.tar --l_size 32322 --resume --resume_path 2nd_stage.tar --infer

The problem is at
File "/yxm/code/scene-scale-diffusion/layers/Latent_Level/stage2/gen_denoise.py", line 327, in forward
    x = self.conv_in(x)

with
RuntimeError: Expected 5-dimensional input for 5-dimensional weight [32, 1100, 1, 1, 1], but got 4-dimensional input of size [1, 32, 32, 2] instead

I wonder how to solve this problem.
Looking forward to your reply. Best wishes :)

Thanks for letting me know the error. I fixed the code and weight and uploaded it again :)


The API for uploading files using the knowledge base name has been ad…

…ded.
Resolve the issue #417 .
The API for uploading files using the knowledge base name has been added.
Type of change

[ ] Bug Fix (non-breaking change which fixes an issue)
[x] New Feature (non-breaking change which adds functionality)
[ ] Documentation Update
[ ] Refactoring
[ ] Performance Improvement
[ ] Other (please describe):

Based on the review feedback, I have made the necessary fixes.


tour: The "count each word" exercise should be clarified that case insensitivity is in effect.

Context: https://tour.golang.org/moretypes/20
See above.

Bah. Negations... I meant it the other way around.
The exercise is set up to count "The" and "the" as if they were two different words. Either the test suite should allow for an alternative solution, where the student makes use of strings.ToLower(), or make a note in the instructions about case sensitivity.

Tour issues are tracked in the tour repo. I've migrated this issue there as https://github.com/golang/tour/issues/370. Closing here.


MiCADO-client should create MiCADO with random WebUI credentials

Currently, MiCADO client will by default create a MiCADO cluster with a set of default credentials. In the spirit of security this is probably not a very sensible default.
https://github.com/micado-scale/micado-client/blob/main/micado/installer/ansible.py#L148

#24

fixed in #24


README: Change mailing list

Use new public mailing list<EMAIL_ADDRESS>

Coverage remained the same at ?% when pulling bbaafd8d038811cfad8341e78fd38d5d12fc9b6d on cathay4t:mailing into 31619ca4e02d5571e54d468e002a47ee079bf7e3 on nmstate:master.


Fetch Fasta from NCBI doesn't work

Describe the bug
When running the tool, no matter the entrez query, it errors. When running the tool while Setting the option "Get only the number of sequences" as "Yes" the dataset is green but the number of sequences is not there.
In my opinion, for some reason the tool can't reach the server.
To Reproduce
Steps to reproduce the behavior:

Go to 'Retrieve Fasta from NCBI'
Click on 'Query to NCBI in entrez format'
Write 'phix174[title]'
Run the tool

Expected behavior
Download 154 sequences
Desktop (please complete the following information):

OS: macOS
Browser Frirefox

Tool execution generated the following messages:
head: cannot open 'uid_outfile' for reading: No such file or directory

eutils service seems down:
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/ecitmatch.cgi?db=pubmed&retmode=xml&bdata=proc+natl+acad+sci+u+s+a|1991|88|3248|mann+bj|Art1|
science|1987|235|182|palmenberg+ac|Art2|
return currently:
Unable to route request!

service name: /http/service/ratecontrol
dtab:

base dtab:

override dtab:

Perfect, the eutils are up and running again 👍


Process explorer new tree feedback

I noticed how the process explorer now seems to be using the new tree and I think this is a great change 👍
Some UX things I found meanwhile:

some columns bleed over [1]
I can (still?) not click with the keyboard into a row and see a selection and/or use the keyboard to navigate
clicking a node seems to collapse it without a visual difference (e.g. no twistie) maybe we should prevent that?

[1]

Leaky columns is already fixed:

Moving other issues to more targeted ones:
List styles: https://github.com/microsoft/vscode/issues/123892
Keyboard a11y is captured in https://github.com/microsoft/vscode/issues/120342
Moved twistie issue to https://github.com/microsoft/vscode/issues/123891


org.graalvm.tests.integration.JFRTest.jfrPerfTest fails with latest quarkus main

The JFR perf runner seems to no longer compile with quarkus main:
 Error:  Failed to execute goal on project jfr-native-image-performance: Could not resolve dependencies for project org.graalvm.tests.integration:jfr-native-image-performance:jar:1.0.0-SNAPSHOT: Could not find artifact io.quarkus:quarkus-resteasy-reactive:jar:999-SNAPSHOT -> [Help 1]

See:
https://github.com/graalvm/mandrel/actions/runs/8289954741/job/22688018133#step:11:13726
I believe there was a change in quarkus main which caused this. If we knew the fix, we could apply a similar one.
/cc @Karm

Seems to affect 24.0 too (JDK 22):
https://github.com/graalvm/mandrel/actions/runs/8289954741/job/22688076873#step:11:13736

We see this failure everywhere now. Please prioritize a fix. Thanks!

@jerboaa Ack.

The binary is not there, because the Q build fails:
Mandrel: quay.io/quarkus/ubi-quarkus-mandrel-builder-image:jdk-21
Quarkus: 9d6f6335c66
[WARNING] ClassRealm[plugin>io.quarkus:quarkus-maven-plugin:999-SNAPSHOT, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@277050dc]
com.google.inject.CreationException: Unable to create injector, see the following errors:

1) No implementation for io.quarkus.maven.QuarkusBootstrapProvider annotated with interface org.eclipse.sisu.inject.TypeArguments$Implicit was bound.
  Did you mean?
    io.quarkus.maven.QuarkusBootstrapProvider bound  at org.eclipse.sisu.wire.LocatorWiring

  at org.eclipse.sisu.wire.LocatorWiring

1 error

Gonna port the app/see how it goes...


Doc review

Fixes to formatting and adding project zip file download section.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: samgnaniah:x: Samuel Mervyn GnaniahSamuel Mervyn Gnaniah seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


SDK tries to authenticate by showing SFSafariViewController from view controller whose view is not in the view hierarchy

My rootViewController is a container controller, and my app does some 'fancy footwork' upon launch to get the correct controller in place.
When I try to authenticate Pinterest from an established view controller, it must be trying to present the login controller from the rootViewController, whose view is not in the view hierarchy. Is there any way I can specify the UIViewController from which the SFSafariViewController should be presented? Please?
Warning: Attempt to present <SFSafariViewController: 0x7fc502c86b40> on <LaunchViewController: 0x7fc501720d20> whose view is not in the window hierarchy!

This is what should be fixed. I don't know how to do a pull request. Sorry.
+ (void)openURL:(NSURL *)url
{
    NSString *scheme = [[url scheme] lowercaseString];
    if (NSClassFromString(@"SFSafariViewController") != nil && ([scheme isEqualToString:@"http"] || [scheme isEqualToString:@"https"])) {
        //UIViewController *viewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
        UIViewController *viewController = [UIApplication sharedApplication].keyWindow.rootViewController;
        while (viewController.presentedViewController)
        {
            viewController = viewController.presentedViewController;
        }
        SFSafariViewController *safariViewController = [[SFSafariViewController alloc] initWithURL:url];
        [viewController presentViewController:safariViewController animated:YES completion:nil];
    } else if ([[UIApplication sharedApplication] canOpenURL:url]) {
        [[UIApplication sharedApplication] openURL:url];
    }
}

Also,
In handleCallbackURL:, making the following substitution would be very helpful in dismissing the controller presented in openURL:
            //UIViewController *mainViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
            UIViewController *mainViewController = [UIApplication sharedApplication].keyWindow.rootViewController;
            while (mainViewController.presentedViewController)
            {
                if ([[mainViewController presentedViewController] isKindOfClass:[SFSafariViewController class]]) {
                    break;
                }
                mainViewController = mainViewController.presentedViewController;
            }

            if ([[mainViewController presentedViewController] isKindOfClass:[SFSafariViewController class]]) {
                [mainViewController dismissViewControllerAnimated:YES completion:nil];
            }

Is this something you think you might want to change/update/fix or am I mistaken in some way?

Any thoughts on this issue?

@mommyme Your code is very helpful for me.
I was saw this issue on my project. But I have fixed with your code.
Thanks so much.

can you put that on swift 3 for xcode 8.3.2

because i have tried so much but now i can't do it

yeah @HiramKarim  send me a code, maybe you have the same troble than me, i was calling the method from  a mehtod but ih have to be called into button action

Same error happens with Google SDK and OAuth, i cant perform a segue since SFAuthenticationViewController is not in the window hierarchy. Any one know how I can fix this in Swift?

Hi guys, after many attempts to authenticate using Pinterest SDK for iOS I decide to call the api methods to get the access token and the user information, I know, it should be using the SDK but the Pinterest team seems doesn’t have any interest to fix this issue on iOS. Try using the api calls using webviews With your keys and will work well...for now.
Regards ~


Add saveValidated() method to FormState

Use case
When you have a Form e.g. in a  TabView where some of the Fields are valid but others are not you want to save only the validated fields when the user switches to another page, so that when he comes back you can fill the already valid fields with data.
Currently save() saves all Fields including the not validated.
Proposal
Add a method
FormState.saveValidFields()
That will call the save method of all valid fields.

Could also be done as an argument to save(), if we decide to do it.

Does saving do anything other than call onSaved? If not, this could also be implemented by the developer in their onSaved handlers.

@Hixie  but then I would have to call my validate method in onSaved too ? I think it makes more sense to add this because it's easier to understand what you code intends.


Switch time string parsing to tryparse to handle Julia 1.6.6 change

When parse(Time, str) fails for str="13:13:13142" on Ubuntu Julia 1.6.6, an ArgumentError is thrown instead of an InexactError, but when using tryparse nothing is returned
This switches updates the logic to handle the new return type

Reference links:

InexactError removed: https://github.com/JuliaLang/julia/pull/44004
1.7.3 branch with this change: https://github.com/JuliaLang/julia/commits/kc/1.7.3/stdlib/Dates/src/io.jl

Turns out I was testing locally with Julia 1.6.5, and this fails locally with 1.6.6

If it generates an InexactError on 1.6.5 AND current stable I think we have a case for this being a Julia bug

I'm confused; does tryparse throw an error sometimes? I would have thought we could get rid of the try-catch block if we used tryparse.

I'm confused; does tryparse throw an error sometimes? I would have thought we could get rid of the try-catch block if we used tryparse.

Yes, in Julia 1.6.5 and 1.7.2 it throws InexactError, but in 1.6.6 (and probably 1.7.3) is just returns nothing

Let's put the new behaviour and old behaviour in there and guard with a @static if VERSION ... block, so that we can remove the error-handling when it's no longer necessary.

Let's put the new behaviour and old behaviour in there and guard with a @static if VERSION ... block, so that we can remove the error-handling when it's no longer necessary.

I've added some version based logic

Bump the version to 1.13 and we can merge and tag

updated


use system bower

Drop bower as a requirement and use the system bower instead.
If no system bower is installed, warn the user that stuff might not work.
Fixes #217

Nope, removing bower install completely :D


[curl] build failure

Host Environment

OS:Windows
Compiler: VS2019

To Reproduce
Steps to reproduce the behavior:
./vcpkg install curl:x64-windows
Failure logs
-- Building x64-windows-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:136 (message):
Command failed: D:/ProgramData/CMAKE/bin/cmake.exe --build . --config Debug --target install -- -v
Working Directory: D:/ProgramData/vcpkg/buildtrees/curl/x64-windows-dbg
See logs for more information:
D:\ProgramData\vcpkg\buildtrees\curl\install-x64-windows-dbg-out.log
Call Stack (most recent call first):
scripts/cmake/vcpkg_build_cmake.cmake:96 (vcpkg_execute_build_process)
scripts/cmake/vcpkg_install_cmake.cmake:24 (vcpkg_build_cmake)
ports/curl/portfile.cmake:133 (vcpkg_install_cmake)
scripts/ports.cmake:74 (include)
Error: Building package curl:x64-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with .\vcpkg update, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
Package: curl:x64-windows
Vcpkg version: 2019.07.18-nohash
install-x64-windows-dbg-out.log

@h1063135843, thanks for reporting this issue.
From your log, it failed with 'fatal error C1001: An internal error has occurred in the compiler.' it looks a compiler bug, however I can't repro this issue with same toolset revsion(14.22.27905) and windows sdk(10.0.18362.0) with you. Everything build successfully for me, if the issue persist for you, please following doc to get a preprocessed file, and report a vs feedback to compiler team.


reset password(s)

I lost the pass for the admin user. How can I recover from this without reinstalling the whole thing ?
the docs is a bit succinct.
thanks

There isn't an easy way to recover.  You would need to delete the user from the RethinkDB container and then restart the controller.  This will re-create the default user.

so how to delete the user from RethinkDB container ?


Scope-specific build providers

Proposition
There should be the ability for packages to specify scope-specific build providers, that are automatically checked for eligibility based on the current file that is open. The automatic check would just test to see if the active tab has the scope (example: .source.xml). When the user focuses on a different tab, the scope targets are refreshed for the new active file.
Alternatively, instead of scopes, file extensions could be used. They would be extension-specific providers, I suppose. Regardless, I'll refer to these as "scoped providers".
Details

isEligible() should probably not be a method on scoped providers.
Perhaps the scoped provider objects should not be destroyed and re-constructed upon target refresh, but instead reused?

If the objects are reused, the current file name/extension and cwd should be given as arguments to settings() rather than the constructor.
If the objects are re-constructed, they should be given as arguments to the constructor just like cwd is currently.

Scoped build providers should be refreshed separately from the current regular build providers.

build:refresh-targets should refresh the scoped providers in addition to the regular ones.
The refresh event emitted from regular providers should not refresh the scoped providers, just the regular ones.
The refresh event emitted from scoped providers should refresh just the scoped ones.
Another emittable event, refresh-all, should refresh all providers (maybe not necessary).
Perhaps if the objects are reused, only the emitting scoped provider should be refreshed (unless refresh-all)?

The scopes/extensions (whichever) should be specified either as just a single string, or an array of strings returned from a scopes()/extensions() method on the scoped provider.
consumeBuilder would be updated to also accept an object of this structure:

{
    "normal": [SomeProviderClass, SomeOtherProviderClass],
    "scoped": [SomeScopedProviderClass]
}

Reasoning
This would allow providers to only provide build targets relevant to the currently-opened file if they're only applicable to certain file types/scopes, rather than providing a persistent target config that may not work at all on most files. The refreshing of scoped providers should be made as efficient as possible, since they'll get refreshed much more often.
If one were to replicate this functionality in a current build provider, it'd have to refresh all of the providers every time the user switches tabs, which is certainly not ideal from a performance standpoint. If multiple packages desire this behaviour, several refreshes could be triggered at once. Furthermore, it'd simply be a lot nicer to develop with this functionality built-in to the build package.

Updating consumeBuilder to take an object would actually be unnecessary; just an array of all builders would do. We could check to see if one is a scoped provider simply by checking for the existence of the scopes()/extensions() method.

As an example, I'd like to add assembly/disassembly support to my build-papyrus package. Assembly would only work on .source.papyrus/.psc files, and disassembly would only work on .source.compiled-papyrus/.pex files.

I am sorry for taking ages to reply to this.
This is an interesting idea.
I haven't thought too much about how to solve this, but would it be possible to simple include a scope key in build objects and those targets would only be available when a file with that scope (e.g. .source.papyrus) is open.
In your assembly/disassembly example it could look something like this:
{
  "cmd": "papyrus-disassemble",
  "args": [ "{FILE_ACTIVE}" ],
  "scope": ".source.papyrus"
}

@Gawdl3y would that solve your use-case?


Ultracraft incompatible with Immersive Portals

One of the more popular quality of life mods, "Immersive Portals" causes a game crash when used with Ultracraft. No idea why though

refer to #71


Correct releaseCheck.sh path

Path to releaseCheck.sh was incorrect, it is being executed from with the adopt-github-release Gradle sub-folder, so needs ../sbin/releaseCheck.sh

/merge

/approve

/approve


Added callSessions table to database. Rolled back and redid migrations.

Added callSessions table to database. Rolled back and redid migrations in testing and development environments.
Type of change

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Change status

[x] Complete, tested, ready to review and merge

How Has This Been Tested?
-DB Browser for SQLite
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My code has been reviewed by at least one peer
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] New and existing unit tests pass locally with my changes
[x] There are no merge conflicts

 API Endpoints for getting a group's twilio charges and getting a user's stripe charges


Spark 3.0.0 incompatibilities

Hi,
I'm using Flintrock to deploy a Scala/Spark application to a simple EC2 cluster (master + 1 slave), but I'm having some problems. In particular, I'm using the following custom Flintrock configuration to launch the cluster:
provider: ec2

services:
  spark:
    version: 3.0.0

launch:
  num-slaves: 1
  install-spark: True

providers:
  ec2:
    key-name: my-key-pair
    identity-file: my-key-pair.pem
    instance-type: m4.large
    region: us-east-1
    ami: ami-00b882ac5193044e4
    user: ec2-user
    instance-profile-name: ec2-s3

debug: true

As you can see, I'm using Spark 3.0.0. Once I have packaged my Scala application (using sbt) I perform a Flintrock's copy-file operation. Then, when I want to run the JAR using spark-submit, I have issues:

If I run spark-submit from my local machine using option --master spark://<ec2-master-name>:7077 and --deploy-mode cluster, I get a Java error saying Cannot run program "/usr/local/opt/openjdk@11/bin/java" (in directory "/home/ec2-user/spark/work/driver-20200718133018-0005")
If I run spark-submit from inside the master cluster (using either Flintrock's run-command --master-only or login commands), the job gets correctly submitted, but the spark UI is not reporting it (at <ec2-master-name>:8080). Instead, the application execution can be viewed at <ec2-master-name>:4040, even though in the Executors page only the master seems to be active.

I can't wrap my head around this problem. I don't know if it is some kind of Flintrock's compatibility issue with Spark 3.0.0, or I'm doing something wrong.
I apologize if this is the wrong place where to post this kind of doubts.
However, my environment is the following:

Flintrock version: 1.0.0
Python version: 3.8.4
OS: macOS Catalina 10.15.5
SBT version: 1.3.13
Scala version: 2.12.10
OpenJDK version: 1.8

Thanks for sharing this report, @Wadaboa. This is the correct place to report issues like this.
I haven't tested Flintrock myself with Spark 3.0 yet, so I'm not surprised there are issues.

Cannot run program "/usr/local/opt/openjdk@11/bin/java" (in directory "/home/ec2-user/spark/work/driver-20200718133018-0005")

This looks interesting. Flintrock currently only ensures that Java 8 is available, not Java 11. Spark 3.0 should still work with Java 8, though. Something is causing Spark to look at Java 11.
Are you sure you've built your application against Java 8?
Another possibility is that there is some setting we need to provide to tell Spark 3.0 to use Java 8. The migration guide doesn't mention anything like that, but I haven't looked closely. Maybe try setting JAVA_HOME to point specifically at the Java 8 home directory.

I'm sure I've built my Scala application using Java 8, since running sbt package gives me the following output on the very first line:
[info] welcome to sbt 1.3.13 (AdoptOpenJDK Java 1.8.0_252)

(I'm using jenv to manage different Java versions).
Moreover, building the application on my local machine with Java 8 or Java 11 makes no difference: spark-submit works properly locally.
I also tried to build the application using Java 11, installing Java 11 (I tried with both sudo amazon-linux-extras install java-openjdk11 and Amazon Corretto 11) on the master node and setting Java 11 as the standard Java version (by using alternatives --config java), but It didn't work out.
I assume that to make this "hack" work I would also have to install Java 11 on each slave node, but I was expecting at least some kind of different output/error when launching spark-submit on the cluster, which wasn't the case.
One thing I noticed while looking for Spark's brew formula is that it requires openjdk@11, even though Spark documentation clearly states that version 3.0.0 is still compatible with Java 1.8.

I would try on each cluster node to set JAVA_HOME in spark-env.sh to the Java 8 home and see if that solves the problem.

I tried setting JAVA_HOME in spark-env.sh on each cluster node, by adding the following line:
export JAVA_HOME="/usr/lib/jvm/jre"

The openjdk@11 error is still there. I tried to execute spark-submit both from my local machine and from within the master node, but I get the same behavior as I originally reported.

This is strange. I will give things a shot myself later this week and see if I can get to the bottom of what's going on.

I managed to make it work by doing something sketchy. First of all, I changed my custom Flintrock configuration to be:
provider: ec2

services:
  spark:
    version: 3.0.0
  hdfs:
    version: 2.8.5

launch:
  num-slaves: 1
  install-spark: True
  install-hdfs: True

providers:
  ec2:
    key-name: my-key-pair
    identity-file: my-key-pair.pem
    instance-type: t2.xlarge
    region: us-east-1
    ami: ami-0f84e2a3635d2fac9
    user: ec2-user
    instance-profile-name: ec2-s3

debug: true

Then, after launching the cluster, I ran the following commands:
flintrock run-command <cluster-name> "sudo amazon-linux-extras install -y java-openjdk11"
flintrock run-command <cluster-name> "yes 2 | sudo alternatives --config java"
flintrock run-command <cluster-name> "sudo mkdir -p /usr/local/opt/openjdk@11/bin/"
flintrock run-command <cluster-name> "sudo ln -s /usr/lib/jvm/jre/bin/java /usr/local/opt/openjdk@11/bin/"

Obviously, this is not the go-to solution, but at least it's something. My biggest doubt is still about the /usr/local/opt/openjdk@11/bin/java error, which I think could be related to my local machine, but I really don't know how.

Thank you for looking into this and sharing your workaround. I still plan to look into this as well; sorry I haven't been able to do it yet.

Just did some testing. I cannot reproduce the error you reported with PySpark (REPL or spark-submit) or with the Scala REPL. Everything seems to work fine.
So I guess the problem is triggered by a combination of sbt-built jobs and Spark 3.0. I know that sbt made some breaking changes in the jump from 0.13 to 1.0. I see you're using sbt 1.3.
How about if you try building your application with sbt 0.13? Or some other version of sbt < 1.3?

I tried building my application with sbt 0.13, but nothing changed. I'm almost convinced that this error is related to how Homebrew installs the apache-spark package: inside /usr/local/Cellar/apache-spark/3.0.0/bin/load-spark-env.sh I found the following:
#!/bin/bash
JAVA_HOME="/usr/local/opt/openjdk@11" exec "/usr/local/Cellar/apache-spark/3.0.0/libexec/bin/load-spark-env.sh"  "$@"

I tried removing that initial JAVA_HOME string, but I had no luck.
I will keep investigating and if I find the solution I will post it here.

Oh, hmm... I'm not a Scala guy so humor me here:
Is it possible that when you build your Spark application, the build process somehow references the Homebrew-installed Spark, which includes a dependency on JDK 11? Can you somehow try to build your application against a version of Spark that's built against JDK 8 and see if that helps?
I don't mean to make so much work for you. 😄 If JDK 11 is going to be frequently used with Spark 3.0, perhaps Flintrock should just support this out of the box somehow.
The challenge will be to figure out how to make Flintrock gracefully support both users who use JDK 8 and those who use JDK 11. Or, at the very least, provide some new option or note in the README that JDK 11 users can reference.

Actually, I'm not that much of a Scala guy too.. I'm currently learning the language...
Anyway, I just did some more testing:
I don't think that my issue can be related to Flintrock at all, but it could be related to how Spark and/or it's Homebrew installation manages the --deploy-mode cluster option of spark-submit.
I tried to build Spark 3.0.0 using a custom Homebrew formula to support Java 8 (in this case my JAVA_HOME variable was set to /usr/local/opt/jenv/versions/1.8/, since I'm using jenv to manage multiple Java versions). Then, I created the cluster using Flintrock, as I did before, and I launched spark-submit from my local machine with --deploy-mode cluster: this time the error

Cannot run program "/usr/local/opt/openjdk@11/bin/java" (in directory "/home/ec2-user/spark/work/driver-...")

became

Cannot run program "/usr/local/opt/jenv/versions/1.8/bin/java" (in directory "/home/ec2-user/spark/work/driver-...")

meaning that something related to the driver is not fully executed on the cluster. So, I really don't understand how the --deploy-mode cluster option currently works, since it should just launch the driver directly inside the cluster, instead of running it on the submitter.
Now, I'm not using anymore the hack related to forcing JAVA_HOME on the cluster to be the one on my local machine (as I reported above), but instead I'm running spark-submit directly from the master node of the cluster, like so:
ssh -i <key-pair> <ec2-user>@<ec2-master-name> -t "spark-submit --master spark://<ec2-master-name>:7077 ..."

where <key-pair> is the path to an EC2 key pair .pem file, <ec2-user> is the name of the user in the cluster (Flintrock's user option in the .yaml config) and <ec2-master-name> is the DNS name of the EC2 master node.
Another thing that I noticed is that the reported command works, while the following Flintrock command does not:
flintrock run-command --master-only <ec2-cluster-name> "spark-submit --master spark://<ec2-master-name>:7077 ..."

where <ec2-cluster-name> is the name of the EC2 cluster, given by flintrock describe.
Ideally, the two commands should be doing the same thing, shouldn't they?
About out-of-the-box Flintrock's support of Java 11, what about providing a new option inside the .yaml configuration?

Ideally, the two commands should be doing the same thing, shouldn't they?

They should. Do you get an error with flintrock run-command, or just no output?

About out-of-the-box Flintrock's support of Java 11, what about providing a new option inside the .yaml configuration?

That could work, though I am more inclined to just have Flintrock automatically make things work whether Java 8 or Java 11 are being used, if that's not too complicated.

Hi Nicholas,
Just noticed this issue. I have been routinely using Flintrock to run Spark 3.0 on Java 11 for many months. My multi-jdk-support is still a bit ugly and I am wary of Don't expand the support matrix.
BTW, generally I run Spark from the master node rather than my desktop FWIW.

Replying to @nchammas, flintrock run-command just hangs, while the ssh command reported above works like a charm.
Replying to @sfcoy, now I also run Spark from the master node.. running from my desktop does not seem to consistently work.

@sfcoy - That's good to know, and I appreciate the restraint to add more supported configurations.
Do you know if there is any reason to install Java 8 if the cluster is being launched with Spark 3+? If apps built with Java 8 can be deployed to a Java 11 runtime, perhaps we can just install Java 11 automatically when Spark is set to 3.0 or newer. That saves us from needing to add a user-facing option.
@Wadaboa - That definitely sounds like a bug. Does that happen just with spark-submit, or does it also happen if you try something more mundane like flintrock run-command --master-only <ec2-cluster-name> "ls /tmp"?
Also, are you sure the command hangs, or is it just that it doesn't return any output unless there is an error? See #135 for a potentially relevant issue.

Hi @nchammas, as far as Java 11 goes, we cannot use it if the user chooses to use HDFS. Hadoop 3.3 (released July 2020) is required for Java 11 and as yet the Apache Spark team have not discussed publicly (that I have noticed) when they will build releases that include this. Of course it is trivial to build one's own release.
I'm not sure it is a good idea to auto select the JDK because some users may have their own libraries that are not JDK 11 compatible.

@nchammas - You are right, it works, it just doesn't return any output unless there is an error. I wasn't aware of the actual workings of the command.
Anyway, I agree with issue #135 that it could be valuable to actually see the output produced by run-command. Maybe implementing a new module, different from run-command, could be useful.

@Wadaboa - I think run-command could perhaps be refactored or rewritten as a wrapper around parallel-ssh. Let's continue that conversation over on #135.
@sfcoy - Would you like to submit a PR that adds an option to Flintrock allowing the user to specify the Java version they want deployed to the cluster? I took a quick look at your branch and it looks like a very good start to me. I think with a few refinements we can get this in and release it as part of Flintrock 1.1.

Sure thing. I also think that "no JDK" should be an option as well. That way users can choose an AMI which includes the required JDK.

#316 was merged in, which addresses the Java 11 issue. I'm closing this.
If there are any remaining problems here not covered by existing issues (like #135), please speak up!

#316 was merged in, which addresses the Java 11 issue. I'm closing this.
If there are any remaining problems here not covered by existing issues (like #135), please speak up!