Make docker host mode configureable

If docker is in host mode it will break forced mac addresses which are required for MATLAB and Vivado configs.
PR makes it configurable but does not change default behavior.
Please squash merge.

Thanks for adding this fix, actually were currently searching ways to solve this issue, but one question though, is there a chance we might be needing both network host and mac-address args on one docker container?.. one use case is when we test pluto using matlab..


remove type="cascading_select"?

I just got a user report with a form that used type="cascading_select".
I was not familiar with it. Is this old code? Maybe it should be removed?

I do not know how these could have happened, I do not think this is old code. Where did they generate their xform from?

Oh I don't know. It must have been a custom version.


Early stopping during model training

Dear developer,
I succeeded to perform data preprocessing using GLUE. However, when I tried to train the model via scglue.models.fit_SCGLUE using the example data provided by the official website of GLUE, I came across "Early stopping" and got a ValueError. Details are as follows.
Command where error occurrs
glue = scglue.models.fit_SCGLUE(
{"rna": rna, "atac": atac}, guidance_hvf,
fit_kws = {"directory": "glue"}
)
Error messages
[INFO] SCGLUETrainer: [Epoch 60] train={'g_nll': 0.384, 'g_kl': 0.004, 'g_elbo': 0.389, 'x_rna_nll': 0.147, 'x_rna_kl': 0.001, 'x_rna_elbo': 0.148, 'x_atac_nll': 0.039, 'x_atac_kl': 0.0, 'x_atac_elbo': 0.039, 'dsc_loss': 0.691, 'vae_loss': 0.202, 'gen_loss': 0.168}, val={'g_nll': 0.384, 'g_kl': 0.004, 'g_elbo': 0.389, 'x_rna_nll': 0.149, 'x_rna_kl': 0.001, 'x_rna_elbo': 0.15, 'x_atac_nll': 0.039, 'x_atac_kl': 0.0, 'x_atac_elbo': 0.039, 'dsc_loss': 0.699, 'vae_loss': 0.205, 'gen_loss': 0.17}, 22.5s elapsed
2023-07-19 12:15:32,939 ignite.handlers.early_stopping.EarlyStopping INFO: EarlyStopping: Stop training
[INFO] EarlyStopping: Restoring checkpoint "56"...
Trained GLUE model was saved to /fs/ess/PCON0022/liyang/STREAM-revision/Feasibility/glue-example//glue.dill
Traceback (most recent call last):
File "/fs/ess/PCON0022/liyang/STREAM-revision/Feasibility/glue/3-GLUE-model-training.py", line 67, in
dx = scglue.models.integration_consistency(
File "/users/PAS1475/liyang/.conda/envs/scglue/lib/python3.10/site-packages/scglue/models/dx.py", line 49, in integration_consistency
adatas = {
File "/users/PAS1475/liyang/.conda/envs/scglue/lib/python3.10/site-packages/scglue/models/dx.py", line 50, in
k: AnnData(
File "/users/PAS1475/liyang/.conda/envs/scglue/lib/python3.10/site-packages/anndata/_core/anndata.py", line 285, in init
self._init_as_actual(
File "/users/PAS1475/liyang/.conda/envs/scglue/lib/python3.10/site-packages/anndata/_core/anndata.py", line 505, in _init_as_actual
self._check_dimensions()
File "/users/PAS1475/liyang/.conda/envs/scglue/lib/python3.10/site-packages/anndata/_core/anndata.py", line 1850, in _check_dimensions
raise ValueError(
ValueError: Variables annot. var must have number of columns of X (28930), but has 27659 rows.

Hi @YangLi-Bio! Thanks for your interest in GLUE!
According to the traceback, the error is caused by scglue.models.integration_consistency rather than early stopping. It seems that the .var slot of at least one of the AnnData objects is missing rows for some reason.
I rerun the tutorial in a newly created environment with all packages at their latest versions, but could not reproduce this error. Could you check if there was some operation that changed the .var slot and caused removal of some rows?

Thank you for your patience and understanding. I find it essential to proceed with upgrading all the modules before re-executing GLUE. Once this task is completed, I will review the results meticulously. Rest assured, I will loop back with you to provide an update at the earliest.
Your cooperation is greatly appreciated. Thank you!

Dear Dr. Cao,
This issue has been resolved. The reason for this issue is elementary, i.e., my virtual environment is not built via 'conda'.
Please close this issue. Thank you!


Page is just full of unrendered code

Issue in ./help/marketo/product-docs/crm-sync/microsoft-dynamics-sync/sync-setup/set-up-oauth-authentication-for-dynamics/set-up-microsoft-dynamics-crm-app-for-online.md

Looks like the page is now working - https://experienceleague.adobe.com/docs/marketo/using/product-docs/crm-sync/microsoft-dynamics/sync-setup/set-up-oauth-authentication-for-dynamics/set-up-microsoft-dynamics-crm-app-for-online.html


Add option to "new seed"  to load seed from an exported json project.

I changed the name because "add seed" is a command to import the seed from another project... Maybe I should change "add seed" to "import seed"...


Synchronizing Heads and Hands

Hey,
is there an easy way to synchronize each players hands and heads, so the other players can see them too? Or do i need to implement it by myself?

Hi @lucaremberg. There are many ways to visualize and synchronize player hands and head. Check out the Automatic Colocation demo (Assets/CoLocation/Scenes/CoLocatedSafety.unity) to see how we use passthrough avatars and Photon to achieve this functionality in the sample.


Bump version after release

[x] This contribution adheres to CONTRIBUTING.md.

What does this Pull Request accomplish?
Bumps the version to 0.1.1.
Why should this Pull Request be merged?
Version 0.1.0 has been released.
What testing has been done?
None

@DavidCurtiss please verify if this the correct way to bump the version post-release.


Support of Multi-SIM lines in CAMARA APIs

To be considered as part of #273
Intro
Current CAMARA APIs based their functionality on subscriber's line identity, usually phone_number. Specifically for mobile lines, that is a suitable identity for the most of scenarios, but there is an specific case that requires analysis.
MultiSIM lines
MNOs usually offer a line enhancement that allows users to install the same phone line (same MSISDN) in multiple devices, known as MultiSIM.  Even when different technical solutions are posible, the service is based on multiple SIMs (phisical or virtual) that are binded to the same main phone_number, it is, multiple IMEIs associated to the same MSISDN This approach is commonly used to enable secondary/companion devices like:

Wearables
Tablets
Wi-Fi hotspots
Backup smartphones

MultiSIM in CAMARA APIs
While certain APIs are agnostic to MultiSIM situation, since they refer to information of the proper line or even subscriber like carrier billing, KYC, OTP..., other APIs are tied to a device and require a different consideration to be managed in a MultiSIM scenario.
Just as couple of examples:

when enabling a QoD session targeted for a MSISDN, if multiple SIMs and devices are associated to that same MSISDN, the telco need to know/decide which of those SIMs are to be affected. Behaviour need to be defined.
when verifying the location of an MSISDN, if multiple SIMs and devices are associated to that same MSISDN, the telco need to know/decide which device's location information to retrieve, since different geographical locations can co-exist for each device associated to the same MSISDN.

Action required
Based on this scenario analysis and handled by a common aligned approach for similar cases:
CAMARA APIs need to analyze their impact when a MultiSIM scenario is handled, define a specific behaviour and adapt the API (if needed)
As example of current discussions or defined behaviours, SIM Swap already considers MultiSIM lines as part of the information that the API needs to retrieve.

For the Vodafone implementation of multi-SIM, phoneNumber is still a valid identifier for each of the secondary devices, as each SIM still has its own MSISDN (the "secondary" MSISDN). For the "primary" device (usually the smartphone), the primary and secondary MSISDNs are the same.
Whether an implementation will treat a phoneNumber as the primary or secondary MSISDN is dependent on that implementation. For the Device Identifier API, I added a statement that phoneNumber would be treated as the secondary MSISDN, which would allow retrieval of the IMEI for secondary devices without affecting the ability to retrieve the IMEI for the primary device.
For at least some other APIs, I think treating the phoneNumber as the secondary MSISDN will also work just as well, but does pose the following questions:

How does the API consumer learn the secondary MSISDN if they do not already know it?
Are there any implementations of multi-SIM where secondary devices do not have their own MSISDN? If so, what identifiers for secondary devices are valid in those cases?

Thanks @eric-murray,
Let me include one other question:

How does the API consumer learn the secondary MSISDN if they do not already know it?
Are there any implementations of multi-SIM where secondary devices do not have their own MSISDN? If so, what identifiers for secondary devices are valid in those cases?
How do we manage request when primary MSISDN is included? First because user may not be aware of the rest of secondary MSISDNs (if exist), and second because applications will for sure only have the primary.

Either consider that the users know that primary device is exactly the device identifier they want to use.
Or consider that maybe the user/developer only knows the primary MSISDN, and therefore we cannot be sure that they are targeting exactly primary device and a different behaviour need to be considered for the rest of devices too.

for MultiSim definition clarification, just checking whether  we are considering multi-SIM as a scenario where both devices have separate MSISDNs under one account (i.e., the primary device has its own MSISDN, and each secondary device has its own distinct MSISDN), allowing each device to operate independently without sharing call/message capabilities?
Or, are we considering scenarios where secondary devices share the same MSISDN as the primary device, meaning all devices are linked to the same number under the same account, enabling users to receive calls and messages on any of the devices?

It's the second one @sachinvodafone, several SIMs (IMSI) linked (publicly) to the same MSISDN. Implementations may assign internally a secondary MSISDN to each SIM, for network operation,  but in general customers are not aware of this secondary MSISDN.

I think this is only a problem with CIBA, right?
If the authentication request is from one of the devices with the same MSISDN and the API consumer is using OIDC authorization code flow then the device can be uniquely identified. The access token is then associated with that device.
The access token does not even need to be associated with the MSISDN.

@AxelNennker

I think this is only a problem with CIBA, right?

This issue also applies to client_credentials grant

@eric-murray

This issue also applies to client_credentials grant

client_credentials and CIBA currently use the MSISDN.
If the device cannot be determined by the MSISDN, then bummer.
In client_credentials with MSISDN, I see no solution. We would need some other shared identifier e.g. iccid
In CIBA the MNO could provide a device-selection UI on the authentication device, but standardizing UI (capabilities) is not going to happen in my lifetime. I think that is possible, but unlikely to happen.
For OIDC authorization code flow, we do not have a problem for tablets and (backup) smartphones.
Wi-Fi Hotspots and Wearables fall in the standard OAuth2 use case of limited UI-capability devices like picture frames.
If the devices can show a e.g. a code or qrcode then, we are back to OAuth2. That can be made to should work with OpenId.
If we limit the devices to near-zero or zero UI-capabilities, then I would question the business viability of this use case.
Those devices are usually not running an standard OS and their capabilities vary at lot. Availability of Wifi or Bluethooth, hardware buttons and (touch-)screens. It is near to impossible to find a CAMARA solution that is not proprietary, I think.
This kind of hardware exists today and they have found solutions for their problems.
With wearables, I think, we are might be more in TS.43 territory and associating a secondary device with a primary device
Additionally, the danger of privacy and freedom violations are huge when the UI-capabilities on the device are low e.g. when the CAMARA API used is Device-Location.
My conclusion:
If the device is able to run a browser or mobile app, then use OIDC authorization code flow and there is no problem because we can identify the device directly and e.g. associate the access token with the IMSI.
I think that use case is the most important business case.
CIBA depends too much on the UI-capabilities of the device. I see no relevant business case.
client_credentials does not work if the only device identifier the API consumer and the operator share is the MSISDN.
Use OIDC authorization code flow and be happy!

API specs are decoupled of the authorization method used to get the access token. Each operation just assumes that we have an access token and eventually some device/phoneNumber identification, and it would be good if information within each API gave some guidelines for the implementation.  But I wouldn't expect a single solution applicable to every CAMARA API, as part of the Commonalities guidelines.
The problematic case is when input is a MSISDN assigned as common phoneNumber for a multiSIM pack, and an instance of SIM within the multi-SIM pack cannot be deducted from the access token. Options in this case are:

To adapt the logic for the multiSIM case, keeping the same response schema.

This is, for example, what sim-swap proposes. For other APIs it may work as well (device-status. location-verification, etc). For others, like quality-on-demand or location-retrieval is not that simple. WGs may decide to document in the API spec a common approach to the problem, or leave some space for implementations to act upon the case.

API server cannot fulfill the request if a single instance is not identifiable by means of the access token.

Then an error response makes sense. From the current set of proposed error codes, the one that is more suitable, IMO, is 422 SERVICE_NOT_APPLICABLE (The service is not available for the provided identifier), or even the generic 422 Unprocessable Content
Although it wouldn't be clear if service is not available for multiSIM lines, or if the service is potentially available for multiSIM lines, but the combination of access token + provided identifier is not processable. Implementations may provide some additional guideline by means of the message in the error response.

I think that IMSI is in most cases the best identifier associated with the access token.
IMSI definitely solves the Multi-SIM use case's problem if the MNO can associate the IMSI (and maybe IMEI) to the access token.
CIBA does not work with Multi-SIM. Usually there is exactly one SMS-device defined for the MSISDN and the CIBA message would end up at the SMS-device for user authentication and consent collection but that does not identify which device is the intended one.
For CIBA there could be a way out if the link send to the SMS device would link to a device-selection page at the MNO but that probably would lead to inconsistent flows because one MNO might implement device-selection while others won't.
Client-credentials flow does work in the Multi-SIM case. The API provider could the return the roaming status of all devices with that msisdn but that seems to be somewhat of a privacy invasion.
Maybe the device-status API should include information whether the MSISDN is a multi-sim msisdn?!
Multi-SIM is also something to consider if the MNO implemented some privacy/consent/transparency management API or web-pages.
Can the user grant consent to all APIs for all devices with that MSISDN?
Can the user opt-out for an API for all API consumers with that MSISDN?
Or can the user treat the devices individually?
So, what do we tell API consumer who bought a CAMARA API?
"Dear API Consumer, regarding API X, if the end-user has Multi-SIM you cannot use CIBA nor can you use client credentials flow. You must use OIDC authorization code flow"
or do we tell the API consumer:
"Dear API Consumer, just x% of all end-users served by CAMARA have Multi-SIM. Those x% are negligible. Getting an access token for those end-users will fail"
If a MNO is a CIBA-only or client-credentials-only API producer who only ever implements no-user-consent-needed use-cases then they would likely return an error (device_unknown_multi_sim?) to the authentication request for that Multi-SIM MSISDN.
Would then all other MNOs return an error for consistency reasons?
Multi-SIM support might be a business decision that we cannot solve on a technical level. Business stream?

I created a PR for DeviceIdentifier to remove text about Multi-SIM.
https://github.com/camaraproject/DeviceIdentifier/pull/89
Not because I think that text about multi-sim is not needed - I think the API consumer should know about the multi-sim case.
I would like to avoid text about multi-sim like what we currently have in QoD which basically says that one MNO might implement QoD this way and a different MNO might implement QoD in a different way.

If the phone number is used as the device identifier when provisioning in a multi-SIM scenario, the API may respond with an error, apply the provisioning to all devices in the multi-SIM group, or apply the provisioning to a single device in the multi-SIM group which may not be the intended device.
This a good clarification, but still, I think, we should avoid that a CAMARA API has ambiguous results.

DeviceLocation has an open issue on Multi-SIM support since Sep '23
https://github.com/camaraproject/DeviceLocation/issues/257


make the list of websites dynamic

This is nearly done. Just needs:

[x] Possibly a method of persisting the last known-good data to localstorage so if there is a breaking error, it defaults to saved data, rather than breaking (@Form-And-Function  thoughts on this? it may introduce the risk of showing old data, but better than nothing???)
[x] set up raygun monitoring  to report errors as soon as the site breaks (such as in case someone messes up the airtable)
[X] possibly a "misc" section in case we forget to fill in a column in the database or something.

This PR:

makes the list of sites dynamic/fetched from airtable so we can live-update it
replaces the home.html template with an HTML version of the page and merging it with the markdown version. There may be merge conflicts with this and #1, i can resolve these if needed
implements raygun monitoring so we are emailled when theres an error
adds a link to a google form for people to submit suggestions or corrections to our data (just the links)

whoops, also gotta make it reusable first

Note on Jekyll: you can in fact embed the HTML inside the Markdown. So keep the old markdown file and then add your script file inside the Markdown file. I'd also keep it separate as its own file (for the script) for better readability.

I'd also keep it separate as its own file (for the script) for better readability.

that's kinda what i did for the main/global script.js. ideally im trying to move as much of it as reasonable into helper functions inside that script file so the on-page scripts are pretty small. i think part of the reason for splitting it up and having a global script and an in-page script was because some of the in-page stuff needed to be done after the HTML elements loaded, although i dont see why we couldnt move the script.js's <script> line to the footer and have it check for the presence of elements with specific ID's and do everything needed to populate that specific one (maybe that would help loading times???)
This could also remove most of the HTML from the markdown. I haven't had a chance to research how jekyll handles the HTML-in-markdown scenario, but IIRC last time i tried something similar (markdown in front matter and using jekyll filters to convert it to HTML) it seemed to be including extra tags that could break our CSS if we end up doing anything super custom. Personally i think it might help make things easier to maintain (both for us and anyone using our code) if pages needing HTML had HTML extensions (or make everything .HTML, since jekyll lets you visit pages without the extension just fine)
Not a huge deal though, just some ideas surrounding your point.
Are you able to do a code review as well?

I agree that we could make everything HTML files. It does seem a bit confusing to have both Markdown and HTML files, though Jekyll is compiled so either works fine for efficiency. Also, yes I can do a little bit of Code Review.

also, do we want to keep the google form for suggesting changes or do we want to just say "email us"? it seems like email may be easier now since it lets us not have to remember to  check a separate place for updates but also if we get a lot of updates it might create a lot of email traffic to keep up with

I think we should keep the email us, but we could also list the discord server and say the suggestions channel. But ultimately it's up to you since you are the one to check the email and whatnot.
Am I good to merge this now?

Discord server is being added elsewhere in #5 and #7 i believe. if we have a specific channel for it, then yeah feel free to replace the google form with it if you want

Am I good to merge this now?

I was hoping this could get code-reviewed first as its a fairly major change. i also have a few breaking changes to the airtable DB i want to make first so ill go ahead and make those now before we deploy


FAT-16870 - MODSENDER-69 - Update the permission name.

https://folio-org.atlassian.net/browse/FAT-16870
Purpose
Update the mod-sender permission as part of https://folio-org.atlassian.net/browse/MODSENDER-69
Approach
Merge at the same time as https://github.com/folio-org/mod-sender/pull/59
TODOS and Open Questions

[ ] Use GitHub checklists. When solved, check the box and explain the answer.

Learning
Describe the research stage. Add links to blog posts, patterns, libraries or addons used to solve this problem.

Hello @julianladisch ,
Any reason for the do not merge label ? I was planning to merge the PR today as I have 2 approvals.


Overlay undefined (wrong build of the library)

Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
2.5.11
Please ask your question
I am trying to add resolution option in overlay. But I am getting error Uncaught TypeError: Cannot read property 'Overlay' of undefined
at initPlayer
    var manifestUri = 'my .mpd file';
    var licenseServer = 'https://cwip-shaka-proxy.appspot.com/no_auth';

    function initApp() {
        // Install built-in polyfills to patch browser incompatibilities.
        shaka.polyfill.installAll();

        // Check to see if the browser supports the basic APIs Shaka needs.
        if (shaka.Player.isBrowserSupported()) {
            // Everything looks good!
            initPlayer();
        } else {
            // This browser does not have the minimum set of APIs we need.
            console.error('Browser not supported!');
        }
    }

    function initPlayer() {
        // Create a Player instance.
        var video = document.getElementById('video');
        var player = new shaka.Player(video);
        // Make the UI layer.
        const videoContainer = document.getElementById('container-video');
        const ui = shaka.ui.Overlay(player, videoContainer, video)
        player.configure({
            drm: {
                servers: {
                    'com.widevine.alpha': licenseServer
                },
                advanced: {
                    'com.widevine.alpha': {
                        'videoRobustness': 'SW_SECURE_CRYPTO',
                        'audioRobustness': 'SW_SECURE_CRYPTO'
                    }
                }
            }
        });
        // Attach player to the window to make it easy to access in the JS console.
        window.player = player;
        // Listen for error events.
        player.addEventListener('error', onErrorEvent);

        // Try to load a manifest.
        // This is an asynchronous process.
        player.load(manifestUri).then(function() {
            // This runs if the asynchronous load is successful.
            console.log('The video has now been loaded!');
        }).catch(onError); // onError is executed if the asynchronous load fails.
    }

    function onErrorEvent(event) {
        // Extract the shaka.util.Error object from the event.
        onError(event.detail);
    }

    function onError(error) {
        // Log the error.
        console.error('Error code', error.code, 'object', error);
    }

    document.addEventListener('DOMContentLoaded', initApp);

My guess it that you used the wrong build.  The UI is available in shaka-player.ui.js, as opposed to the legacy, non-UI build in shaka-player.compiled.js.  Does this help?

Hi @joeyparrish ,
Can you please tell me which build I should use to add resolution option in player and how to customize ui of player.

Hi @TheModMaker ,
can we add resolution option in shaka-player.ui.js ?

Resolution selection already exists in the UI.  It was present in the very first UI release, it is configurable, and it is on by default.  I've added some screenshots below to explain.
Here's the full UI:

The "overflow" button is the icon with three vertically-stacked dots.  Here's the overflow menu you get when you click that icon:

Here's the resolution submenu:

If you want to configure what is in the UI, try the "Configuring the UI" tutorial in our docs: https://shaka-player-demo.appspot.com/docs/api/tutorial-ui-customization.html
Does this help?

Hi @joeyparrish ,
I tried above link. But I am getting error.
Here is my code
``

This part of your code:
      	const ui = video['ui'];

only works if you set up your HTML correctly, but we can't see your HTML.  And this:
        var player = new shaka.Player(video);

would create a new player instance that is not connected to the UI.
Please re-read the UI tutorial here: https://shaka-player-demo.appspot.com/docs/api/tutorial-ui.html
And specifically, pay close attention to the <div> container and the data- attributes on that and on the <video> element, as well as how to get the Player instance from the <video> element.
Does this help?


CSS card toggle animation

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

will please assign me ??

Cool go ahead

@biratdatta  do it , please go and check it


Ready Indicator Changes and Documentation for FrontEnd

Recent commits since previous merge is just documentation for frontend. Will merge into main as I resolved any conflicts.


Some improvements

after installing from ensemble, if enabled from Extensions list, it will update .htaccess rules (no more manul editing needed).
removed redirect mechanism. Continue reading for discussion.

About redirect:
I noticed a performance hit on my site: www.xanderadvertising.com with the previous version of Language Redirect. The redirect requires the Symphony Engine to initialize and execute the Events attached to a Page before the effective redirect takes place. Adding this to some other factors, there was a penalty of at least 2-3 seconds in page load time.
The changes in this commit will remove the redirection mechanism and instead detect the language as follows (if not found at current point, proceed to next point):

On LanguageRedirect initialization, get from $_REQUEST.

try to get from Cookie

try to get from Geolocation Service extension (very useful)

try to get from browser's languages

try english (this is good in my case. Perhaps you would like to remove it)

defaults to first supported language-code.

This will comply very well with Search Engines who will index only www.xanderadvertising.com instead of www.xanderadvertising.com/ro/ or www.xanderadvertising.com/en/.

Hi Vlad,
thanks for improving the extension. I haven't found the time to implement some of the older pull requests and kind of forgot those. I'll have the time to got through my list of extensions in february, but I can add you as an collaborator to the repo right now if you want to.
Regards
Jonas
Am 31.01.2012 um 12:32 schrieb Vlad Ghita:

after installing from ensemble, if enabled from Extensions list, it will update .htaccess rules.
removed redirect mechanism. Continue reading for discussion.

About redirect:
I noticed a performance hit on my site: www.xanderadvertising.com with the previous version of Language Redirect. The redirect requires the Symphony Engine to initialize and execute the Events attached to a Page before the effective redirect takes place. Adding this to some other factors, there was a penalty of at least 2-3 seconds in page load time.
The changes in this commit will remove the redirection mechanism and instead detect the language as follows (if not found at current point, proceed to next point):

On LanguageRedirect initialization, get from $_REQUEST.

try to get from Cookie

try to get from Geolocation Service extension (very useful)

try to get from browser's languages

try english (this is good in my case. Perhaps you would like to remove it)

defaults to first supported language-code.

This will comply very well with Search Engines who will index only www.xanderadvertising.com instead of www.xanderadvertising.com/ro/ or www.xanderadvertising.com/en/.
You can merge this Pull Request by running:
git pull https://github.com/vlad-ghita/language_redirect master
Or you can view, comment on it, or merge it online at:
https://github.com/klaftertief/language_redirect/pull/14
-- Commit Summary --

Fixed a redirect loop when removing language from preferences will be matched by cookie reference.
Update to 1.0.4
Language detection w/o redirect.

-- File Changes --
M README.md (9)
M events/event.language_redirect.php (201)
M extension.driver.php (57)
M lib/class.languageredirect.php (125)
-- Patch Links --
https://github.com/klaftertief/language_redirect/pull/14.patch
https://github.com/klaftertief/language_redirect/pull/14.diff

Reply to this email directly or view it on GitHub:
https://github.com/klaftertief/language_redirect/pull/14

I haven't found the time to implement some of the older pull requests and kind of forgot those.

No prob, just keep up the good work.

I can add you as an collaborator to the repo

This could be an idea, but you should agree with the changes I made. This time they're quite radical ;)

I like the changes :-)
But I think they can be even more radical. Maybe some people don't like the URL scheme the extension sets in the .htaccess. Writing to the .htaccess feels and is dirty and the samesimilar can be achieved with the URL router extension. So I think I will remove the .htaccess rules and let people add those manually or use the URL router. (@designermonkey will probably like it. He suggested to deprecate the language redirect because of the redirect and the .htaccess rule.)
What do you think?

Ah, and the extension should be renamed then. There is no redirect anymore. Maybe "Frontend Languages" or similar? But this will break with many existing extensions that require the language redirect.

(@designermonkey will probably like it. He suggested to deprecate the language redirect because of the redirect and the .htaccess rule.)

Heheh.
I wouldn't worry too much about breaking dependencies, S2.3 is going to break a hell of a lot more than that ;o)
I'm sure we could all bang heads together to find a way of ensuring legacy support until those extensions are also updated.
I'll do some reading through this extension a little more and see what I can think of.

You've also reminded me I need to write a tutorial for using the URL rRouter correctly.

I'm currently working on it... Will push something later today.

Well, not on the tTutorial ;-)

Is it safe to just use $_SERVER['REMOTE_ADDR']? The IP seems a bit hardcoded ;-)

Well, this is there for the developers working on localhost. In this case the $_SERVER's variables hold <IP_ADDRESS>, which is pretty useless. Couldn't find a better solution.

Ah, and the extension should be renamed then. There is no redirect anymore. Maybe "Frontend Languages" or similar? But this will break with many existing extensions that require the language redirect.

What about merging current changes and let them live like this for Sym 2.2.x and starting with Symphony 2.3 rename the extension to Frontend Languages or something like that? Do so, in my Frontend Localisation I'll drop the multiple frontend language driver support and stick only with this new & improved version.
I recommend postponing this until S2.3 because there are lots of changes to be done, especially in all my extensions (they all depend on language info retrieved from Frontend Localisation). With S2.3 I will have to edit them all (there are some breaking changes) and I'll update the Language references as well.

But I think they can be even more radical. Maybe some people don't like the URL scheme the extension sets in the .htaccess. Writing to the .htaccess feels and is dirty and the samesimilar can be achieved with the URL router extension. So I think I will remove the .htaccess rules and let people add those manually or use the URL router. (@designermonkey will probably like it. He suggested to deprecate the language redirect because of the redirect and the .htaccess rule.)

Hmm ... And the first rule in the URL Router rules should be this one?
\/([a-z]{2})-([a-z]{2})(/[a-zA-Z0-9]+/?)?
/$3/?language=$1&region=$2

This feels a bit incomplete. It doesn't allow this cases:
/ro/
/ro-RO/articles/article-with-hyphen

To wait for the renaming for S2.3 sounds good.
I thought about appending example URL Router and .htacces rules to the language settings in the preferences. So developers can update the .htacces or add routes manually. Languages won't be changed that often.

We need to look at those rules, as also there seems to be an issue with query strings in the Router itself. I'm thinking about it at the moment...
I would suggest a rule like:
\/([a-zA-Z]{2})(-([a-zA-Z]{2}))?/(.*)?/\
/$4/?language=$1&region=$3

Also, the plan is to get @nils-werner to finish his pages branch to remove the rules from Preferences to a separate page, so we could look for the existence of this page and append a 'Languages Redirects' section to it? Just an idea...

I thought about appending example URL Router and .htacces rules to the language settings in the preferences. So developers can update the .htacces or add routes manually. Languages won't be changed that often.

This is a very good idea. .htaccess rules should be preserved for anyone who wants them. Here's a use case:
Say you want to localise the Page Titles and Handles. Page LHandles extension deals with this:
_1. .htaccess rules manipulates the URL
_2. PLH translates the URL (FrontendPrePageResolve)
_3. URL Router does it's magic (FrontendPrePageResolve)
If language is determined by URL Router, this will happen:
_1. URL Router determines language (FrontendPrePageResolve)
_2. PLH translates the URL (FrontendPrePageResolve)
_3. URL Router ?fires again? on FrontendPrePageResolve delegate and does it's magic with the localised URL? or ...
Let's bring @designermonkey here. John, your opinion is most welcome in this one.

.htaccess rules should be preserved for anyone who wants them.

Yep. I wouldn't want to drop support for .htaccess rules. I just want to get rid of writing to it. This way, you don't depend on Apache and could use the URL Router (or even just set the language and region parameters [need to be prefixed then] in the extension itself).

Duhh ... Why shouldn't these rules
\/([a-zA-Z]{2})(-([a-zA-Z]{2}))?/(.*)?/\
/$4/?language=$1&region=$3

live in Language Redirect directly?
This way, FrontendPrePageResolve from Language Redirect should fire first, LR does it's logic (determines language, region and cleans the URL from them) and serves the new URL.

I don't want to hardcode the regexes anywhere anymor I think. So the developer has the control about the URL scheme again.

Talking of URL schemes, I've been reading about that today...
It's best practice to put the language code at the beginning of the URL like you have been doing. I reckon we should at least still advocate that behaviour, even if it's not hardcoded.

Agree. This is where the example rules will com in handy.


openbox: fix wrapping of openbox-xdg-autostart

Motivation for this change
openbox-xdg-autostart is a Python script that was not being correctly wrapped.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Success on aarch64-linux (full log)
Attempted: openbox
Partial log (click to expand)
gzipping man pages under /nix/store/qfy4l6mpm2kiixrgrp0bfp0l6sam86nj-openbox-3.6.1/share/man/
strip is /nix/store/jk6j4lh9v5mvjdbdc35sj0zffhhf6s56-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/qfy4l6mpm2kiixrgrp0bfp0l6sam86nj-openbox-3.6.1/lib  /nix/store/qfy4l6mpm2kiixrgrp0bfp0l6sam86nj-openbox-3.6.1/libexec  /nix/store/qfy4l6mpm2kiixrgrp0bfp0l6sam86nj-openbox-3.6.1/bin
patching script interpreter paths in /nix/store/qfy4l6mpm2kiixrgrp0bfp0l6sam86nj-openbox-3.6.1
/nix/store/qfy4l6mpm2kiixrgrp0bfp0l6sam86nj-openbox-3.6.1/libexec/openbox-autostart: interpreter directive changed from "/bin/sh" to "/nix/store/l4w7xwjy2nmk31fl5kgyy7gg8z7l9n8z-bash-4.4-p19/bin/sh"
/nix/store/qfy4l6mpm2kiixrgrp0bfp0l6sam86nj-openbox-3.6.1/bin/.openbox-kde-session-wrapped: interpreter directive changed from "/bin/sh" to "/nix/store/l4w7xwjy2nmk31fl5kgyy7gg8z7l9n8z-bash-4.4-p19/bin/sh"
/nix/store/qfy4l6mpm2kiixrgrp0bfp0l6sam86nj-openbox-3.6.1/bin/.openbox-gnome-session-wrapped: interpreter directive changed from "/bin/sh" to "/nix/store/l4w7xwjy2nmk31fl5kgyy7gg8z7l9n8z-bash-4.4-p19/bin/sh"
/nix/store/qfy4l6mpm2kiixrgrp0bfp0l6sam86nj-openbox-3.6.1/bin/.openbox-session-wrapped: interpreter directive changed from "/bin/sh" to "/nix/store/l4w7xwjy2nmk31fl5kgyy7gg8z7l9n8z-bash-4.4-p19/bin/sh"
checking for references to /build in /nix/store/qfy4l6mpm2kiixrgrp0bfp0l6sam86nj-openbox-3.6.1...
/nix/store/qfy4l6mpm2kiixrgrp0bfp0l6sam86nj-openbox-3.6.1


Spike: Sign out of user account on permission change

What and why?
There is a requirement for the user to be signed out when the users permission has been changed. This code change should accomplish this.
How to test?

In a browser profile (Chrome) sign in with an account you want to change the permissions for (test user)
In one browser profile sign in with an admin user
Using the admin account, goto manage users and select the test user that was used to sign in
Change the permissions (either ticket a new permission or untick a permission)
Click save changed
Go back to the test user and either refresh the screen or click on another tab
The user should be signed out a redirected to the sign in page

Trello
https://trello.com/c/frmUHnXZ/1798-spike-sign-out-of-user-account-on-permission-change-1-2-days

/deploy scorfs

 Spike: Sign out of user account on permission change (2 days)

@LJBabbage I've improved the performance by using scan() instead of key() (it's more efficient). I've changed the get() to mget(), again this method increases performance.  I've replied to your comments below:
"As a spike it works, but we might want to be more specific in how we use all_sessions.get(user_in_session). I reckon that will dump out a large amount of data, without knowing (as it might be fine) what all the bits are, because of that doing a user_id in might not work consistently and the scope be to wide."

mget() will only retrieve the values related to that particular session id. From my tests, user_id will always be present within the session data and I believe that this would work consistently.

"If this was a PR I would also say the function names needs to be connected to the job it is doing and not what caused it to happen, something like delete_user_from_redis_session is probably more appropriate."

I've updated this as you are correct it should be renamed to something more appropriate. I've updated it as part of the spike so that if we decide to go down this route, anyone picking it up can understand better.

"I would also be interested in how multiple sessions from the same account are handled, is it one session in redis and therefore you can escape that loop early."

For every new browser session the user uses to login to rOps, a new session id is created in the DB along with the user id. So the code will keep looping through all the sessions until the end.

 Sign out ROps user when permissions change


Hovering and active effects to buttons

Can I do this under lgmsoc

@siddhi-244 Do not want more changes on UI.


[Idea] Internal variables view access

Developers cannot easily know if a player currently have a custom model on them
It's a good idea to make such variables accessible without necessarily allowing them to be modified
Ex:
ViewStateManager manager = <PlayerControllerB>.gameObject.GetComponent<ViewStateManager>()

manager.HasBodyReplacement() => returns bool
manager.UsesNoPostProcessing() => returns bool

This will make the development of certain mods way easier

I will add the following methods to the ModelReplacementAPI class static methods.
public static bool GetPlayerModelReplacement(PlayerControllerB player);

Note that all I'm doing is modelReplacement = player.thisPlayerBody.gameObject.GetComponent<BodyReplacementBase>();, as the existence of a BodyReplacementBase on the PlayerControllerB gameobject is all that is needed to determine a model replacement.


Formula dsl

See #15 for context.

I think I understand what you're doing here. In principle I like the idea of leveraging Python's parser to check user expressions rather than leaving them in an unchecked string form. It seems to be a requirement to wrap numeric literals in Int() etc to ensure the operator overloading works as expected. Parsing expression strings wholesale would be a way around that perhaps, but you've moved away from that approach because it has too many problems checking for errors when the new approach allows Python to do that for you. Is part of the reasoning here also to discover things at program load-time rather than hitting a run-time error?

It seems to be a requirement to wrap numeric literals in Int() etc to ensure the operator overloading works as expected.

Yup.

Parsing expression strings wholesale would be a way around that perhaps, but you've moved away from that approach because it has too many problems checking for errors when the new approach allows Python to do that for you.

It's not really that parsing expressions for correctness is too much trouble. We already have the machinery for it (a parser and a full language grammar). It's more that representing them using a dsl is what this library is for; it makes them structured and programmable. Imo this is less interesting for formulas than it is for queries, where say you'd want to add a certain filter to every query string on a dashboard. But handling both the same way makes it more consistent.
Another thing is that your editor treats the formulas as expressions, so you get syntax highlighting for them.

Is part of the reasoning here also to discover things at program load-time rather than hitting a run-time error?

Yes, I think that's an important benefit as well. If the formula is syntactically incorrect because you've passed the wrong number of arguments to a function, then it's a SyntaxError in Python already. You don't have to wait until you try to push the dashboard update to get an error then.


winget configure to log whether DSC resource unit is actually applied/set or skipped

Description of the new feature / enhancement
Even though System is in the described configuration state, when performing winget configure, the logging does not indicate if the resources are set or skipped.
For example, with WinGetPackage:
Apply :: WinGetPackage [installGit]
  Configuration successfully applied.

even when the package is already installed with the desired version.
It would be great if the logs could indicate whether set was actually called for the unit. Thank you!
Proposed technical implementation details
No response

[Policy] Command-Configure


Add recent SIPs to the index document

I wonder if we should maybe remove the index instead? I believe we used to render these to the Spin docs site but I don't see that any more.

Yeah, I think it wouldn't be unreasonable to do something else here, but for now we link to it from the devhub, so it should at least be up to date :)

@vdice @lann or other admin, can you force merge please?  Docs never become "naturally" mergeable we skip the build workflow so required checks never pass.


Draft: Conditionally minify css

Adds css_minify option in line with https://github.com/leptos-rs/cargo-leptos/commit/7b316cfc7ae7264084a7c737eec99e0c653f2db5 (see also https://github.com/leptos-rs/cargo-leptos/pull/285)
I am using DaisyUI and currently using lightningcss seems to break it (https://github.com/leptos-rs/cargo-leptos/issues/241)
I saw the js_minify option that was just added, so i think a css_minify should also exist which works in the same way.
This is logically complete, and working. Yet setting minify to false for lightningcss did not solve my issues with the faulty processing.
I put this up as a Draft for now to allow an easier overview/discussion.

serves no purpose for me personally
closed to prevent clutter


Auto Label Issues

Describe the feature you'd like to add
Add GitHub action to auto label issues with gssoc21 label when contributor asks to work under gssoc21. As it takes time for the maintainer to add labels, I can add a script that can auto-label issues with the GSSOC21 label whenever contributors ask to work under that label.
Describe how you will do it
I will add a script in .github folder which will automate the process.
Additional context
Please assign me this issue with a GSSOC tag and a level tag.

You wish to add a workflow for labelling PRs/Issues @aishux right?

Yes. So whenever someone opens an issue and asks to contribute under the GSSOC tag, the bot will assign them a GSSOC tag and a bug/feature/enhancement tag.
Attaching a screenshot for reference.

Yes. So whenever someone opens an issue and asks to contribute under the GSSOC tag, the bot will assign them a GSSOC tag and a bug/feature/enhancement tag.
Attaching a screenshot for reference.

Sure. I have it on some of my other repos too. Saves some time indeed. Go ahead with this please

Please assign me a level tag


CHAOS-3868 Added description to every card in chaos docs

Added description to every card in chaos docs

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65b0cfe476de6b5a0646d867--harness-developer.netlify.app


Automated cherry pick of #5367: Remove NetworkPolicyStats dependency of of MulticastGroup API

Cherry pick of #5367 on release-1.12.
#5367: Remove NetworkPolicyStats dependency of
For details on the cherry pick process, see the cherry pick requests page.

/test-all


Bugfix for roman_datamodels

Quick bugfix for roman_datamodels, it expects fits_embed to be available from import asdf. This used to be available via commands which was removed recently. This PR explicitly imports fits_embed in __init__.py.

I think spacetelescope/roman_datamodels#69 is a better fix than this #1098 has been updated to include the downstream testing included in this PR. I believe it should be merged, closing this PR.


Method to remove vgamepad instance

Is there a gamepad.close() or gamepad.remove() function that removes the virtual gamepad?

Simply:
del gamepad


Reduce configuration to setup

automatically identify dotfiles repository location to reduce need for manual configuration.
I had to reorder the 'all' command to first install brew packages so coreutils can be used in the 'dotfiles' command.
In addition wget is required for zsh-syntax-highlighting so I reordered the package installation

Hey 👋🏽
Please refer to the new dotfiles-cli utility to manage a dotfiles repository - link in here.
It allows to override the managed dotfiles repo location with a custom path using DOTFILES_REPO_LOCAL_PATH env var.
Hit dotfiles config for paths in use.
Thanks !


Fix terms for taste neurons of taste bristles

This PR attempts the issue with the S cell, W cell, L1 GRN, and L2 GRN terms being defined as labellar-specific gustatory neurons even though they are used in the literature, and in some curation records, with a broader meaning valid for gustatory neurons in any taste bristle.
The approach (here for the S cell term) is basically to introduce an intermediate term between sugar-sensing neuron (referring to any such neuron, regardless of which structure it belongs to) and sugar-sensing neuron of the labellum, to represent sugar-sensing neurons that belong to (or rather, innervate) a taste bristle. That new term is the one carrying the EXACT S cell synonym, matching the current usage in the literature. The same approach is used for the other three types of gustatory neurons.
To account for the different ways the existing terms have been used in curation records:

the current S cell term becomes the new sugar-sensing neuron of taste bristle, and sugar-sensing neuron of the labellum is a new term;
likewise, the current L2 GRN term becomes the new high salt-sensing neuron of taste bristle, and high salt-sensing neuron of the labellum is a new term;
the current W cell becomes water-sensing neuron of the labellum (so, keeping its labellar-specific meaning), and the parent water-sensing neuron of taste bristle is a new term;
likewise for L1 GRN.

related to #1190

Closing here as another PR is on the way to fix this issue.


Plz Add feature Drag and Drop between computer and mobile

[x] I have checked that a similar feature request does not already exist.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

https://github.com/Genymobile/scrcpy#file-drop


Document how to add q-args

Could you please add documentation for examples of <q-args>? I cant seem to figure out how to pass --tab-width 2 for example. Thank you!

Closing this for now. We are working on new docs that should address this issue


243 new design for interaction buttons in service detail page

@filopedraz  do we need the same as before and just change new UI or need to change text "open" to "start" ? and do we have restart functionality ?

Same as before and we don't have restart functionality for now. You can create an issue in prem-daemon about restart endpoint

@hardik-rl Please rebase

@Janaka-Steph conflict is resolved,
please check it

@hardik-rl there is still an conflict


feat(serve-cli): Subcommands

Introduce subcommands for better CLI DX. Is still backwards compatible since the default subcommand "start" will use the config file to decide what to do.
$ mesh-serve --help

Usage: mesh-serve [options] [command]

serve GraphQL federated architecture for any API service(s)

Options:
  --fork <count>              count of workers to spawn. defaults to `os.availableParallelism()` when NODE_ENV is "production",
                              otherwise only one (the main) worker (default: 1, env: FORK)
  -c, --config-path <path>    path to the configuration file. defaults to the following files respectively in the current working
                              directory: mesh.config.ts, mesh.config.mts, mesh.config.cts, mesh.config.js, mesh.config.mjs,
                              mesh.config.cjs (env: CONFIG_PATH)
  -h, --host <hostname>       host to use for serving (default: "<IP_ADDRESS>")
  -p, --port <number>         port to use for serving (default: 4000, env: PORT)
  --polling <intervalInMs>    schema polling interval in milliseconds (env: POLLING)
  --masked-errors             mask unexpected errors in responses
  --hive-registry-token <token>  Hive registry token for usage metrics reporting (env: HIVE_REGISTRY_TOKEN)
  --help                      display help for command

Commands:
  start                       start the Mesh Serve using the config to decide what to do (default)
  supergraph [schemaPath]     serve a Federation supergraph provided by a compliant composition tool such as Mesh Compose or Apollo
                              Rover
  subgraph [schemaPath]       serve a Federation subgraph that can be used with any Federation compatible router like Mesh Serve or
                              Apollo Router
  hive [options]              serve a remote supergraph from Hive's High-Availablity CDN and report usage data to Hive's registry
  proxy <endpoint>            serve a proxy to a GraphQL API and add additional features such as monitoring/tracing, caching, rate
                              limiting, security, and more
  help [command]              display help for command

supergraph command
$ mesh-serve supergraph --help

Usage: mesh-serve supergraph [options] [schemaPath]

serve a Federation supergraph provided by a compliant composition tool such as Mesh Compose or Apollo Rover

Arguments:
  schemaPath                  path to the composed supergraph schema file (default: "supergraph.graphql")

Options:
  -h, --help                  display help for command

Global Options:
  --fork <count>              count of workers to spawn. defaults to `os.availableParallelism()` when NODE_ENV is "production",
                              otherwise only one (the main) worker (default: 1, env: FORK)
  -c, --config-path <path>    path to the configuration file. defaults to the following files respectively in the current working
                              directory: mesh.config.ts, mesh.config.mts, mesh.config.cts, mesh.config.js, mesh.config.mjs,
                              mesh.config.cjs (env: CONFIG_PATH)
  -h, --host <hostname>       host to use for serving (default: "<IP_ADDRESS>")
  -p, --port <number>         port to use for serving (default: 4000, env: PORT)
  --polling <intervalInMs>    schema polling interval in milliseconds (env: POLLING)
  --masked-errors             mask unexpected errors in responses
  --hive-registry-token <token>  Hive registry token for usage metrics reporting (env: HIVE_REGISTRY_TOKEN)

subgraph command
$ mesh-serve subgraph --help

Usage: mesh-serve subgraph [options] [schemaPath]

serve a Federation subgraph that can be used with any Federation compatible router like Mesh Serve or Apollo Router

Arguments:
  schemaPath                  path to the subgraph schema file (default: "subgraph.graphql")

Options:
  -h, --help                  display help for command

Global Options:
  --fork <count>              count of workers to spawn. defaults to `os.availableParallelism()` when NODE_ENV is "production",
                              otherwise only one (the main) worker (default: 1, env: FORK)
  -c, --config-path <path>    path to the configuration file. defaults to the following files respectively in the current working
                              directory: mesh.config.ts, mesh.config.mts, mesh.config.cts, mesh.config.js, mesh.config.mjs,
                              mesh.config.cjs (env: CONFIG_PATH)
  -h, --host <hostname>       host to use for serving (default: "<IP_ADDRESS>")
  -p, --port <number>         port to use for serving (default: 4000, env: PORT)
  --polling <intervalInMs>    schema polling interval in milliseconds (env: POLLING)
  --masked-errors             mask unexpected errors in responses
  --hive-registry-token <token>  Hive registry token for usage metrics reporting (env: HIVE_REGISTRY_TOKEN)

hive command
$ mesh-serve hive --help

Usage: mesh-serve hive [options]

serve a remote supergraph from Hive's High-Availablity CDN and report usage data to Hive's registry

Options:
  --endpoint <endpoint>       Hive CDN endpoint for fetching the supergraph (env: HIVE_CDN_ENDPOINT)
  --key <key>                 Hive CDN API key for fetching the supergraph (env: HIVE_CDN_KEY)
  -h, --help                  display help for command

Global Options:
  --fork <count>              count of workers to spawn. defaults to `os.availableParallelism()` when NODE_ENV is "production",
                              otherwise only one (the main) worker (default: 1, env: FORK)
  -c, --config-path <path>    path to the configuration file. defaults to the following files respectively in the current working
                              directory: mesh.config.ts, mesh.config.mts, mesh.config.cts, mesh.config.js, mesh.config.mjs,
                              mesh.config.cjs (env: CONFIG_PATH)
  -h, --host <hostname>       host to use for serving (default: "<IP_ADDRESS>")
  -p, --port <number>         port to use for serving (default: 4000, env: PORT)
  --polling <intervalInMs>    schema polling interval in milliseconds (env: POLLING)
  --masked-errors             mask unexpected errors in responses
  --hive-registry-token <token>  Hive registry token for usage metrics reporting (env: HIVE_REGISTRY_TOKEN)

proxy command
$ mesh-serve proxy --help

Usage: mesh-serve proxy [options] <endpoint>

serve a proxy to a GraphQL API and add additional features such as monitoring/tracing, caching, rate limiting, security, and more

Arguments:
  endpoint                    URL of the endpoint GraphQL API to proxy

Options:
  -h, --help                  display help for command

Global Options:
  --fork <count>              count of workers to spawn. defaults to `os.availableParallelism()` when NODE_ENV is "production",
                              otherwise only one (the main) worker (default: 1, env: FORK)
  -c, --config-path <path>    path to the configuration file. defaults to the following files respectively in the current working
                              directory: mesh.config.ts, mesh.config.mts, mesh.config.cts, mesh.config.js, mesh.config.mjs,
                              mesh.config.cjs (env: CONFIG_PATH)
  -h, --host <hostname>       host to use for serving (default: "<IP_ADDRESS>")
  -p, --port <number>         port to use for serving (default: 4000, env: PORT)
  --polling <intervalInMs>    schema polling interval in milliseconds (env: POLLING)
  --masked-errors             mask unexpected errors in responses
  --hive-registry-token <token>  Hive registry token for usage metrics reporting (env: HIVE_REGISTRY_TOKEN)

TODO

[x] Implement "subgraph"
[ ] Implement default "start" command
[x] Hive usage metrics can be reported when running Mesh in any mode, reflect that in code
[ ] Documentation

--masked-errors

shouldn't this be the default?

https://github.com/ardatan/graphql-mesh/pull/7469#issuecomment-2273062867
It is the default.

Made the masked-errors default obvious (https://github.com/ardatan/graphql-mesh/pull/7469/commits/3a5e08612b698c98c3b9aa02daffca023e03a338).

How do we include the configuration for persisted documents here, which is also part of the Hive SDK? https://the-guild.dev/graphql/hive/docs/features/app-deployments#persisted-documents-on-graphql-server-and-gateway

If I have the following config:
import { defineConfig } from "@graphql-mesh/serve-cli";

export default defineConfig({
  supergraph: {
    type: "hive",
    endpoint:
      "http://localhost:8082/artifacts/v1/5cd8254c-8692-49dd-8110-cb1f81f89dd9/supergraph",
    key: "hv2NzY2NDI5NTItYTFlYi00ZjE2LTg5NDctNWQ5MWQxOTg2NGJlOmRlOGZmZTEyMmNmMDljMTNiNDcwNmIxOGExYzQ5NzYwYTg2MWI1YmI=",
  },
  reporting: {
    type: "hive",
    token: "fd9e4eae6caa416be56ed848ef4dc014",
    enabled: true,
    selfHosting: {
      applicationUrl: "http://localhost:8080",
      graphqlEndpoint: "http://localhost:8082/graphql",
      usageEndpoint: "http://localhost:8081/usage",
    },
  },
});

I still need to provide a supergraph parameter for the CLI command?

I still need to provide a supergraph parameter for the CLI command?

@n1ru4l nope, you just mesh-serve.

You can use the cli with subcommands or define everything in the config file and just run mesh with mesh-serve.

➜  hive-demo git:(update-2024) ✗ npx mesh-serve
[2024-08-12T10:44:48.890Z] INFO  Mesh Searching for default config files
[2024-08-12T10:44:48.891Z] INFO  Mesh Found default config file mesh.config.ts
[2024-08-12T10:44:49.044Z] INFO  Mesh No config loaded
[2024-08-12T10:44:49.045Z] ERROR  Error: Supergraph schema at /Users/laurinquast/Projects/hive-demo/supergraph.graphql does not exist
    at runSupergraph (file:///Users/laurinquast/Projects/hive-demo/node_modules/.pnpm/@graphql-mesh+serve-cli@0.10.0-alpha-20240809121134-77ff52634943ca723b7c18eb3c3a8090b95310c4__4sn5vgrmjshmgtvadlehpe6deu/node_modules/@graphql-mesh/serve-cli/esm/commands/supergraph.js:48:19)
    at async Command.parseAsync (/Users/laurinquast/Projects/hive-demo/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)


restore: fix tablename case issue

What problem does this PR solve?
tablename and schema could be upper case,we should not convert it to lower case
What is changed and how it works?
remove toLower func
Check List
Tests

Unit test

Side effects

Possible performance regression
Increased code complexity
Breaking backward compatibility

Related changes

Need to cherry-pick to the release branch
Need to update the documentation
Need to update the tidb-ansible repository
Need to be included in the release note

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

/run-all-tests

/run-all-tests tidb=release-4.0 tikv=release-4.0 pd=release-4.0

I don't think this fix is relevant to the issue...

since we have supported mydumper.case-sensitive, shall we close this now?

yes let's close.
thanks for the contribution @AndrewDi 🙂.


[Feature Request] Type Definition Files

As a TypeScript developer, I'd love if there were type definition files to use throughout my projects!

With the new releases, the DefinitelyTyped version is now behind and so will need updating to support any new features in this library until types are added at source.

@domness nous y travaillons pour créer des définitions TypeScript.

Do you have a release date?

Hey @sdailly, at this moment we can not give a date but we have added this feature request in our backlog. We are planning to release type definition files by mid-September.

Any news about this feature ? :)

@sdailly  we are working on TS definitions and we’ll make it available in our next release which is planned in the last week of September 2020.

@hjfitz, @sdailly, @domness
We’ve released a new version v3.11.0 and it includes TypeScript definitions. Hope you find this release helpful. We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.

Thank you @uttamukkoji, awesome stuff!


Device cannot join via My GW

Hi,
I have used chirpstack in lorawan and am beginner to helium.
I believe the GW works as data-only mode.
I tried to use my device in helium lorawan, i installed "helium-gateway-v1.0.0-alpha.21-raspi234.deb" to my raspberry pi.
configured as below:

root@heliumGW:/etc/helium_gateway# cat settings.toml
region = "KR920"
[log]
method = "syslog"
level = "debug"
timestamp = false
[update]
platform = "raspi234"
I did restart helium gateway and get log

root@heliumGW:/etc/helium_gateway# systemctl restart helium_gateway
Jan 22 19:46:23 heliumGW systemd[1]: helium_gateway.service: Main process exited, code=killed, status=15/TERM
Jan 22 19:46:23 heliumGW systemd[1]: helium_gateway.service: Succeeded.
Jan 22 19:46:23 heliumGW helium_gateway[1010]: starting server, key: 14EsFDEEGYzYfwCH4izFNgvyFZowRsdF9BfQseyCuMRn73xDVZj, version: 1.0.0-alpha.21
Jan 22 19:46:23 heliumGW helium_gateway[1010]: starting, module: gateway
Jan 22 19:46:23 heliumGW helium_gateway[1010]: starting, module: dispatcher
Jan 22 19:46:23 heliumGW helium_gateway[1010]: default router, module: dispatcher, uri: http://<IP_ADDRESS>:8080/, pubkey: 1124CJ9yJaHq4D6ugyPCDnSBzQik61C1BqD9VMh1vsUmjwt16HNB
Jan 22 19:46:23 heliumGW helium_gateway[1010]: using gateway, module: dispatcher, uri: http://<IP_ADDRESS>:8080/, pubkey: 11tk4zzbyfMPYYHYda255ACoqfYFVdrUSoCWrCYfn8BoyuYrERK
Jan 22 19:46:23 heliumGW helium_gateway[1010]: starting, module: updater
Jan 22 19:46:23 heliumGW helium_gateway[1010]: starting, listen: <IP_ADDRESS>:4467, module: api
Jan 22 19:46:23 heliumGW helium_gateway[1010]: connecting to <IP_ADDRESS>:8080
Jan 22 19:46:23 heliumGW helium_gateway[1010]: connected to <IP_ADDRESS>:8080
Jan 22 19:46:23 heliumGW helium_gateway[1010]: binding client connection
Jan 22 19:46:23 heliumGW helium_gateway[1010]: client connection bound
Jan 22 19:46:23 heliumGW helium_gateway[1010]: send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: Connection; peer=Client
Jan 22 19:46:23 heliumGW helium_gateway[1010]: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:46:23 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(1) }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: received frame=Settings { flags: (0x0) }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: send frame=Settings { flags: (0x1: ACK) }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: received frame=Settings { flags: (0x1: ACK) }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(1), size_increment: 5 }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5 }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
Jan 22 19:46:23 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:46:24 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:46:24 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:46:24 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:46:24 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:46:24 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:46:24 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:46:24 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:46:24 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(3), flags: (0x4: END_HEADERS) }
Jan 22 19:46:24 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(3), flags: (0x4: END_HEADERS) }
Jan 22 19:46:24 heliumGW helium_gateway[1010]: starting, oui: 16, uri: http://<IP_ADDRESS>:8080/, pubkey: 11afuQSrmk52mgxLu91AdtDXbJ9wmqWBUxC3hvjejoXkxEZfPvY, module: router
Jan 22 19:46:24 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:46:24 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(5), flags: (0x4: END_HEADERS) }
Jan 22 19:46:24 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(5), flags: (0x4: END_HEADERS) }
Jan 22 19:46:24 heliumGW helium_gateway[1010]: starting, oui: 13, uri: http://<IP_ADDRESS>:8080/, pubkey: 115ZS5of9wsV3M5sH3mePp9NVnKayUXG7qT2W7Sn4KJLMzd3eMr, module: router
Jan 22 19:46:24 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:46:24 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(7), flags: (0x4: END_HEADERS) }
Jan 22 19:46:25 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(7), flags: (0x4: END_HEADERS) }
Jan 22 19:46:25 heliumGW helium_gateway[1010]: starting, oui: 12, uri: http://<IP_ADDRESS>:8080/, pubkey: 112ewJNEUfSg3Jvo276tMjzFC2JzmmZcJJ32CWz2fzYqbyCMMTe1, module: router
Jan 22 19:46:25 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:46:25 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(9), flags: (0x4: END_HEADERS) }
Jan 22 19:46:25 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(9), flags: (0x4: END_HEADERS) }
Jan 22 19:46:25 heliumGW helium_gateway[1010]: starting, oui: 9, uri: http://<IP_ADDRESS>:8080/, pubkey: 11w77YQLhgUt8HUJrMtntGGr97RyXmot1ofs5Ct2ELTmbFoYsQa, module: router
Jan 22 19:46:25 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:46:25 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(11), flags: (0x4: END_HEADERS) }
Jan 22 19:46:25 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(11), flags: (0x4: END_HEADERS) }
Jan 22 19:46:25 heliumGW helium_gateway[1010]: starting, oui: 4, uri: http://<IP_ADDRESS>:8080/, pubkey: 11263KvqW3GZPAvag5sQYtBJSjb25azSTSwoi5Tza9kboaLRxcsv, module: router
Jan 22 19:46:25 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:46:25 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(13), flags: (0x4: END_HEADERS) }
Jan 22 19:46:25 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(13), flags: (0x4: END_HEADERS) }
Jan 22 19:46:25 heliumGW helium_gateway[1010]: starting, oui: 2, uri: http://<IP_ADDRESS>:8080/, pubkey: 1124CJ9yJaHq4D6ugyPCDnSBzQik61C1BqD9VMh1vsUmjwt16HNB, module: router
Jan 22 19:46:25 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:46:25 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(15), flags: (0x4: END_HEADERS) }
Jan 22 19:46:26 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(15), flags: (0x4: END_HEADERS) }
Jan 22 19:46:26 heliumGW helium_gateway[1010]: updated routing to height 1193008, module: dispatcher
Jan 22 19:46:26 heliumGW helium_gateway[1010]: starting, oui: 1, uri: http://<IP_ADDRESS>:8080/, pubkey: 112qB3YaH5bZkCnKA5uRH7tBtGNv2Y5B4smv1jsmvGUzgKT71QpE, module: router
Jan 22 19:46:26 heliumGW helium_gateway[1010]: no update found, module: updater
Jan 22 19:46:26 heliumGW helium_gateway[1010]: new packet forwarder client: MacAddress(B8:27:EB:FF:FE:26:6F), <IP_ADDRESS>:38733, module: gateway
and restart my Device to get the log of helium-gateway at join request  as below:

Jan 22 19:49:40 heliumGW helium_gateway[1010]: uplink @3686964924 us, 922.30 MHz, Ok(DataRate(SF12, BW125)), snr: 9.2, rssi: -59, len: 23 from MacAddress(B8:27:EB:FF:FE:26:6F), module: gateway
Jan 22 19:49:40 heliumGW helium_gateway[1010]: connecting to <IP_ADDRESS>:8080
Jan 22 19:49:40 heliumGW helium_gateway[1010]: connecting to <IP_ADDRESS>:8080
Jan 22 19:49:40 heliumGW helium_gateway[1010]: connected to <IP_ADDRESS>:8080
Jan 22 19:49:40 heliumGW helium_gateway[1010]: binding client connection
Jan 22 19:49:40 heliumGW helium_gateway[1010]: client connection bound
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: Connection; peer=Client
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: connected to <IP_ADDRESS>:8080
Jan 22 19:49:40 heliumGW helium_gateway[1010]: binding client connection
Jan 22 19:49:40 heliumGW helium_gateway[1010]: client connection bound
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: Connection; peer=Client
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=Settings { flags: (0x0) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=Settings { flags: (0x1: ACK) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=Settings { flags: (0x0) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=Settings { flags: (0x1: ACK) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=Settings { flags: (0x1: ACK) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: connected state channel, oui: 4, uri: http://<IP_ADDRESS>:8080/, pubkey: 11263KvqW3GZPAvag5sQYtBJSjb25azSTSwoi5Tza9kboaLRxcsv, module: router
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=Settings { flags: (0x1: ACK) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received banner (ignored), oui: 4, uri: http://<IP_ADDRESS>:8080/, pubkey: 11263KvqW3GZPAvag5sQYtBJSjb25azSTSwoi5Tza9kboaLRxcsv, module: router, sc_id: TAFpNWISOWULNHW-bs3guqrXHPFY5CG8jLRh3oUZpL4
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: connected state channel, oui: 1, uri: http://<IP_ADDRESS>:8080/, pubkey: 112qB3YaH5bZkCnKA5uRH7tBtGNv2Y5B4smv1jsmvGUzgKT71QpE, module: router
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received banner (ignored), oui: 1, uri: http://<IP_ADDRESS>:8080/, pubkey: 112qB3YaH5bZkCnKA5uRH7tBtGNv2Y5B4smv1jsmvGUzgKT71QpE, module: router, sc_id: End4jxiZ1WUz3NIp2k8G5ZyXBFejYz5xhd0WNmZIGv8
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(1), size_increment: 172 }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 172 }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(1), size_increment: 172 }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 172 }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(17), flags: (0x4: END_HEADERS) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(17) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(17), flags: (0x1: END_STREAM) }
Jan 22 19:49:40 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(17), size_increment: 74 }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 74 }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(17), flags: (0x4: END_HEADERS) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(17) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(17), flags: (0x5: END_HEADERS | END_STREAM) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: accepting new state channel, oui: 4, uri: http://<IP_ADDRESS>:8080/, pubkey: 11263KvqW3GZPAvag5sQYtBJSjb25azSTSwoi5Tza9kboaLRxcsv, module: router, sc_id: TAFpNWISOWULNHW-bs3guqrXHPFY5CG8jLRh3oUZpL4
Jan 22 19:49:41 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(11) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(1), size_increment: 200 }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 200 }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: service.ready=true processing request
Jan 22 19:49:41 heliumGW helium_gateway[1010]: send frame=Headers { stream_id: StreamId(19), flags: (0x4: END_HEADERS) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(19) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(19), flags: (0x1: END_STREAM) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(11), size_increment: 74 }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 74 }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(19), size_increment: 74 }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 74 }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(19), flags: (0x4: END_HEADERS) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=Data { stream_id: StreamId(19) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=Headers { stream_id: StreamId(19), flags: (0x5: END_HEADERS | END_STREAM) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: accepting new state channel, oui: 1, uri: http://<IP_ADDRESS>:8080/, pubkey: 112qB3YaH5bZkCnKA5uRH7tBtGNv2Y5B4smv1jsmvGUzgKT71QpE, module: router, sc_id: 4gwp3GxHi08YIXeWLgPf1_UVtV6rfpO438oEdgchT0Y
Jan 22 19:49:41 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(15) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: send frame=Data { stream_id: StreamId(1) }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(1), size_increment: 200 }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 200 }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(15), size_increment: 74 }
Jan 22 19:49:41 heliumGW helium_gateway[1010]: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 74 }
device join failed and no join packet showed in Helium console ( both console.helium.com and staging-console.helium.wtf )

As far as I can tell you did not install a lora packet forwarder on your raspi to receive packets from the lora card you must have attached to the raspberry pi. Once you have that setup and configured right (including the same region setup) you can turn of debug mode in helium_gatway and watch for received packets it gets from he packet forwarder.
If you have any more questions, please join us in discord in the gateay-development channel. There are a lot of people there that have done this before and happy to help.

Thanks for response.
I have used this gateway with chirpstack and additionally add helium_gateway.
I believe the packet reached the helium_gateway by this log

and restart my Device to get the log of helium-gateway at join request as below:
Jan 22 19:49:40 heliumGW helium_gateway[1010]: uplink @3686964924 us, 922.30 MHz, Ok(DataRate(SF12, BW125)), snr: 9.2, rssi: -59, len: 23 from MacAddress(B8:27:EB:FF:FE:26:6F), module: gateway


Message cache renamed when folder is renamed

Requirements
When folder is renamed, message-cache for folder must also be renamed in order to keep cached messages for the folder.


Image upload is not working

I have installed the latest apk from the master code base.
While sending the image to chat thread the app is crashing. Please find attached log.

@omkar1707 , have you been able to resolve this? Or are you still experiencing this?

@tobimichigan I have not tried with latest commits if any. But with the code that I have, I am facing this issue.

Ok, I have communicated this with @bensmiley . Try re-building and let me know what you experience.

I expect this is fixed in the latest build. If it still persists please reopen.


Add some feature for math class

Wait, I have to fix this, at least Quaternion.RotateTowards.

I noticed Quaternion.LookRotation doesn't work properly when up vector is set to Vector(0, 0, 1), but I don't have an idea to fix. so I regretted to remove this. Quaternion.RotateTowards & Quaternion.FromToRotation have been fixed, though.


git: add a gc command

r? @oconnor663
In the near future, git commands on keybase remotes will sometimes recommend users run keybase git gc to optimize their repos, and clean out old files.  Right now all it will do it pack refs, but later we will add more options for pruning old objects and re-packing objects.
Though the service<->KBFS protocol will support specifying thresholds for garbage collection (like the real git commands do via the git config file), for now this command hides it all from the user behind a single "--force" flag, and if that's not present it uses hard-coded defaults for any thresholds.
If the commands end up taking too long, we might eventually want to pipe status output back from the KBFS process, to show users on the command line during execution, but for now it just says "This may take several minutes...".
Issue: KBFS-2540

circle will fail until I implement the new RPC on the KBFS side.  I'll do that before I merge this and merge them together.


Editorconfig support doesn't work when folder contains [] characters

My root folder ${workspaceFolder} name [Foo] bar contains the characters []. If I rename to foobar, everything will work.

create folder [Foo] bar & open
dotnet new console -n Proj1
put .editorconfig
open via VSCode [Foo] bar folder
no warning

Originally posted by @ExceptionGit in https://github.com/OmniSharp/omnisharp-roslyn/pull/1526#issuecomment-510816624

We actually use an external component - Microsoft.VisualStudio.CodingConventions to do editorconfig settings discovery, and it's really a bug there.
In fact, I just checked, it doesn't work in Visual Studio too.

We actually use an external component - Microsoft.VisualStudio.CodingConventions to do editorconfig settings discovery, and it's really a bug there.
In fact, I just checked, it doesn't work in Visual Studio too.

Could you please share how did your configure omnisharp to work with Microsoft.VisualStudio.CodingConventions?

this has been resolved by moving to Roslyn's native editorconfig support


signing entries in a ledger or dag

Is it possible to use the auth mechanism for signing ledger/dag entries? ie replace the seqno/counter w/ a sha-3-512 ?

@abergs Any chance we can enable discussions on the project (https://docs.github.com/en/discussions/quickstart) and move this topic here?

Enabled - please post your general questions there: https://github.com/passwordless-lib/fido2-net-lib/discussions


protocol handler

Handle nostr: links

Should we use NIP-21 for shared URLs too?

Should we use NIP-21 for shared URLs too?

Seems like they wont be compatible, native apps can register nostr: but on web its restricted to web+nostr: so they wont even open on damus and damus links wont open on snort
Pretty shitty


patch: Add logo for balenaHub

Signed-off-by: Vipul Gupta (@vipulgupta2048) <EMAIL_ADDRESS>

@balena-ci I self-certify!


users can only make their secret keys 16 bytes

This is limiting to the user, they should be able to create a secret key of any size.
Possible option: hash the secret key to 16 bytes.

Solution was to hash using SHA-1 and take first 16 bytes of the hash.


Doesn't work with @apply within scss Vue

Describe the bug
Classes inside of the .vue files applied using @apply, within scss

@praveenperera  It seems to have problem recognizing files with scss extension. If I rename it to css - it works. Any way to tell it to treat scss files the same way as css ones?

Although VScode seems to have language id for scss here and I define my headwind.classRegex like this (basically a copy/paste of css rule from package.json):
"headwind.classRegex": {
    "scss": "\\B@apply\\s+([_a-zA-Z0-9\\s\\-\\:\\/]+);"
},

It fails to recognize it. However when I change either an extension or language association to CSS, it starts working. I'm using latest VScode I think - 1.56 and headwind-2.0.0.vsix.

This solution seems to work fine for me when I include it in my settings.json file using v2 and VS code v1.62.3.

Although VScode seems to have language id for scss here and I define my headwind.classRegex like this (basically a copy/paste of css rule from package.json):

This solution seems to work fine for me when I include it in my settings.json file using v2 and VS code v1.62.3.


Allow C++ to be built from the python build script configuration

@swift-ci Please test

That test failure looks nondeterminisitic. There probably is a bug in the priority ordering

@swift-ci please test


Fix voting window

It was backwards.
The settings should probably be renamed too, but I don't know what they should be named.

I still think that the voting window should not favour US West Coast but instead be equal for all. But if we have it, it should be done correctly, so have my upvote!
👍

It should be equal for all 👎


(PUP-7205) Backport hiera_eyaml v5 lookup function to 4.9.z

This PR contains all the commits that went in with PUP-7100 rebased to stable.

CLA signed by all contributors.


fixed bug with type conversion in ensure_bounds being assigned to num…

…py array

@deanrp2 Thank you for finding this small bug in MFO. Tests are passing as expected!


Pasting Content is not handeled.

When I paste something, it does not update the data in onData.

https://user-images.githubusercontent.com/50898928/145875422-81287e3c-7e37-4f18-ad59-4b47cec8bee0.mp4
Please watch this video for more details


Now showing temp, and rider pads as charts under the map.

Pretty neat, but not 100% sure I like the UX. @kwatkins you or your lady have any ideas on a cleaner UI/UX?

Nice, I'll ask!
On Nov 30, 2017 12:28 AM, "Erik Babel"<EMAIL_ADDRESS>wrote:

Pretty neat, but not 100% sure I like the UX. @kwatkins
https://github.com/kwatkins you or your lady have any ideas on a
cleaner UI?
You can view, comment on, or merge this pull request online at:
https://github.com/ponewheel/android-ponewheel/pull/32
Commit Summary

Now showing temp, and rider pads as charts under the map.

File Changes

M app/src/main/AndroidManifest.xml
https://github.com/ponewheel/android-ponewheel/pull/32/files#diff-0
(8)
M app/src/main/java/net/kwatts/powtools/RideDetailActivity.java
https://github.com/ponewheel/android-ponewheel/pull/32/files#diff-1
(296)
M app/src/main/java/net/kwatts/powtools/RidesListActivity.java
https://github.com/ponewheel/android-ponewheel/pull/32/files#diff-2
(24)
A app/src/main/java/net/kwatts/powtools/components/
LockScrollbarGestureListener.java
https://github.com/ponewheel/android-ponewheel/pull/32/files#diff-3
(53)
A app/src/main/java/net/kwatts/powtools/components/
LockableScrollView.java
https://github.com/ponewheel/android-ponewheel/pull/32/files#diff-4
(62)
M app/src/main/java/net/kwatts/powtools/database/Attribute.java
https://github.com/ponewheel/android-ponewheel/pull/32/files#diff-5
(8)
M app/src/main/res/layout/activity_ride_detail.xml
https://github.com/ponewheel/android-ponewheel/pull/32/files#diff-6
(63)
M app/src/main/res/values/dimens.xml
https://github.com/ponewheel/android-ponewheel/pull/32/files#diff-7
(2)
M app/src/main/res/values/strings.xml
https://github.com/ponewheel/android-ponewheel/pull/32/files#diff-8
(3)

Patch Links:

https://github.com/ponewheel/android-ponewheel/pull/32.patch
https://github.com/ponewheel/android-ponewheel/pull/32.diff

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ponewheel/android-ponewheel/pull/32, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AA0LrciCEOdOTS0uEzl8jq81XtavRhDmks5s7mc5gaJpZM4QwL0T
.

Asked, she gave the Nike running app as an example of a possible UI. Running apps are about the splits and elevation, which really doesn't carry over to OW stats, so it's more about what features we want to show, i.e tracks line color matched to a stat
Def. something we should all think about/discuss, some suggestions or things that would be cool to see,

Parts that were tough or I ate it, where the board flipped and pads were off
Battery life over the ride, maybe tie that in to the GPS track line (green to red)

based on this Linda can mock the ui and any graphics we need

ya, def need to add the crash/slip events to the map! should we have a
toggle to show/hide them?
I'll install nike running app, good idea.
colored line makes sense, I saw a talk at lyft about how to do this.
probably also want a chart that shows battery, spent amps, regen amps as
three lines or maybe like a fill chart would be nice(and challenging to get
it to look good)
what did you think about blocking the user from scrolling while dragging
their finger on the chart? I'm not a fan...but couldn't think of a nicer
way to do it without a ton of work. maybe nike has this covered?
On Fri, Dec 1, 2017 at 12:57 PM Kevin Watkins<EMAIL_ADDRESS>wrote:

Asked, she gave the Nike running app as an example of a possible UI.
Running apps are about the splits and elevation, which really doesn't carry
over to OW stats, so it's more about what features we want to show, i.e
tracks line color matched to a stat
Def. something we should all think about/discuss, some suggestions or
things that would be cool to see,

Parts that were tough or I ate it, where the board flipped and pads
were off
Battery life over the ride, maybe tie that in to the GPS track line
(green to red)

based on this Linda can mock the ui and any graphics we need
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ponewheel/android-ponewheel/pull/32#issuecomment-348612530,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AByawzcZjHFzRpg82fsRMNK3bGMHM8wTks5s8GhPgaJpZM4QwL0T
.

Merging, know UI and all of that can be cleaner but having this in at least moves it forward.


chore(deps): update @warp-ds/css to 1.4.1

@warp-ds/css v1.4.1 introduces the following fixes:

expandable: fix long titles overflowing chevron (https://github.com/warp-ds/css/issues/89) (9de1b4c)
expandable: Only show focus indicator in Expandable component on focus-visible (https://github.com/warp-ds/css/issues/84) (ccf30f2)
expandable: fix chevron icons using part classes in Elements (https://github.com/warp-ds/css/issues/88) (7940b1a)

Closing as this should be merged as part of https://github.com/warp-ds/elements/pull/107


Evac Shuttle Docking Announcement Borked

Description
Had a few rounds recently where the Evac shuttle does not report it docking, only to hear that the shuttle is launching in 10 seconds.
Reproduction
No idea.
Additional context
Shuttle says it's arriving in X minutes, no docking announcement, boom you're left behind on station.

In any of these rounds, did the station disconnect? (via singuloose or whatever)


Sort lists in POwer Monitoring Console by entity name

Description
When viewing the Power Monitoring Console, the suppliers and loads appear in a seemingly random order. It would be clearer if that could be sorted by name instead of whatever it is currently sorted after.
Reproduction

Go to a Power Monitoring Console on a map with named Substations like Meta
Look at the order

Additional context
Since all substations i found are named <direction> <department> Substation (i.e. East Med Substation), sorting alphabetically but starting at the end of the name should yield department-wise sorted lists

Solved by #20927


Lita vagrant development environment misses git

If I follow the documentation between https://docs.lita.io/getting-started/installation/#development-environment and https://docs.lita.io/plugin-authoring/handlers/
The result is:
lita@4ac79d5e8890:~/workspace/lita$ lita handler hello
/home/lita/.gems/gems/lita-4.7.0/lib/lita/cli.rb:153:in ``': No such file or directory - git (Errno::ENOENT)
        from /home/lita/.gems/gems/lita-4.7.0/lib/lita/cli.rb:153:in `generate_user_config'
        from /home/lita/.gems/gems/lita-4.7.0/lib/lita/cli.rb:149:in `generate_config'
        from /home/lita/.gems/gems/lita-4.7.0/lib/lita/cli.rb:103:in `handler'
        from /home/lita/.gems/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
        from /home/lita/.gems/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
        from /home/lita/.gems/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
        from /home/lita/.gems/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
        from /home/lita/.gems/gems/lita-4.7.0/bin/lita:6:in `<top (required)>'
        from /home/lita/.gems/bin/lita:22:in `load'
        from /home/lita/.gems/bin/lita:22:in `<main>'

2 fixes need to be done:

check if the git command is there before trying to invoke it and give a user friendly error
add git in the lita docker image so it doesn't happen

The workaround of course:
lita@4ac79d5e8890:~/workspace/lita$ sudo apt-get install git

Thanks for the report. Once Docker for Mac/Windows comes out of beta I'm gonna revamp the development environment to be much simpler, and will take care of this then. I'm closing this but opening an issue on the development environment repo to track it.


RE 3 randomized Jill RE1 NPCs are glitched

Version
3.0.2 (243098e)
Seed
R730-54JY-ZTHH0HMA9Y600N49K490ZZZZZZZZZZZZF2Z
Scenario
RE 3 (Jill)
Player Character
Carlos (RE3R)
What happened?
Replaying the seed with the newest fix and it randomized Dario's NPC to RE1 Jill and looks like this:

This also happens to any NPC that is randomized into RE1 Jill.

What do you mean by any NPC that is randomized into RE1 Jill?
I assumed that our RE 1 Jill model is just out right broken.

Yea, so there are some NPCs in the cutscenes that have been randomized into Jill and she also has this weird quasimodo vibe. I've seen her bugged with the safe exploding room as well, for example.
I know nothing about modeling, but the built-in STARS costume is a faithful alternative.


No active timeout mechanism

What is the areas you experience the issue in?
Notation CLI
What is not working as expected?
If server starts the TCP connection with client and doesn't reponse the HTTP request, the Notation CLI will keep waiting.
$ notation sign localhost:5003/hello:v1
INFO[2023-06-05T15:01:57+08:00] Using the referrers tag schema
DEBU[2023-06-05T15:01:57+08:00] > Request: "HEAD" "http://localhost:5003/v2/hello/manifests/v1"
DEBU[2023-06-05T15:01:57+08:00] > Request headers:
DEBU[2023-06-05T15:01:57+08:00]    "Accept": "application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.oci.image.index.v1+json, application/vnd.oci.artifact.manifest.v1+json"
DEBU[2023-06-05T15:01:57+08:00]    "User-Agent": "notation/v1.0.0-rc.7"
^C

What did you expect to happen?
Notation may need a timeout mechanism to actively failed the request.
How can we reproduce it?
Write a simple python script to emulate a timeout server:
from flask import Flask, request
import time

app = Flask(__name__)

@app.route('/', defaults={'path': ''}, methods=['GET', 'POST', 'PUT', 'DELETE'])
@app.route('/<path:path>', methods=['GET', 'POST', 'PUT', 'DELETE'])
def delay_response(path):
    while True:
        time.sleep(1)

if __name__ == "__main__":
    app.run(host='<IP_ADDRESS>', port=5003)

start the server, and run
$ notation sign localhost:5003/hello:v1

Describe your environment
Linux x64
What is the version of your Notation CLI or Notation Library?
Notation CLI RC7

We need to discuss for a reasonable timeout for notation. The timeout is for the entire roundtrip for a single request including auth + resource access.