[NEW ALGORITHM]  Input Enhancement in String Matching: The Knuth-Morris-Pratt algorithm

Description:
Given two strings txt and pat of size N and M, where N > M. String txt and pat represent the text and pattern respectively. The task is to print all indexes of occurrences of pattern string in the text string. Use one-based indexing while returning the indices.
Checklist:

[x] Contributor in GSSoC-ext
[x] Want to work on it

Additional Information:
The KMP matching algorithm uses degenerating property (pattern having the same sub-patterns appearing more than once in the pattern) of the pattern and improves the worst-case complexity to O(n+m).
The basic idea behind KMP’s algorithm is: whenever we detect a mismatch (after some matches), we already know some of the characters in the text of the next window. We take advantage of this information to avoid matching the characters that we know will anyway match.

Can u assign me this issue


The S3 upload_assets routine can fail on pod startup, resulting in pages referencing S3-hosted files that don't exist

Bug Description

It's possible for Discourse to fail its S3 upload_assets routine after a restart, resulting in errors like the one above.
The HTML served from the pods loads fine, but the e.g. Javascript URLs referenced within are for paths expected to be created by the upload_assets routine, but which were never uploaded to S3.
This results in a broken page with a spinner, the main content never appears.
To Reproduce
Deploy the application with s3_enabled=True and all associated config set.
Wait for (or force) a restart.
Be unlucky enough to experience this bug (it's unclear how/why it happened).
Environment
prod-discourse-ubuntu-com-k8s@is-bastion-ps6:~$ juju version
3.1.6-ubuntu-amd64
prod-discourse-ubuntu-com-k8s@is-bastion-ps6:~$ juju status
Model                          Controller    Cloud/Region         Version  SLA          Timestamp
prod-discourse-ubuntu-com-k8s  prodstack-is  k8s-prod-is/default  3.1.6    unsupported  14:59:38Z

SAAS        Status  Store         URL
grafana     active  local         admin/prod-cos-k8s-ps6-is-charms.grafana
loki        active  local         admin/prod-cos-k8s-ps6-is-charms.loki
postgresql  active  prodstack-is  admin/prod-discourse-ubuntu-com-db.postgresql
prometheus  active  local         admin/prod-cos-k8s-ps6-is-charms.prometheus

App                       Version  Status  Scale  Charm                     Channel        Rev  Address        Exposed  Message
discourse-k8s             3.2.0    active      2  discourse-k8s             latest/stable   95  <IP_ADDRESS>   no
nginx-ingress-integrator  25.3.0   active      1  nginx-ingress-integrator  latest/stable   81  <IP_ADDRESS>   no
redis-k8s                 7.0.4    active      1  redis-k8s                 latest/edge     26  <IP_ADDRESS>  no

Unit                         Workload  Agent  Address          Ports  Message
discourse-k8s/0              active    idle   <IP_ADDRESS>
discourse-k8s/1*             active    idle   <IP_ADDRESS>
nginx-ingress-integrator/0*  active    idle   <IP_ADDRESS>
redis-k8s/0*                 active    idle   <IP_ADDRESS>
prod-discourse-ubuntu-com-k8s@is-bastion-ps6:~$

This is running on an Openstack cloud, with S3 integration enabled.
Relevant log output
This behaviour doesn't appear to be logged, a simple solution might be to add retry logic to the `image/scripts/pod_setup` script, if I'm understanding how this works correctly.

Additional context
No response

It seems like the behaviour must be logged somewhere (and if it isn't perhaps there's a logging level we can adjust). There's juju debug-log, the workload container logs, and logs in /srv/discourse/app/log in the discourse container as well. If we can get an exact time/instance where this happens and can look at the logs relatively quickly (before they rotate out or the pod is restarted again) we should have enough info to figure out what's happening.

Saw this in the logs:
unit-discourse-k8s-1: 2024-04-16 03:59:43 ERROR unit.discourse-k8s/1.juju-log S3 migration failed with code 1.
Traceback (most recent call last):
  File "./src/charm.py", line 606, in _run_s3_migration
    process.wait_output()
  File "/var/lib/juju/agents/unit-discourse-k8s-1/charm/venv/ops/pebble.py", line 1441, in wait_output
    raise ExecError[AnyStr](self._command, exit_code, out_value, err_value)
ops.pebble.ExecError: non-zero exit code 1 executing ['/srv/discourse/app/bin/bundle', 'exec', 'rake', 's3:upload_assets'], stdout='gem install rrule -v 0.4.4 -i /srv/discourse/app/plugins/discourse-calendar/gems/3.2.2 --no-document --ignore-dependencies
 --no-user-install\nSuccessfully installed rrule-0.4.4\n1 gem installed\ngem install webrick -v 1.7.0 -i /srv/discourse/app/plugins/discourse-prometheus/gems/3.2.2 --no-document --ignore-dependencies --no-user-install\nSuccessfully installed webrick-1.7.
0\n1 gem installed\ngem install prometheus_exporter -v 2.0.6 -i /srv/discourse/app/plugins/discourse-prometheus/gems/3.2.2 --no-document --ignore-dependencies --no-user-install\nprometheus_exporter will only bind to localhost by default as of v0.5\nSucce
ssfully installed prometheus_exporter-2.0.6\n1 gem installed\ngem install macaddr -v 1.0.0 -i /srv/discourse/app/plugins/discourse-saml/gems/3.2.2 --no-document --ignore-dependencies --no-user-install\nSuccessfully installed macaddr-1.0.0\n1 gem installe
d\ngem install uuid -v 2.3.7 -i /srv/discourse/app/plugins/discourse-saml/gems/3.2.2 --no-document --ignore-dependencies --no-user-install\nSuccessfully i' [truncated], stderr="Couldn't connect to Redis\nrake aborted!\nRedis::CannotConnectError: Error co
nnecting to Redis on <IP_ADDRESS>:6379 (Redis::TimeoutError)\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:398:in `rescue in establish_connection'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/red
is/client.rb:379:in `establish_connection'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:115:in `block in connect'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:344:in `with_reconnec
t'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:114:in `connect'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:409:in `ensure_connected'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0
/gems/redis-4.8.1/lib/redis/client.rb:269:in `block in process'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:356:in `logging'\n/srv/discourse/app/vendor/bundle" [truncated]
unit-discourse-k8s-1: 2024-04-16 03:59:43 ERROR unit.discourse-k8s/1.juju-log Uncaught exception while in charm code:
Traceback (most recent call last):
  File "./src/charm.py", line 791, in <module>
    main(DiscourseCharm, use_juju_for_storage=True)
  File "/var/lib/juju/agents/unit-discourse-k8s-1/charm/venv/ops/main.py", line 436, in main
    _emit_charm_event(charm, dispatcher.event_name)
  File "/var/lib/juju/agents/unit-discourse-k8s-1/charm/venv/ops/main.py", line 144, in _emit_charm_event
    event_to_emit.emit(*args, **kwargs)
  File "/var/lib/juju/agents/unit-discourse-k8s-1/charm/venv/ops/framework.py", line 351, in emit
    framework._emit(event)
  File "/var/lib/juju/agents/unit-discourse-k8s-1/charm/venv/ops/framework.py", line 853, in _emit
    self._reemit(event_path)
  File "/var/lib/juju/agents/unit-discourse-k8s-1/charm/venv/ops/framework.py", line 942, in _reemit
    custom_handler(event)
  File "./src/charm.py", line 194, in _on_config_changed
    self._configure_pod()
  File "./src/charm.py", line 673, in _configure_pod
    self._run_s3_migration()
  File "./src/charm.py", line 606, in _run_s3_migration
    process.wait_output()
  File "/var/lib/juju/agents/unit-discourse-k8s-1/charm/venv/ops/pebble.py", line 1441, in wait_output
    raise ExecError[AnyStr](self._command, exit_code, out_value, err_value)
ops.pebble.ExecError: non-zero exit code 1 executing ['/srv/discourse/app/bin/bundle', 'exec', 'rake', 's3:upload_assets'], stdout='gem install rrule -v 0.4.4 -i /srv/discourse/app/plugins/discourse-calendar/gems/3.2.2 --no-document --ignore-dependencies
 --no-user-install\nSuccessfully installed rrule-0.4.4\n1 gem installed\ngem install webrick -v 1.7.0 -i /srv/discourse/app/plugins/discourse-prometheus/gems/3.2.2 --no-document --ignore-dependencies --no-user-install\nSuccessfully installed webrick-1.7.
0\n1 gem installed\ngem install prometheus_exporter -v 2.0.6 -i /srv/discourse/app/plugins/discourse-prometheus/gems/3.2.2 --no-document --ignore-dependencies --no-user-install\nprometheus_exporter will only bind to localhost by default as of v0.5\nSucce
ssfully installed prometheus_exporter-2.0.6\n1 gem installed\ngem install macaddr -v 1.0.0 -i /srv/discourse/app/plugins/discourse-saml/gems/3.2.2 --no-document --ignore-dependencies --no-user-install\nSuccessfully installed macaddr-1.0.0\n1 gem installe
d\ngem install uuid -v 2.3.7 -i /srv/discourse/app/plugins/discourse-saml/gems/3.2.2 --no-document --ignore-dependencies --no-user-install\nSuccessfully i' [truncated], stderr="Couldn't connect to Redis\nrake aborted!\nRedis::CannotConnectError: Error co
nnecting to Redis on <IP_ADDRESS>:6379 (Redis::TimeoutError)\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:398:in `rescue in establish_connection'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/red
is/client.rb:379:in `establish_connection'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:115:in `block in connect'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:344:in `with_reconnec
t'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:114:in `connect'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:409:in `ensure_connected'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0
/gems/redis-4.8.1/lib/redis/client.rb:269:in `block in process'\n/srv/discourse/app/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:356:in `logging'\n/srv/discourse/app/vendor/bundle" [truncated]
unit-discourse-k8s-1: 2024-04-16 03:59:43 ERROR juju.worker.uniter.operation hook "config-changed" (via hook dispatching script: dispatch) failed: exit status 1

This should be fixed by now, as not using the stored state, if the pod restarts it should upload the assets correctly. Besides, the assets are now precompiled in the rock, so they will not change if the image does not change.


Automated cherry pick of #4666: fix: guess brand on guest create

Cherry pick of #4666 on release/2.13.
#4666: fix: guess brand on guest create

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.13@e7b1dff). Click here to learn what that means.
The diff coverage is 0%.

@@              Coverage Diff               @@
##             release/2.13   #4673   +/-   ##
==============================================
  Coverage                ?   6.87%
==============================================
  Files                   ?     523
  Lines                   ?   88991
  Branches                ?       0
==============================================
  Hits                    ?    6116
  Misses                  ?   82368
  Partials                ?     507

Flag
Coverage Δ

#aFlag
6.87% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/disks.go
0.55% <0%> (ø)

pkg/compute/models/cloudaccounts.go
0.84% <0%> (ø)

pkg/compute/models/guests.go
0.56% <0%> (ø)

Continue to review full report at Codecov.

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


Avoid potential infinite loop on account purge

LGTM.
On another note, I noticed that AccountPurge should suffer from the same problem we seen in HostPurge. It stops and removes container via execute and keys off of the removed property being null.

@cjellick I'm going to merge assuming that you are going to fix the removed field thing.


feat: consumer support specify serialization type

What is the purpose of the change
consumer support specify serialization type
Brief changelog
dubbo-common/src/main/java/org/apache/dubbo/config/AbstractReferenceConfig.java
dubbo-common/src/main/java/org/apache/dubbo/config/annotation/DubboReference.java
dubbo-common/src/main/java/org/apache/dubbo/config/annotation/Reference.java
dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilder.java
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Configure it in the XSD file

done

Hi, any news regrading this features?

Hi, any news regrading this features?

Need to be handled by committer
@AlbumenJ A

@AlbumenJ please review this pull request.

@AlbumenJ


JdbcTableListener error store cant handle filename as storageID

Describe the issue
JdbcTableListener error store cant handle filename as storageID.
Reporter
@diedekerkhof
Input
StoreageID in message is: /opt/data/WAS/wasap08/fxf-work/NNX04734/inProcess/schade.edi.20240314120000018-2024-03-14T14_17_34.686 and the url to see the error contains / represented by %252F.
Maybe allowUrlEncodedPercent has someting to do with it

I'm unable to reproduce this. Can you confirm which FF version you're using?

https://github.com/frankframework/frankframework/issues/5748
https://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/web/firewall/StrictHttpFirewall.html#setAllowUrlEncodedSlash(boolean)
/iaf/api/configurations/Services/adapters/MFHProcessor/receivers/JdbcTableListener%20%5BIBISFILETRIGGER_listener%5D/stores/Error/messages/%252Fopt%252Fdata%252FWAS%252Fwasap08%252Ffxf-work%252FNNX04734%252FinProcess%252Fschade.edi.20240314120000018-2024-03-14T14_17_34.686


Implement method to add __typename field to queries

Added the __typename addition logic with unit tests. Haven't integrated with QueryManager yet - will do that as the next step. #27
TODO:

[ ] Update CHANGELOG.md with your change
[ ] Make sure all of the significant new logic is covered by tests
[ ] Rebase your changes on master so that they can be merged easily
[ ] Make sure all tests and linter rules pass

I have made the changes - I will close this PR and open another one.

@Poincare why close this PR?

I think @Poincare was just a bit confused about GitHub

Looks like a great start! Merging.

@Poincare this is awesome!!


Removed extraneous lines and normalized headers

Updated header tags and removed (temporarily) incomplete ending.

Ready for LIVE


Fall Back Authentication

Laravel Version: 6.10
Adldap2-Laravel Version: 6.0
PHP Version: 7.2
LDAP Type: AD
Description:
I'm rewriting our local intranet to take advantage of AD.
Our current intranet site requires the users to be manually added to the system.  This is where my issue arises.
Most (almost all) users TRUE email accounts are<EMAIL_ADDRESS>However in general, most users dont realize this and are using alias emails (ie -<EMAIL_ADDRESS>I've successfully pulled down both the userprincipalname -<EMAIL_ADDRESS>And the alias to my database, both as an import and on login (no import done).
When LDAP is connected, I can validate against the alias, and everything logs in perfectly.
When LDAP is NOT connected (given this would be a rarity, but I need the fall back) -> using the users table in Laravel as the source of Authentication fails everytime.
I've tried modifying the username function in my LoginController but it doesnt seem to work.
Additionally I really need to be able to go "if alias == null { return email }"
Any pointers on where I could start with this on ADLDAP?

Steps To Reproduce:
.env
LDAP_USERNAME="ldap_user"
LDAP_PASSWORD="ldap_user_password"
LDAP_ACCOUNT_PREFIX=''
LDAP_ACCOUNT_SUFFIX=''
LDAP_PORT=389
LDAP_BASE_DN="dc=company,dc=corp"
LDAP_HOSTS="ldap_ip_addy"
LDAP_USE_SSL=false
LDAP_USE_TLS=false
ldap_auth.php
`<?php
return [
/*
|--------------------------------------------------------------------------
| Connection
|--------------------------------------------------------------------------
|
| The LDAP connection to use for Laravel authentication.
|
| You must specify connections in your `config/ldap.php` configuration file.
|
*/

'connection' => env('LDAP_CONNECTION', 'default'),

/*
|--------------------------------------------------------------------------
| Provider
|--------------------------------------------------------------------------
|
| The LDAP authentication provider to use depending
| if you require database synchronization.
|
| For synchronizing LDAP users to your local applications database, use the provider:
|
| Adldap\Laravel\Auth\DatabaseUserProvider::class
|
| Otherwise, if you just require LDAP authentication, use the provider:
|
| Adldap\Laravel\Auth\NoDatabaseUserProvider::class
|
*/

'provider' => Adldap\Laravel\Auth\DatabaseUserProvider::class,

/*
|--------------------------------------------------------------------------
| Model
|--------------------------------------------------------------------------
|
| The model to utilize for authentication and importing.
|
| This option is only applicable to the DatabaseUserProvider.
|
*/

'model' => App\User::class,

/*
|--------------------------------------------------------------------------
| Rules
|--------------------------------------------------------------------------
|
| Rules allow you to control user authentication requests depending on scenarios.
|
| You can create your own rules and insert them here.
|
| All rules must extend from the following class:
|
|   Adldap\Laravel\Validation\Rules\Rule
|
*/

'rules' => [

    // Denys deleted users from authenticating.

    Adldap\Laravel\Validation\Rules\DenyTrashed::class,

    // Allows only manually imported users to authenticate.

   // Adldap\Laravel\Validation\Rules\OnlyImported::class,

    App\LDAP\Rules\GetUsers::class,

],

/*
|--------------------------------------------------------------------------
| Scopes
|--------------------------------------------------------------------------
|
| Scopes allow you to restrict the LDAP query that locates
| users upon import and authentication.
|
| All scopes must implement the following interface:
|
|   Adldap\Laravel\Scopes\ScopeInterface
|
*/
/*
'scopes' => [

    // Only allows users with a user principal name to authenticate.
    // Suitable when using ActiveDirectory.
    // Adldap\Laravel\Scopes\UpnScope::class,

    // Only allows users with a uid to authenticate.
    // Suitable when using OpenLDAP.
    // Adldap\Laravel\Scopes\UidScope::class,

],
*/
'identifiers' => [

    /*
    |--------------------------------------------------------------------------
    | LDAP
    |--------------------------------------------------------------------------
    |
    | Locate Users By:
    |
    |   This value is the users attribute you would like to locate LDAP
    |   users by in your directory.
    |
    |   For example, using the default configuration below, if you're
    |   authenticating users with an email address, your LDAP server
    |   will be queried for a user with the a `userprincipalname`
    |   equal to the entered email address.
    |
    | Bind Users By:
    |
    |   This value is the users attribute you would
    |   like to use to bind to your LDAP server.
    |
    |   For example, when a user is located by the above attribute,
    |   the users attribute you specify below will be used as
    |   the 'username' to bind to your LDAP server.
    |
    |   This is usually their distinguished name.
    |
    */

    'ldap' => [

        //'locate_users_by' => 'userprincipalname',
        'locate_users_by' => 'mail',

        'bind_users_by' => 'distinguishedname',

    ],

    'database' => [

        /*
        |--------------------------------------------------------------------------
        | GUID Column
        |--------------------------------------------------------------------------
        |
        | The value of this option is the database column that will contain the
        | LDAP users global identifier. This column does not need to be added
        | to the sync attributes below. It is synchronized automatically.
        |
        | This option is only applicable to the DatabaseUserProvider.
        |
        */

        'guid_column' => 'objectguid',

        /*
        |--------------------------------------------------------------------------
        | Username Column
        |--------------------------------------------------------------------------
        |
        | The value of this option is the database column that contains your
        | users login username.
        |
        | This column must be added to your sync attributes below to be
        | properly synchronized.
        |
        | This option is only applicable to the DatabaseUserProvider.
        |
        */

        'username_column' => 'email',

    ],

    /*
    |--------------------------------------------------------------------------
    | Windows Authentication Middleware (SSO)
    |--------------------------------------------------------------------------
    |
    | Local Users By:
    |
    |   This value is the users attribute you would like to locate LDAP
    |   users by in your directory.
    |
    |   For example, if 'samaccountname' is the value, then your LDAP server is
    |   queried for a user with the 'samaccountname' equal to the value of
    |   $_SERVER['AUTH_USER'].
    |
    |   If a user is found, they are imported (if using the DatabaseUserProvider)
    |   into your local database, then logged in.
    |
    | Server Key:
    |
    |    This value represents the 'key' of the $_SERVER
    |    array to pull the users account name from.
    |
    |    For example, $_SERVER['AUTH_USER'].
    |
    */

    'windows' => [

        'locate_users_by' => 'samaccountname',

        'server_key' => 'AUTH_USER',

    ],

],

'passwords' => [

    /*
    |--------------------------------------------------------------------------
    | Password Sync
    |--------------------------------------------------------------------------
    |
    | The password sync option allows you to automatically synchronize users
    | LDAP passwords to your local database. These passwords are hashed
    | natively by Laravel using the Hash::make() method.
    |
    | Enabling this option would also allow users to login to their accounts
    | using the password last used when an LDAP connection was present.
    |
    | If this option is disabled, the local database account is applied a
    | random 16 character hashed password upon first login, and will
    | lose access to this account upon loss of LDAP connectivity.
    |
    | This option is only applicable to the DatabaseUserProvider.
    |
    */

    'sync' => env('LDAP_PASSWORD_SYNC', true),

    /*
    |--------------------------------------------------------------------------
    | Column
    |--------------------------------------------------------------------------
    |
    | This is the column of your users database table
    | that is used to store passwords.
    |
    | Set this to `null` if you do not have a password column.
    |
    | This option is only applicable to the DatabaseUserProvider.
    |
    */

    'column' => 'password',

],

/*
|--------------------------------------------------------------------------
| Login Fallback
|--------------------------------------------------------------------------
|
| The login fallback option allows you to login as a user located on the
| local database if active directory authentication fails.
|
| Set this to true if you would like to enable it.
|
| This option is only applicable to the DatabaseUserProvider.
|
*/

'login_fallback' => env('LDAP_LOGIN_FALLBACK', true),

/*
|--------------------------------------------------------------------------
| Sync Attributes
|--------------------------------------------------------------------------
|
| Attributes specified here will be added / replaced on the user model
| upon login, automatically synchronizing and keeping the attributes
| up to date.
|
| The array key represents the users Laravel model key, and
| the value represents the users LDAP attribute.
|
| You **must** include the users login attribute here.
|
| This option is only applicable to the DatabaseUserProvider.
|
*/

'sync_attributes' => [

    'email' => 'userprincipalname',

	'emailMask' => 'mail',

    'username' => 'mailnickname',

    'name' => 'cn',

	'DN' => 'distinguishedname',

],

/*
|--------------------------------------------------------------------------
| Logging
|--------------------------------------------------------------------------
|
| User authentication attempts will be logged using Laravel's
| default logger if this setting is enabled.
|
| No credentials are logged, only usernames.
|
| This is usually stored in the '/storage/logs' directory
| in the root of your application.
|
| This option is useful for debugging as well as auditing.
|
| You can freely remove any events you would not like to log below,
| as well as use your own listeners if you would prefer.
|
*/

'logging' => [

    'enabled' => env('LDAP_LOGGING', true),

    'events' => [

        \Adldap\Laravel\Events\Importing::class => \Adldap\Laravel\Listeners\LogImport::class,
        \Adldap\Laravel\Events\Synchronized::class => \Adldap\Laravel\Listeners\LogSynchronized::class,
        \Adldap\Laravel\Events\Synchronizing::class => \Adldap\Laravel\Listeners\LogSynchronizing::class,
        \Adldap\Laravel\Events\Authenticated::class => \Adldap\Laravel\Listeners\LogAuthenticated::class,
        \Adldap\Laravel\Events\Authenticating::class => \Adldap\Laravel\Listeners\LogAuthentication::class,
        \Adldap\Laravel\Events\AuthenticationFailed::class => \Adldap\Laravel\Listeners\LogAuthenticationFailure::class,
        \Adldap\Laravel\Events\AuthenticationRejected::class => \Adldap\Laravel\Listeners\LogAuthenticationRejection::class,
        \Adldap\Laravel\Events\AuthenticationSuccessful::class => \Adldap\Laravel\Listeners\LogAuthenticationSuccess::class,
        \Adldap\Laravel\Events\DiscoveredWithCredentials::class => \Adldap\Laravel\Listeners\LogDiscovery::class,
        \Adldap\Laravel\Events\AuthenticatedWithWindows::class => \Adldap\Laravel\Listeners\LogWindowsAuth::class,
        \Adldap\Laravel\Events\AuthenticatedModelTrashed::class => \Adldap\Laravel\Listeners\LogTrashedModel::class,

    ],
],

];`
Let me know if you need anything else that might help you in pointing me in the correct direction.  I'm relatively new (6 mo) to laravel so havent gotten all the ins and outs of it in step yet.
Thanks in Advance.

I've got the system checking both fields now both when AD is Connected & when AD is disconnected.
However when disconnected, it still only logs in via the email. (It is checking the alias (ie - emailMask in my db).
Here's the code I added to get this far.
Login Form

			{{ __('E-Mail') }}

	<input id="login" type="text" c class="form-control{{ $errors->has('emailMask') || $errors->has('email') ? ' is-invalid' : '' }}" name="login" value="{{ old('emailMask') ?: old('email') }}" required autofocus>
                 @if ($errors->has('emailMask') || $errors->has('email'))

                               {{ $errors->first('emailMask') ?: $errors->first('email') }}

                  @endif

###LoginController.php
protected $username;

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
		$this->username = $this->findUsername();
    }

    /**
     * Get the login username to be used by the controller.
     *
     * @return string
     */
    public function findUsername()
    {
        $login = request()->input('login');

        $fieldType = 'email';

		if(User::where('email', $login)->first() != null) {
			$fieldType = 'email';
		}else if (User::where('emailMask', $login)->first() != null) {
			$fieldType = 'emailMask';
		}

        request()->merge([$fieldType => $login]);

        return $fieldType;
    }

    /**
     * Get username property.
     *
     * @return string
     */
    public function username()
    {
        return $this->username;
    }

And the returned error when using the alias email account.

Hi @devilwacause,
Login fallback will only work if:

The user has logged in previously while your LDAP connection was accessible and active
password_sync was enabled at the time of the user logging in last

This is because Adldap2 will utilize the EloquentUserProvider to fall back if the LDAP connection cannot be contacted, and will attempt to authenticate the user with their credentials that are stored in the database. If password_sync was not enabled, then their password has not been saved into the database - it has been set to a random 16 character hashed string.
I hope this answers your question!

Found a solution to this issue.
By rewriting bits of
/adldap2/adldap2-laravel/src/Resolvers/UserResolver.php
&&
/adldap2/adldap2-laravel/src/Resolbers/ResolverInterface.php
I'm able to use an array in the ldap_auth.php file for the username_column and the locate_users_by configurations.
Below are the changes I made.  If this benefits anybody else I'll gladly push up a branch with changes.
UserResolver.php
/**
     * {@inheritdoc}
     */
    public function byCredentials(array $credentials = [])
    {
		//dd($credentials);
        if (empty($credentials)) {
            return;
        }

		$NoDatabaseUser = false;
		$attribute = null;
		$attrIsArray = false;
		$LdapDAttrArray = false;
		$key = null;

		if($this->getAppAuthProvider() instanceof NoDatabaseUserProvider) {
			$NoDatabaseUser = true;
		}

		if($NoDatabaseUser) {
			if(is_array(Config::get('ldap_auth.identifiers.ldap.locate_users_by', 'false'))) {
				$attribute = $this->getLdapDiscoveryAttributes();
				$attrIsArray = true;
				$LdapDAttrArray = true;
			}else{
				$attribute = $this->getLdapDiscoveryAttribute();
			}
		}else{
			if(is_array(Config::get('ldap_auth.identifiers.ldap.locate_users_by', 'false'))) {
				$LdapDAttrArray = true;
			}
			if(is_array(Config::get('ldap_auth.identifiers.database.username_column', 'false'))) {
				$attribute = $this->getDatabaseUsernameColumns();
				$attrIsArray = true;
			}else{
				$attribute = $this->getDatabaseUsernameColumn();
			}
		}

		if($attrIsArray) {
			$keyexists = false;
			foreach($attribute as $attr) {
				if(array_key_exists($attr, $credentials)){
					$key = $attr;
					$keyexists = true;
				}
			}
			if (!$keyexists) {
				throw new RuntimeException(
					"The '$attribute' key is missing from the given credentials array."
				);
			}
		}else{
			$key = $attribute;
		}

		if($LdapDAttrArray) {
			return $this->query()->whereEquals(
				$this->getLdapDiscoveryAttributes(),
				$credentials[$key]
			)->first();
		}else{
			return $this->query()->whereEquals(
				$this->getLdapDiscoveryAttribute(),
				$credentials[$key]
			)->first();
		}
    }

/**
     * {@inheritdoc}
     */
    public function getLdapDiscoveryAttributes() : array
    {
        $attributes = Config::get('ldap_auth.identifiers.ldap.locate_users_by', ['userprincipalname']);
		return $attributes;
    }

	/**
     * {@inheritdoc}
     */
    public function getDatabaseUsernameColumns() : array
    {
        $columns = Config::get('ldap_auth.identifiers.database.username_column', ['email']);
		return $columns;
    }

###ResolverInterface.php
/**
     * Retrieves the configured LDAP users username attribute.
     *
     * @return string
     */
    public function getLdapDiscoveryAttributes() : array;

/**
     * Retrieves the configured database username attributes.
     *
     * @return string
     */
    public function getDatabaseUsernameColumns() : array;

a new example of my ldap_auth.php file
<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Connection
    |--------------------------------------------------------------------------
    |
    | The LDAP connection to use for Laravel authentication.
    |
    | You must specify connections in your `config/ldap.php` configuration file.
    |
    */

    'connection' => env('LDAP_CONNECTION', 'default'),

    /*
    |--------------------------------------------------------------------------
    | Provider
    |--------------------------------------------------------------------------
    |
    | The LDAP authentication provider to use depending
    | if you require database synchronization.
    |
    | For synchronizing LDAP users to your local applications database, use the provider:
    |
    | Adldap\Laravel\Auth\DatabaseUserProvider::class
    |
    | Otherwise, if you just require LDAP authentication, use the provider:
    |
    | Adldap\Laravel\Auth\NoDatabaseUserProvider::class
    |
    */

    'provider' => Adldap\Laravel\Auth\DatabaseUserProvider::class,

    /*
    |--------------------------------------------------------------------------
    | Model
    |--------------------------------------------------------------------------
    |
    | The model to utilize for authentication and importing.
    |
    | This option is only applicable to the DatabaseUserProvider.
    |
    */

    'model' => App\User::class,

    /*
    |--------------------------------------------------------------------------
    | Rules
    |--------------------------------------------------------------------------
    |
    | Rules allow you to control user authentication requests depending on scenarios.
    |
    | You can create your own rules and insert them here.
    |
    | All rules must extend from the following class:
    |
    |   Adldap\Laravel\Validation\Rules\Rule
    |
    */

    'rules' => [

        // Denys deleted users from authenticating.

        Adldap\Laravel\Validation\Rules\DenyTrashed::class,

        // Allows only manually imported users to authenticate.

       // Adldap\Laravel\Validation\Rules\OnlyImported::class,

        App\LDAP\Rules\GetUsers::class,

    ],

    /*
    |--------------------------------------------------------------------------
    | Scopes
    |--------------------------------------------------------------------------
    |
    | Scopes allow you to restrict the LDAP query that locates
    | users upon import and authentication.
    |
    | All scopes must implement the following interface:
    |
    |   Adldap\Laravel\Scopes\ScopeInterface
    |
    */
	/*
    'scopes' => [

        // Only allows users with a user principal name to authenticate.
        // Suitable when using ActiveDirectory.
        // Adldap\Laravel\Scopes\UpnScope::class,

        // Only allows users with a uid to authenticate.
        // Suitable when using OpenLDAP.
        // Adldap\Laravel\Scopes\UidScope::class,

    ],
	*/
    'identifiers' => [

        /*
        |--------------------------------------------------------------------------
        | LDAP
        |--------------------------------------------------------------------------
        |
        | Locate Users By:
        |
        |   This value is the users attribute you would like to locate LDAP
        |   users by in your directory.
        |
        |   For example, using the default configuration below, if you're
        |   authenticating users with an email address, your LDAP server
        |   will be queried for a user with the a `userprincipalname`
        |   equal to the entered email address.
        |
        | Bind Users By:
        |
        |   This value is the users attribute you would
        |   like to use to bind to your LDAP server.
        |
        |   For example, when a user is located by the above attribute,
        |   the users attribute you specify below will be used as
        |   the 'username' to bind to your LDAP server.
        |
        |   This is usually their distinguished name.
        |
        */

        'ldap' => [

            'locate_users_by' => ['userprincipalname','mail'],

            'bind_users_by' => 'distinguishedname',

        ],

        'database' => [

            /*
            |--------------------------------------------------------------------------
            | GUID Column
            |--------------------------------------------------------------------------
            |
            | The value of this option is the database column that will contain the
            | LDAP users global identifier. This column does not need to be added
            | to the sync attributes below. It is synchronized automatically.
            |
            | This option is only applicable to the DatabaseUserProvider.
            |
            */

            'guid_column' => 'objectguid',

            /*
            |--------------------------------------------------------------------------
            | Username Column
            |--------------------------------------------------------------------------
            |
            | The value of this option is the database column that contains your
            | users login username.
            |
            | This column must be added to your sync attributes below to be
            | properly synchronized.
            |
            | This option is only applicable to the DatabaseUserProvider.
            |
            */

            'username_column' => ['email','emailMask'],

        ],

        /*
        |--------------------------------------------------------------------------
        | Windows Authentication Middleware (SSO)
        |--------------------------------------------------------------------------
        |
        | Local Users By:
        |
        |   This value is the users attribute you would like to locate LDAP
        |   users by in your directory.
        |
        |   For example, if 'samaccountname' is the value, then your LDAP server is
        |   queried for a user with the 'samaccountname' equal to the value of
        |   $_SERVER['AUTH_USER'].
        |
        |   If a user is found, they are imported (if using the DatabaseUserProvider)
        |   into your local database, then logged in.
        |
        | Server Key:
        |
        |    This value represents the 'key' of the $_SERVER
        |    array to pull the users account name from.
        |
        |    For example, $_SERVER['AUTH_USER'].
        |
        */

        'windows' => [

            'locate_users_by' => 'samaccountname',

            'server_key' => 'AUTH_USER',

        ],

    ],

    'passwords' => [

        /*
        |--------------------------------------------------------------------------
        | Password Sync
        |--------------------------------------------------------------------------
        |
        | The password sync option allows you to automatically synchronize users
        | LDAP passwords to your local database. These passwords are hashed
        | natively by Laravel using the Hash::make() method.
        |
        | Enabling this option would also allow users to login to their accounts
        | using the password last used when an LDAP connection was present.
        |
        | If this option is disabled, the local database account is applied a
        | random 16 character hashed password upon first login, and will
        | lose access to this account upon loss of LDAP connectivity.
        |
        | This option is only applicable to the DatabaseUserProvider.
        |
        */

        'sync' => env('LDAP_PASSWORD_SYNC', true),

        /*
        |--------------------------------------------------------------------------
        | Column
        |--------------------------------------------------------------------------
        |
        | This is the column of your users database table
        | that is used to store passwords.
        |
        | Set this to `null` if you do not have a password column.
        |
        | This option is only applicable to the DatabaseUserProvider.
        |
        */

        'column' => 'password',

    ],

    /*
    |--------------------------------------------------------------------------
    | Login Fallback
    |--------------------------------------------------------------------------
    |
    | The login fallback option allows you to login as a user located on the
    | local database if active directory authentication fails.
    |
    | Set this to true if you would like to enable it.
    |
    | This option is only applicable to the DatabaseUserProvider.
    |
    */

    'login_fallback' => env('LDAP_LOGIN_FALLBACK', true),

    /*
    |--------------------------------------------------------------------------
    | Sync Attributes
    |--------------------------------------------------------------------------
    |
    | Attributes specified here will be added / replaced on the user model
    | upon login, automatically synchronizing and keeping the attributes
    | up to date.
    |
    | The array key represents the users Laravel model key, and
    | the value represents the users LDAP attribute.
    |
    | You **must** include the users login attribute here.
    |
    | This option is only applicable to the DatabaseUserProvider.
    |
    */

    'sync_attributes' => [

        'email' => 'userprincipalname',

		'emailMask' => 'mail',

        'username' => 'mailnickname',

        'name' => 'cn',

		'orgUnit' => 'distinguishedname',

    ],

    /*
    |--------------------------------------------------------------------------
    | Logging
    |--------------------------------------------------------------------------
    |
    | User authentication attempts will be logged using Laravel's
    | default logger if this setting is enabled.
    |
    | No credentials are logged, only usernames.
    |
    | This is usually stored in the '/storage/logs' directory
    | in the root of your application.
    |
    | This option is useful for debugging as well as auditing.
    |
    | You can freely remove any events you would not like to log below,
    | as well as use your own listeners if you would prefer.
    |
    */

    'logging' => [

        'enabled' => env('LDAP_LOGGING', true),

        'events' => [

            \Adldap\Laravel\Events\Importing::class => \Adldap\Laravel\Listeners\LogImport::class,
            \Adldap\Laravel\Events\Synchronized::class => \Adldap\Laravel\Listeners\LogSynchronized::class,
            \Adldap\Laravel\Events\Synchronizing::class => \Adldap\Laravel\Listeners\LogSynchronizing::class,
            \Adldap\Laravel\Events\Authenticated::class => \Adldap\Laravel\Listeners\LogAuthenticated::class,
            \Adldap\Laravel\Events\Authenticating::class => \Adldap\Laravel\Listeners\LogAuthentication::class,
            \Adldap\Laravel\Events\AuthenticationFailed::class => \Adldap\Laravel\Listeners\LogAuthenticationFailure::class,
            \Adldap\Laravel\Events\AuthenticationRejected::class => \Adldap\Laravel\Listeners\LogAuthenticationRejection::class,
            \Adldap\Laravel\Events\AuthenticationSuccessful::class => \Adldap\Laravel\Listeners\LogAuthenticationSuccess::class,
            \Adldap\Laravel\Events\DiscoveredWithCredentials::class => \Adldap\Laravel\Listeners\LogDiscovery::class,
            \Adldap\Laravel\Events\AuthenticatedWithWindows::class => \Adldap\Laravel\Listeners\LogWindowsAuth::class,
            \Adldap\Laravel\Events\AuthenticatedModelTrashed::class => \Adldap\Laravel\Listeners\LogTrashedModel::class,

        ],
    ],

];

To explain - this allowed me to key off of TWO different fields both on the AD side and (if AD is down) the Fall back.
I'd be glad to go over anything with you @stevebauman


Trouble Connecting to swiftenv-api.fuller.li

Don't know if anyone else is seeing this, but I'm reliably seeing SSL errors when trying to connect to the api endpoint. In particular, something like
curl -v -o /dev/null --silent --head --write-out '%{http_code}'  https://swiftenv-api.fuller.li/versions/4.1.1/binaries/ubuntu14.04
Will fail with an SSL error.
I'll see
* SSL read: error:00000000:lib(0):func(0):reason(0), errno 104
if I force tls1.1
* curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to swiftenv-api.fuller.li:443
Not sure why, but version 4.1.1 is much more unreliable than version 4.1 in this query.

As an additional failure mode, I may also see a hang:
* Added swiftenv-api.fuller.li:443:<IP_ADDRESS> to DNS cache
* Hostname swiftenv-api.fuller.li was found in DNS cache
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:01:14 --:--:--     0* Connection failed
* connect to <IP_ADDRESS> port 443 failed: Operation timed out
* Failed to connect to swiftenv-api.fuller.li port 443: Operation timed out
* Closing connection 0
curl: (7) Failed to connect to swiftenv-api.fuller.li port 443: Operation timed out

Hi, could you please share some information about your platform and version. Along with information about curl (curl --version output) and OpenSSL (openssl  output). This should help either reproducing or determining the underlying cause.


Graph QL POC

Summary
This is just a draft to show off the progress made. Most of what has been done is just exploratory. It still can use lots of refinement.
Ticket Link
None
Release Note
NONE

@larkox - Is this ready to be reviewed? I'd just like to take a look at the query.

@avinashlng1080 please review


Add RentalItem and Item Mongoose Models to backend

Description
This PR introduces two new Mongoose models: RentalItem and Item. These models will help manage rental items and track rental histories effectively in our rental application.

Closes #134

Changes Made

Added Item Model:

Created the Item model schema with the following fields:

name: String, required
description: String, required
category: String, required
pricePerDay: Number, required
availability: Boolean, default to true
createdAt: Date, default to the current date
updatedAt: Date, default to the current date

Added RentalItem Model:

Created the RentalItem model schema with the following fields:

itemId: Reference to the Item model
userId: Reference to the User model (to be defined)
rentalStartDate: Date, required
rentalEndDate: Date, required
totalPrice: Number, calculated based on rental duration
status: String, to track rental status (e.g., active, completed, overdue)

Implementation Details

Both models are located in the /models directory:

models/Item.js
models/RentalItem.js

Used Mongoose schema validation to ensure data integrity.

Related Issues

Closes # [Issue number related to model creation]

Screenshots (if applicable)
[Include any relevant screenshots or logs]

@SaranshBangar please look into my pr soon


Backing up a Draft schema in Nebula studio

Discussed in https://github.com/vesoft-inc/nebula/discussions/5681

Originally posted by PabloPete August 17, 2023
I have a Nebula studio instance that is not running in a Docker container and have created a Draft Schema that several people are editing. Is it possible to back this up and restore it and not just the PNG image ?

We need to keep updating a schema for a long time, to enable that, some sort of file serialization may be needed.

 Can we help contribute to a solution ? If so what would be the starting point ?

 Can we help contribute to a solution ? If so what would be the starting point ?

Wow, amazing! @PabloPete , thanks a lot for this, would you mind sharing proposals on how could this be done so that we could further discuss within the community?
cc @hetao92 @mizy @slimshadylol0303

If some details on the structure of what is generated by a schema draft can be shared then we can propose and develop an export tool that provides a version that can be saved as a standalone file or re-imported from disk.

If some details on the structure of what is generated by a schema draft can be shared along with where it can be extracted from then we can propose and develop an export tool that provides a version that can be saved as a standalone file that can be re-imported from disk.

good idea , maybe we can export the schema draft data to a json file? and so we don't need provide server api now , just add a export json button

After we have the sterilization on schema, we could think big on more like wiring to datasets with the importer configuration, which, could end up as a bundle to be shared among community users, then a hub could be created to allow the sharing of the schema/(schema with datasets) etc.

Hello, @PabloPete .I am a product designer at Studio. I'm very glad to hear that you have contributed a great idea. If you can develop it, I suggest adding an import template function on the left side of the image and an export sketch template function on the right side. I have roughly marked them with red boxes. You can develop a demo and I can contribute some designs based on your demo :)

Hi @PabloPete, I am the product manager of NebulaGraph, thank you so much for bring up such an awesome idea ❤!
The serialization on the schema draft is a valid requirement for NebulaGraph Studio, it can make schema draft version management and teamwork more convenient.
I think your proposal is wonderful, we are very glad and thankful for your solution contribution. Please keep in touch and we can discuss the solution detail to make it better.😆

Hi @slimshadylol0303! Thanks for reaching out. I'm looking for guidance on the file structure. I believe it's in tasks.db within /usr/local/nebula-graph-studio/. However, tasks.db also contains queries, unless I'm mistaken. I could try a fresh install and try pattern matches to extract only the draft schema, but I'm unsure what else is needed for readability. Copying the task.db file to another machine didn't work before which suggests there's more to it. One may need to explore the studio code base for a clearer solution. Maybe someone more familiar with the code base can help.

@yyh0808 Your UX solution looks clean and simple, I assume on the right side you will provide a drop-down menu of schemas that may be exported. I don't want to complicate things with another feature other might not find useful but a permission setting around who can export the entire schema would be useful for those collaborating who want to protect their IP.

Tagged this as a hacktoberfest task, but I expect this single feature could be split into multiple steps that deserved more credit from hacktoberfest event.

Did this gain any momentum during hacktoberfest ? Is there anything to feed back yet ?

Hi, @PabloPete @slimshadylol0303 Hacktoberfest for developers has started for the new year. If you're interested, you're welcome to join us.


Feature/formlayouts

Description
Fixed PanelMenu component to render svg icons.
Fixes # (issue)
Fixed PanelMenu component to render svg icons.
Overview of Changes

Add imgType attribute to @MenuLink.
Read imgType attribute in panelmenu component and pass it to image component to render svg icons.
Change UI styles to position the svg icon.

Type of change
Please delete options that are not relevant.

[X] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Tested in CMProduct. Ran the application to make sure the svg is rendered.
Additional Notes

You did it @dinakarmeda!
Thank you for signing the Anthem Opensource Software CLA.


Incoming real call after session ended - phone is not ringing

Bug Report
Testing platform

Android, Ionic, cordova

Current behavior

After an openTalk session has ended, If I get a real incoming call the call is silent, What I mean is that the phone is not ringing, it is like a waiting call. Only if I close the application I get a ringing sound for incoming calls.

Steps to reproduce

Create a session > join a session with other users > receive a regular phone call > you will see that you will receive the call as a waiting call with no ringing sound. > close the session / exist the session and leave the application open > receive a regular phone call > you will see that you still receive the call as a waiting call. > close the application > receive a regular phone call > you will see that you will receive the call with a ringing sound.

Example Project

https://github.com/opentok/opentok-ionic-samples

What is the current bug behavior?

Even after closing/existing a session when I receive a regular phone call I don't get it with a ringing sound but as a waiting call

What is the expected correct behavior?

After closing/existing a session when a regular call is received it needs to be as a normal call with ringing sound and not as a waiting call

Relevant logs and/or screenshots

I uploaded a screen cast video that shows the problem, see this video: https://www.youtube.com/watch?v=kDU1EQlg60k

@Shtibel Apologies for the delay on this - thanks for filing this issue. I have a couple of quick questions. Is this happening with the latest cordova plugin version (3.4.3 using OpenTok Android 2.15.3)? Are you able to reproduce this with all devices or is this specifically for a device type?

@Shtibel I believe it's device specific because I just ran the Basic Video Chat on a OnePlus 6T with Android 28 and wasn't able to reproduce this issue.

Hi @msach22
this is happening with the: 3.4.2 plugin version
On an LG V10 with: android 6.0
p.s.
we are not able to run our application with the 3.4.3 version at all...

@Shtibel Hmm, thanks for sharing. I'll run it on Android 6 and update you. Could you please share why you're unable to run 3.4.3?


Appstudio update test-component-pac-symv

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI/test-component-pac-symv-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
8 seconds
init

✅ Succeeded
20 seconds
clone-repository

✅ Succeeded
1 minute
build-container

✅ Succeeded
7 seconds
sast-snyk-check

✅ Succeeded
12 seconds
clair-scan

✅ Succeeded
38 seconds
clamav-scan

✅ Succeeded
7 seconds
sbom-json-check

✅ Succeeded
31 seconds
inspect-image

✅ Succeeded
29 seconds
deprecated-base-image-check

✅ Succeeded
6 seconds
show-sbom

✅ Succeeded
5 seconds
show-summary

Pipelines as Code CI/test-component-pac-symv-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
6 seconds
init

✅ Succeeded
15 seconds
clone-repository

✅ Succeeded
57 seconds
build-container

✅ Succeeded
32 seconds
sast-snyk-check

✅ Succeeded
21 seconds
deprecated-base-image-check

✅ Succeeded
23 seconds
inspect-image

✅ Succeeded
15 seconds
clair-scan

✅ Succeeded
36 seconds
clamav-scan

✅ Succeeded
8 seconds
sbom-json-check

✅ Succeeded
8 seconds
show-sbom

✅ Succeeded
8 seconds
show-summary


Logging

Is there any logging of miner activity?

None.

Would it be possible for me to work on this? Just learning about this project and it looks really cool! Would love to help

I'm wondering if it would be better to include console output or to output to a file

https://github.com/Hourglss/SimpleCoin


Remove needless assignment

The line that comes immediately after the deleted line, seems to be enough to do the job.

Thanks @mahyard!

Thanks @mahyard!


Update go-jsonnet to version v0.17.0

Why?
The version of google/go-jsonnet in drone/drone is higher (v0.17.0) than the in drone/drone-cli. This PR aims to align the versions so drone jsonnet ... and drone's default handling of .drone.jsonnet behaves the same for the same jsonnet.
What?

Update google/go-jsonnet from v0.16.0 to v0.17.0 (changelog)

@hjkatz thanks! Good catch!


dataset problem

Please follow the steps in the Execution Guideline in README.md.
https://github.com/Ugness/PiCANet-Implementation#execution-guide
You can put the files anywhere, but you should give the directory as command-line options.
If you meet any problem while following the guidelines, please comment again with an explanation about your problem.
Thank you.
Originally posted by @Ugness in https://github.com/Ugness/PiCANet-Implementation/issues/25#issuecomment-667837487

I follow the steps in the Execution Guideline in README.md. And I  have created two files named mask and image to put the dataset in it.
But why it give me the error: train.py: error: the following arguments are required: --dataset.
Can you give me more guidelines?
Thank you.

I follow the steps in the Execution Guideline in README.md. And I  have created two files named mask and image to put the dataset in it.
But why it give me the error: train.py: error: the following arguments are required: --dataset.
Can you give me more guidelines?
Thank you.

I follow the steps in the Execution Guideline in README.md. And I  have created two files named mask and image to put the dataset in it.
But why it give me the error: train.py: error: the following arguments are required: --dataset.
Can you give me more guidelines?
Thank you.

I follow the steps in the Execution Guideline in README.md. And I  have created two files named mask and image to put the dataset in it.
But why it give me the error: train.py: error: the following arguments are required: --dataset.
Can you give me more guidelines?
Thanks.

I follow the steps in the Execution Guideline in README.md. And I  have created two files named mask and image to put the dataset in it.
But why it give me the error: train.py: error: the following arguments are required: --dataset.
Can you give me more guidelines?
Thanks.

I follow the steps in the Execution Guideline in README.md. And I  have created two files named mask and image to put the dataset in it.
But why it give me the error: train.py: error: the following arguments are required: --dataset.
Can you give me more guidelines?
Thanks.

I follow the steps in the Execution Guideline in README.md. And I  have created two files named mask and image to put the dataset in it.
But why it give me the error: train.py: error: the following arguments are required: --dataset.
Can you give me more guidelines?
Thanks.

I follow the steps in the Execution Guideline in README.md. And I  have created two files named mask and image to put the dataset in it.
But why it give me the error: train.py: error: the following arguments are required: --dataset.
Can you give me more guidelines?
Thanks.

I follow the steps in the Execution Guideline in README.md. And I  have created two files named mask and image to put the dataset in it.
But why it give me the error: train.py: error: the following arguments are required: --dataset.
Can you give me more guidelines?
Thanks.

I am so sorry about I accidentally created too many comments.

I am so sorry about I accidentally created too many comments.

Can you share your command line to execute the code??
for example, python train.py
Make sure that you should give the path of your dataset.
Here is an example. If your data is in data/DUTS with data/DUTS/masks, data/DUTS/images,
python train.py --dataset data/DUTS

Please do not contain '/' at the end of your path.
In addition, you can give any arguments with python train.py --[argument-key-word] [argument-value]

    usage: train.py [-h] [--load LOAD] --dataset DATASET [--cuda CUDA]
                    [--batch_size BATCH_SIZE] [--epoch EPOCH] [-lr LEARNING_RATE]
                    [--lr_decay LR_DECAY] [--decay_step DECAY_STEP]
                    [--display_freq DISPLAY_FREQ]
    optional arguments:
      -h, --help            show this help message and exit
      --load LOAD           Directory of pre-trained model, you can download at
                            https://drive.google.com/file/d/109a0hLftRZ5at5hwpteRfO1A6xLzf8Na/view?usp=sharing
                            None --> Do not use pre-trained model. Training will start from random initialized model
      --dataset DATASET     Directory of your Dataset
      --cuda CUDA           'cuda' for cuda, 'cpu' for cpu, default = cuda
      --batch_size BATCH_SIZE
                            batchsize, default = 1
      --epoch EPOCH         # of epochs. default = 20
      -lr LEARNING_RATE, --learning_rate LEARNING_RATE
                            learning_rate. default = 0.001
      --lr_decay LR_DECAY   Learning rate decrease by lr_decay time per decay_step, default = 0.1
      --decay_step DECAY_STEP
                            Learning rate decrease by lr_decay time per decay_step,  default = 7000
      --display_freq DISPLAY_FREQ
                            display_freq to display result image on Tensorboard


Deploy time CSS optimization

I added a new 'css_optimizer.js' that minifies the css at runtime
NOTE: this requires the OPTIMIZE environment variable to be set.
Also, don't use this in development (you won't be able to read it anymore)

Also, this is my first ever node.js program

I wanted to let you know that you aren't properly authenticated on your git CLI. This means that all of your commits have not been tied to your account. If you would like for me to go back and tie it to your Github account (so it also displays on the website) please let me know.

No, it's fine.

Also, there's gonna be a buildpack version of this

Don't worry about the GPG key. I can easily set the commit author to you quickly. I think you should at least be included on the website due to the amount of work you have put in.

Okay, sure.

It seems like changing the author of commits is harder than I thought 🤔 ...
What you can do from now to get credit for your contribution is by running the two commands below and replacing them with the proper information.
git config --global user.name <your username>
git config --global user.email <your email>

I will review the PR tomorrow

There, I set it to my github username. Is that all right?

I use JavaScript (DOM) so I think I had an edge there


Update OmniFocus cask formatting and use :latest

While submitting a homebrew versions cask for the OmniFocus beta,
I was made aware of the poor ordering of some of the stanzas. As
I had based that cask off this one, I thought it prudent to tidy
the stanzas in this cask where possible.
Note that I have left the url stanza in the wrong order so as not
to duplicate the conditional logic more than is necessary.
Edit:
While doing this PR I noticed that there was a "latest" download
link available for OmniFocus, so I updated to use it. Are latest
links preferred, or explicit versions?

We used to prefer latest, but now prefer versioned.

@vitorgalvao sorry about that. Updated.


Pesto: Prevent overscrolling on recipe page.

BUG=https://github.com/flutter/flutter/issues/5098

LGTM


Compendium of Focuses

Focuses are used by all characters and improve things considerably. I think this is safe to provide as a compendium.

Starting to add this in 0.3.1 - All have no icons or detail text yet.

Not complete - but first instance is in 0.3.1

Resolved in 0.4.0


Bad comparing of zsh version

Latest zsh seems to be 5.2, but 5.1.1 also exists
5.1.1 is not a float point number. This won't work:
if [[ ${ZSH_VERSION} -ge 5.1 ]]

Causing:
/home/[USER]/.zim/modules/environment/init.zsh:6: bad floating point constant

Ah, you're right. Fix incoming.

Should be fixed now. Thanks for reporting this! Let me know if you have any further issues!

Decided to use a more 'fullproof' method here: https://github.com/Eriner/zim/commit/599add14b99b277f85078311bac89b4f30923f76
This also accounts for the odd bracketed-paste bug with Zsh v5.1.1

@ishitatsuyuki due to a bug in the bracketed paste with Zsh 5.1.1, I recommend you update to 5.2 if possible. Had to disable bracketed-paste and url-quote-magic to workaround the bug with that specific version.

Here is a link to the bug: http://www.zsh.org/mla/workers/2015/msg02680.html


CardType Needs an Explanation for what the uint Value Represents

I am curious what the CardType value maps to.  There are a lot of assumptions that could be made here, for example; Card Brand like Visa, MasterCard, Amex or PrePaid vs Ebt and etc.  I would  like to know what each of the uint values represents or maybe an ISO or spec that the CardType represents so I can visit that spec to get the valid values.
Thank you,
Jason

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

ID: 8addb98d-0adf-26df-8dfc-eb0f499d32bb
Version Independent ID: f59678b4-30e0-6650-56ac-274e976af745
Content: MagneticStripeReaderReport.CardType Property (Windows.Devices.PointOfService) - Windows UWP applications
Content Source: winrt-api-build/xml/Windows.Devices.PointOfService/MagneticStripeReaderReport.xml
Product: uwp
Technology: winrt-reference
GitHub Login: @stevewhims
Microsoft Alias: stwhi

Hi, @jtbrower, I've reached out to the product team for info and advice. I'll report progress here.
Thanks!
Steve

@stevewhims thank you for the prompt response!

I've added some info to the topic (to the description in the "Property value" section). That change is now live.
-Steve

Thanks.  I read it as follows "The CardType property value indicates whether the card's type is American Association of Motor Vehicle Administrators (AAMVA), Bank, ExtendedBase (vendor-specific), or is not known."  This is good information.  Now I am still curious how those types map to a value.  Since the CardType is an unsigned int, it will start counting at 0.  What I am looking for is how the integer value maps to the types you provided.  For example, does the value of "0" map to AAMVA and 1 to Bank and 2 to ExtendedBase?  I make that assumption because when I run a bank card against the API, I get a CardType value of 1.

Hi, @jtbrower! The four properties of the MagneticStripeReaderCardTypes class each returns a unique unsigned int value. As I understand it, the value of the CardType property will match the value returned by one of those properties.
-Steve


feat: add hash to bootstrap

Fixes RVT-3817
Changes

#1168  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @MasterPtato and the rest of your teammates on  Graphite


Typescript error if FormValues does not contain any nested attributes.

Reproduction
https://codesandbox.io/s/react-hook-form-usetypedcontroller-forked-hdzbr?file=/src/App.tsx
This was created by forking the offical example and updating all versions to the latest
Issue
Line 32 has error
 Types of parameters 'name' and 'name' are incompatible.
            Type 'string' is not assignable to type '"uncontrolled" | "controlled" | "error"'.

If you uncomment lines 23-26 the example will work as expected.
Expected behaviour
Nested attributes should not be a requirement when using @hookform/strictly-typed and typescript

possible related to this bug: https://github.com/react-hook-form/react-hook-form/issues/3002 introduced in 6.8.5

This should be resolved by the latest.


[Bug] Staging key should not show up as required (or red banner) if not specified in settings

It's becoming obvious that the majority of people will not have their separate staging accounts to try DANDI upload outside of the main archive...
For alpha tests we are happy to provide temporary creds to our own (which are then reset for security) just to debug issues, but I suppose for the tutorial itself we might want to emphasize something about the difference between servers

A lot of alpha testers first attempts were to use the main archive during the tutorial, which is undesirable


why don't you release this from Feb. ?

As the title.
Is there any big movement recently?

Yes

See https://github.com/nlohmann/json/milestone/5?closed=1


Image files can't keep the same folder structure as the the source directory when I set image files to entry files.

Describe the bug
I am trying to transform an old project to a vite project.
For some reasons, it need to keep a same folder structure as the source directory.
I read the document and find it's recommended to set every file to entry file. (https://cn.rollupjs.org/configuration-options/#input)
I did as recommended, and html, css, js were expected, but images not.
Here is my settings:
build: {
  rollupOptions: {
    input: Object.fromEntries(
      globSync('src/{html,js,css,images}/**/*.{html,js,scss,ico,png,jpg,jpeg,webp,gif,svg}').map(
        (file) => {
          console.log('file: ', file)
          // console.log('import.meta.url: ', import.meta.url)

          return [
            // 这里将删除 `src/` 以及每个文件的扩展名。
            // 因此，例如 src/nested/foo.js 会变成 nested/foo
            relative('src', file.slice(0, file.length - extname(file).length)),
            // 这里可以将相对路径扩展为绝对路径，例如
            // src/nested/foo 会变成 /project/src/nested/foo.js
            fileURLToPath(new URL(file, import.meta.url)),
          ]
        },
      ),
    ),
  },
},

Here is my folder structure:

In addition, there is an another problem.
Because of the problem above, image files are not considered for the moment.
When I referenced js and css files by relative path, they worked well both at pnpm dev and pnpm build.
dev:

build:

When I referenced them by alias, they didn't work at pnpm dev, but worked at pnpm build.
dev:

build:

Here is my alias setting:
resolve: {
  alias: {
    '@': resolve(__dirname, 'src'),
    '@js': resolve(__dirname, 'src/js'),
    '@css': resolve(__dirname, 'src/css'),
    '@images': resolve(__dirname, 'src/images'),
  },
},

I changed the root setting in vite.config.js to ./src, and changed some other settings accordingly(can see detail in project). I don't know whether they're related.
Reproduction
https://github.com/dreampasssser/vite-mpa
Steps to reproduce
No response
System Info
System:
    OS: Windows 11 10.0.22631
    CPU: (12) x64 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
    Memory: 19.34 GB / 31.86 GB
  Binaries:
    Node: 18.20.1 - ~\AppData\Local\pnpm\node.EXE
    Yarn: 1.22.19 - ~\AppData\Local\pnpm\yarn.CMD
    npm: 10.5.0 - ~\AppData\Local\pnpm\npm.CMD
    pnpm: 9.7.0 - ~\AppData\Local\pnpm\pnpm.EXE
  Browsers:
    Edge: Chromium (127.0.2651.74)
    Internet Explorer: 11.0.22621.3527
  npmPackages:
    vite: ^5.4.1 => 5.4.1

Used Package Manager
pnpm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Since 5.4.2, you can do it with output.assetFileNames.
    rollupOptions: {
      input: // omit
      output: {
        assetFileNames(assetInfo) {
          return assetInfo.originalFileName ?? assetInfo.name
        }
      }

For the alias bug, I made a separate issue: https://github.com/vitejs/vite/issues/17910


Customize DefaultOAuthInterceptor

Hi there,
I have an issue regarding the HTTP-Interceptor.
We use an OAuth2-service, that provides the "access_token" and an "id_token" but it only maps the roles from the Identity Provider into the "id_token".
We don't have the possibility to map the roles into the "access_token", but we need to pass the roles to the API. Therefore we would like to pass the "id_token" to the API.
What would you suggest how we can solve this issue?
Could we exchange the DefaultOAuthInterceptor with a custom one? But how could we do this?
Thank you very much.
Best Regards

There's nothing in the library to help you send id_token to the API. A recent issue came up with a request for this, but as I replied there all relevant authoritative sources say you should not do so. This library tries to be OAuth2/OIDC compliant, a reason why there will likely not be built in support for it.
You can certainly build a custom HttpInterceptor to do something like this, and trick the library into thinking the id_token is in fact an access_token. Realize that you're then going against the specs and potentially be opening yourselves up for certain attack vectors.


Hi guys, I got this error message while trying to upgrade nginx ingress controller. Any suggestion on what to do

Azure documentation issue guidance
Thanks for opening an issue in the Azure technical documentation repository.
We use GitHub issues as the primary channel for customer and community feedback about the Azure documentation.
Creating an issue
We prefer that you create documentation feedback issues using the Feedback link on the published article - the feedback control on the doc page creates an issue that contains all the article details so you can focus on the feedback part.
You can also create a feedback issue here in the repo. If you do this, please make sure your issue lists:

[ ] The relevant Azure service or technology.
[ ] A link to the published documentation article that you have feedback about.
[ ] Clear, specific feedback that the author can act on.

Pull requests and article contributions
If you know the change that is needed in an article, we encourage you to submit the changes directly using a pull request. If the change is large, or if you want to contribute an entire article, follow these guidelines:

[ ] Don't surprise us with a big pull request or a pull request with a new article! Submit an issue that describes the details of the proposed large change or new article.
[ ] Include the service or technology area.

We'll route the issue to the appropriate content team for review and discussion.
Tech support and product feedback
If you would like to contact Microsoft about other things, such as product feedback or tech support, please review these guidelines:

If you need technical support using Azure, the paid and free support options are described here: https://azure.microsoft.com/support/options/.

Each article in the Azure technical documentation contains a product feedback button - it's best to submit product feedback directly from a relevant article. Otherwise, you can submit product feedback for most Azure products in the following product feedback forum: https://feedback.azure.com/d365community/forum/79b1327d-d925-ec11-b6e6-000d3a4f06a4.

This issue looks like the duplicate of https://github.com/MicrosoftDocs/azure-docs/issues/87293
We will close this one and our team will help you on the other open issue. Thanks.


[Docker] Typo in the start scripts 🙊

This PR fixes a little typo introduced in https://github.com/Netflix/security_monkey/pull/657

Coverage remained the same at 61.507% when pulling 369359298e051e1261c2c51b731473c79590f72e on jeyglk:fix/docker-typo into ecd0926431aaa14b52207a64954f74c42f660c35 on Netflix:develop.


Catch up with t8code 2.0.0 release.

Ok, then I agree that we should test the new T8code.jl version in a separate PR in Trixi.jl :+1:


Prepare for release 3.6.4

Updates package version (and description while I was at it)
Updates CHANGELOG

Pull Request Test Coverage Report for Build 179

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

Totals

Change from base Build 178:
0.0%

Covered Lines:
363

Relevant Lines:
363

💛  - Coveralls


Don't use CSS classes on

As the react needs to render IN some given node, I can ask it to render on document.body but cannot adjust the CSS class of  itself to go for something like .
Can we maybe have something like

? :-)

We currently have a
. Shall I remap that to
 and apply all classes to that? I assume that also applies to the login and install pages?

There is no
 for the install and login screens. I just need something in general so I'd go for
. And yes, no CSS classes on  because I cannot change them without additional, actually redundant, code. :)

Implemented in my mockup. Please adapt and close :)


Cannot use latest version with go.mod

I am unable to use the latest version of the library, v2.1.2, with go modules.
I get the error: require github.com/DavidBelicza/TextRank: version "v2.1.2" invalid: should be v0 or v1, not v2
To use v2.1.2 in go.mod we need to make the library available at github.com/DavidBelicza/TextRank/v2, according to https://github.com/golang/go/wiki/Modules#semantic-import-versioning

@quintans, Thanks for reporting this bug! It seems the /v2 can be appended to the module name in the go.mod file and it doesn't have to be placed under a new /v2 directory. So it would work like here: https://github.com/asim/go-micro. If that works, I'll push it to the master branch.

that would work.

@quintans now it works with go get github.com/DavidBelicza/TextRank/v2
<EMAIL_ADDRESS>


Pass node pool's subnet id to azure client

Currently, node pool's subnet id is not set when the operator updates a node pool. This makes azure client try to delete it if the value is set to nil. The PR should fix by passing this value if possible.

@alexander-demicev Thank you so much for preparing this fix. Great job!!!
@annablender We are modifying aks-operator-crd helm chart and fix will be shipped with aks-operator. Could you please help us with releasing this bug fix.

I have reported also Rancher issue to track this bug fix https://github.com/rancher/rancher/issues/40087
Please add it to commit message.


Removing Messages From DirectLine Cache - GDPR Compliance

Hi all,
I am searching for a way to actively remove conversation messages from the directline cache. I've seen from this issue microsoft/BotFramework-DirectLineJS#119 that the messages are only stored for 24 hours, but the conversations with the users of our customer could hold sensitive information and for the customer storing these messages for 24 hours is seen as an unnecessary risk. Is it possible to forcibly clear the conversation's messages from the directline cache?
Thank you very much for your help,
Jakob

Is it correct, that using the new Direct Line App Service Extension, no messages would be cached by the Direct Line Extension, hence resolving my issue altogether?
Thank you very much for your help during this hard times.

Hello,
There is not a capability to flush the messages for a conversation or user in Direct Line sooner than the 24 hour limit. This is something one could do with Update and Delete activities that we have in our backlog but do not have any delivery date for. I will add this as a scenario for that feature.
For Direct Line App Service Extension, you are correct that there is no cache, because DL ASE is always just sending the messages to either the client or the bot directly. So if you want to get around the 24 hour issue, then I would recommend using DL ASE.


Export PluginOptions from typedoc-plugin-frontmatter

What package is the bug related to?
typedoc-plugin-frontmatter
Describe the issue
In v1.1.0 exports were added to package.json which means the PluginOptions can no longer be imported from typedoc-plugin-frontmatter.
Previously I was doing the (ill advised) import('typedoc-plugin-frontmatter/dist/options/option-types').PluginOptions to get the types for the options.
It would be nice if this functionality could be added back by either:

Adding types/index to the package.json exports
Exporting a public API from the default export (similar to what typedoc-plugin-markdown is doing)

TypeDoc configuration
No response
Expected behavior
I would like to be able to access the types for the PluginOptions by doing:
import('typedoc-plugin-frontmatter').PluginOptions
// or
import('typedoc-plugin-frontmatter/types').PluginOptions

I ran into the same issue with the recent version of typedoc-plugin-remark. I can file a separate issue for that if necessary, but it would be nice if that plugin could be updated in the same way.

Hey @lukekarrys,
Sure have exposed as follows:
import('typedoc-plugin-frontmatter').PluginOptions
import('typedoc-plugin-remark').PluginOptions

Available in:

<EMAIL_ADDRESS><EMAIL_ADDRESS>


Other types than text

Can we generate QR code of other types, like business card?

How exactly would this work? The data stored in a QR code can include website URLs, phone numbers, or up to 4,000 characters of text.


Implements "Bounce" mode for tileset animations

Implementation of https://github.com/godotengine/godot-proposals/issues/7643 , adds a 'bounce' animation type to tilesets, so they can loop 1-2-3-4-3-2-1 instead of 1-2-3-4-1-2-3-4.

Bugsquad edit, closes: https://github.com/godotengine/godot-proposals/issues/7643

Tilemap: Add 'bounce' or 'Ping-Pong' animation order to animated tiles

Seeing how these are used across the engine I think Ping-Pong is more fitting than bounce in here.
Ping pong is used as a repeat mode, there's also a dedicated function for such wrapping:
https://github.com/godotengine/godot/blob/c12d63556b5c1da03a00dd4c45c40e60bd8d68c2/scene/resources/audio_stream_wav.h#L98
https://github.com/godotengine/godot/blob/c12d63556b5c1da03a00dd4c45c40e60bd8d68c2/modules/noise/fastnoise_lite.h#L62
https://github.com/godotengine/godot/blob/c12d63556b5c1da03a00dd4c45c40e60bd8d68c2/core/math/math_funcs.h#L498-L503
(and yeah, it's not consistent with PONGPONG vs PING_PONG)
Bounce is rather used for physics, vectors, motions etc. There's also bounce easing for Tweens but it's a completely different thing as well.

Reviewers, see also:

https://github.com/godotengine/godot/pull/82253

That should have fixed the code style issues, hopefully.
As suggested, I renamed 'bounce' to 'pingpong' since that's more consistent with other naming in Godot, and have reverted my patch to tile animation timing randomization.

Status updates on this? It's been nearly a year.


fix: welsh project updates

Describe your changes
Ticket: https://pins-ds.atlassian.net/browse/APPLICS-1147

Adds welsh language flag to the getPageData which was being used down the chain but wasn't being passed.
Bonus addition in same PR is to search by caseReference, it might not be used by users are much but speeds up development and testing

Type of change 🧩

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Other (please explain in the description section above)

Checklist before requesting a review

[ ] I have performed a self-review of my own code
[ ] I have double checked this work does not include any hardcoded secrets or passwords
[ ] I have made corresponding changes to the documentation
[ ] I have provided details on how I have tested my code
[ ] I have referenced the ticket number above
[ ] I have provided a description of the ticket
[ ] I have included unit tests to cover any testable code changes

:tada: This PR is included in version 2.33.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.41.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[ZEPPELIN-1257] storage - fix get note revision api

What is this PR for?
Getting revision of note requires only unique revision id and the whole revision object isn't required. This PR is to fix the issue.
What type of PR is it?
Bug Fix | Improvement
Todos

[x] - change storage api
[x] - modify notebook server

What is the Jira issue?
ZEPPELIN-1257
How should this be tested?
Storage layer tests should pass, green CI
Screenshots (if appropriate)
Questions:

Does the licenses files need update? no
Is there breaking changes for older versions? no
Does this needs documentation? no

@khalidhuseynov The CI is fully red

@khalidhuseynov could you please elaborate on CI failure reason?
Also, could you please explain why do you think this is valuable change and what benefits does it bring?

@bzz CI failure was due to test, fixed now.
Further, regarding the flexibility and narrowing scope. Revision class is implemented here and as you can see currently when implementing your own NotebookRepo you reuse same class (without implementing your own one). Implementing your own revision class is a good idea which is not supported yet (it should be handled properly in frontend as well).
The point of this PR was not to send unnecessary info in the Revision object since only thing to identify the revision is supposed to be its revisionId and it being String seems at least intuitive since noteId, and paragraphId are identified in the same way by String id. So having noteId, revisionId should uniquely identify the revision. Can you give some example of ID that's more than one element and not presented as string?

@khalidhuseynov glad to hear. But CI is red again, could you, as an author of PR please post here the reason of failure? This will save time for the reviewers.
And thank you for kind for the explanation!

The point of this PR was not to send unnecessary info in the Revision object

This is exactly what I meant by "changes for the sake of changes".
Revision class implementation that you point out looks good to me - it represents clearly defined interface with it's own responsibilities. But String does the contrary. May be this class is even big enough to deserve his own file. And other clients may choose to replace it with their own implementations. I would understand if you suggest to extract it to the interface - this will bring even more flexibility (but increase verbosity).
But replacing it with the String does not look good to me.
After some thinking - may be I lack verbal skills to convey the message about obejct-oriented design approach. If that is the case, please check Item 50: Avoid strings where other types are more appropriate, page 224 of "Effective Java" 2nd edition and let me know.

@bzz regarding the CI issue, I keep getting the following:
14:05:27,226 ERROR org.apache.zeppelin.interpreter.remote.RemoteInterpreter:237 - Failed to create interpreter: org.apache.zeppelin.interpreter.remote.mock.MockInterpreterA
14:05:27,227 ERROR org.apache.zeppelin.interpreter.remote.RemoteInterpreter:264 - Failed to initialize interpreter: org.apache.zeppelin.interpreter.remote.mock.MockInterpreterA. Remove it from interpreterGroup
14:05:27,240  INFO org.apache.zeppelin.scheduler.SchedulerFactory:131 - Job jobName1 started by scheduler test
14:05:27,240  INFO org.apache.zeppelin.interpreter.remote.RemoteInterpreter:223 - Create remote interpreter org.apache.zeppelin.interpreter.remote.mock.MockInterpreterA
14:05:27,242 ERROR org.apache.zeppelin.interpreter.remote.RemoteInterpreter:237 - Failed to create interpreter: org.apache.zeppelin.interpreter.remote.mock.MockInterpreterA
14:05:27,243 ERROR org.apache.zeppelin.scheduler.Job:189 - Job failed
org.apache.zeppelin.interpreter.InterpreterException: org.apache.thrift.TApplicationException: Internal error processing createInterpreter
	at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.init(RemoteInterpreter.java:238)
	at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getFormType(RemoteInterpreter.java:383)
	at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.interpret(RemoteInterpreter.java:299)
	at org.apache.zeppelin.scheduler.RemoteSchedulerTest$2.jobRun(RemoteSchedulerTest.java:210)
	at org.apache.zeppelin.scheduler.Job.run(Job.java:176)
	at org.apache.zeppelin.scheduler.RemoteScheduler$JobRunner.run(RemoteScheduler.java:329)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.thrift.TApplicationException: Internal error processing createInterpreter
	at org.apache.thrift.TApplicationException.read(TApplicationException.java:111)
	at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:71)
	at org.apache.zeppelin.interpreter.thrift.RemoteInterpreterService$Client.recv_createInterpreter(RemoteInterpreterService.java:196)
	at org.apache.zeppelin.interpreter.thrift.RemoteInterpreterService$Client.createInterpreter(RemoteInterpreterService.java:180)
	at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.init(RemoteInterpreter.java:227)
	... 12 more

filed an issue here
Regarding this pr, I'll consider your comments on using OO way here and open new pr with a fix. Also separating Revision is a valid point and might be addressed there.

@khalidhuseynov thank you!
Do you suggest merging this guy now and taking care of Revision separation later?

@bzz i believe we decided not to merge it for now. I'll revise it and let you know

Got it! Thank you for clarification.
Would you mind closing it for now and then re-opening it as soon as it is ready for review?

@khalidhuseynov git rebase master to re-trigger CI?

@bzz rebased and addressed comments

ping

Thank you for friendly ping. Will review and get back to you ASAP

@khalidhuseynov CI is green and changes looks great to me, modulo one naming case noted above.
Please let me know if you want to address that one as well. After that I will be happy to mered it to master, if there is no further discussion

@bzz right, addressed in a8d005b70c65fe68f2098b4460b2e699fd681b7f

Great! Merging to master, if there is no further discussion.

@bzz can you merge it asap? i need this change if i want to continue my work


ARROW-17144: [C++][Gandiva] Add sqrt function

Adding Sqrt Function.

@projjal @pravindra can you make sure this get's merged. Slack access might go in morning.

@ViniciusSouzaRoque are these errors due to master?

@projjal can you review it? These errors are not due to my changes.

@projjal can you please review it?

@pravindra can you merge this?

@ViniciusSouzaRoque @projjal is not responding can you convey him to approve the pr?

@ViniciusSouzaRoque @projjal is not responding can you convey him to approve the pr?

Done

@pravindra can you please merge this?

@pravindra can you please merge this?

Ravindra no longer works at Dremio, I still don't know who will merge the Gandiva functions

@kou can you merge this?

@kou I think everything seems fine. Can it be merged?

Hello, is there anything preventing merging this? Is any help needed to move it forward?


Panic on newtype

Rustfmt panics when it encounters a new type, e.g. a struct of the form struct NewT(T).

I should have a fix for this soon.

Fixed!


Nukies win cons

Major / minor victory and all that jazz. Need to detect where the nuke detonates / degree of damage or whatever ss13 does.

#10220 deals with the first half and somewhat of the second half, but does not currently detect the amount of damage done to the station


Use in-app ratings API

https://android-developers.googleblog.com/2020/08/in-app-review-api.html?m=1

@rajkumaar23  Can you specify where you want to show the in app rating popup?

So, there are 2 places this popup is required

https://github.com/amrita-repository/android-app/blob/f32e8f64e5c1e5ffcc05e541bb1fc839348ab49c/app/src/main/java/in/co/rajkumaar/amritarepo/activities/LaunchingActivity.java#L478
And when AboutActivity is opened, pop this up.

In both cases, ensure that this popup doesn't come after the user has submitted the review once.
In the side navbar, you can use the existing behaviour (redirect to store) in case the review is already submitted.
Let me know if you have any more queries :)


How to exclude a dir but still deploy some dir/files under it?

Say for example, I would like to exclude the node_modules directory, so I put this in the exlucde list: node_modules/**.
But I still want to deploy a specific dir in it, for example node_modules/a-hypothetical-package. I tried to use the ! operatior of glob pattern like this !node_modules/a-hypothetical-package/** or
!(node_modules/a-hypothetical-package/**) in exclude, it doesn't work. I tried to put the node_modules/a-hypothetical-package/** pattern in files list, it doesn't work either.

@kraml did you figure this out?

No ...

Bummer.


ShardingTransactionType cannot be resolved to a type

Question
I configured XA transactions as documented, but the ShardingTransactionType cannot be resolved to a type
Version
springboot 2.0.6.RELEASE
mybatis-plus-boot-starter 3.1.0
sharding-jdbc-spring-boot-starter 4.0.0-RC1
sharding-transaction-xa-core 4.0.0-RC1

pom.xml

    <dependency>
        <groupId>org.apache.shardingsphere</groupId>
        <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
        <version>${sharding-jdbc-spring-boot-starter.version}</version>
    </dependency>
    <!-- 使用XA事务时，需要引入此模块 -->
	<dependency>
	    <groupId>org.apache.shardingsphere</groupId>
	    <artifactId>sharding-transaction-xa-core</artifactId>
	    <version>${shardingsphere.version}</version>
	</dependency>

TransactionConfiguration.java
@Configuration
@EnableTransactionManagement
public class TransactionConfiguration {

    @Bean
    public PlatformTransactionManager txManager(final DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean
    public JdbcTemplate jdbcTemplate(final DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
}

error Method
 @PostMapping("/xaManage")
    @Transactional
    @ShardingTransactionType(TransactionType.XA)  // ShardingTransactionType cannot be resolved to a type
    public ResponseData<?> xaManage(TabUser tabUser) {
        tabUserService.save(tabUser);
        int i = 5 / 0;
        return ResponseData.out(CodeEnum.SUCCESS, tabUser.getId());
    }

this feature is only supported since 4.1.x which will be released recently，you can try it in our master branch.

this feature is only supported since 4.1.x which will be released recently，you can try it in our master branch.

thanks

this feature is only supported since 4.1.x which will be released recently，you can try it in our master branch.