Don't make backups

Can make instead conditional compilation or config options

We could add a command-line option but with git everywhere the backups just seem redundant and slightly annoying.

Ok, I make command line options -b, --make_backup

Done

What better do with classes functions?
Ex. gtk_window_get_default_icon_name?

What better do with classes functions?
Ex. gtk_window_get_default_icon_name?

Static methods probably. If I understand the question right.

@homu r+

:pushpin: Commit 02eda4d has been approved by gkoz

:hourglass: Testing commit 02eda4d with merge 5c88d0d...

:sunny: Test successful - status

Static methods probably. If I understand the question right.

impl Window {
    pub fn get_default_icon_name() -> String {
        unsafe { from_glib_none(ffi::gtk_window_get_default_icon_name()) }
    }
}

Ok.

Looks good.


Propose a document callout note about boto3 for using AWS Bedrock

boto3 needs to be installed to use claude via AWS Bedrock, described in  https://github.com/AnswerDotAI/claudette/issues/24.
This PR has an additional callout-note about it prior to the potentially failing cell.

Thanks!


A lot of these dashboards fail to import.

I have not tried all of them, but I was unable to get either of the dashboards in the OpenObserve folder to import.
These also failed
Kubernetes(openobserve-collector)/Kubernetes  _ Namespace (Pods).dashboard.json
Kubernetes(openobserve-collector)/Kubernetes  _ Namespaces.dashboard.json
Kubernetes(openobserve-collector)/Kubernetes  _ Namespace (Pod).dashboard.json
all of the dashboards in Kubernetes(kube-prom-stack)
these all failed with either something like
Kubernetes _ Namespace (Pods).dashboard.json : AxiosError: Request failed with status code 403

or just pop up at the bottom to enter a json object to import when trying to import from url or json directly

What version of OpenObserve are you running?

I just finished following the OpenObserve HA setup via helm chart. Values file says v0.9.1?

I was able to get some dashboards to import successfully such as the Traces dashboard and the Kubernetes nodes and events dashboards, though the events dashboard doesn't display any data atm.
I had installed this a couple weeks back and had similar issues, but we are re-evaluating the product.

Just updated the dashboards. Can you try again? Dashboard structure has been evolving to add more features, and dashboards in this repo have gotten old. New ones should work.

so i tried Kubernetes _ Namespace (Pods).dashboard.json which says it was updated 5 min ago. https://github.com/openobserve/dashboards/blob/main/Kubernetes(openobserve-collector)/Kubernetes  _ Namespace (Pods).dashboard.json for ref
I tried importing it via downloading the json file (Axioserror: Request failed with status code 403)

Import from url, tried to use https://raw.githubusercontent.com/openobserve/dashboards/main/Kubernetes(openobserve-collector)/Kubernetes  _ Namespace (Pods).dashboard.json. This just pops up and says "Please enter a url for import" but i have a url there.
tried just pasting the json from the directly above raw.githubusercontent.com link into the "Import Dashboard from JSON" and it acts like i did not paste a big json blob into it, but i can clearly see it

I created this short video on how to import dashboards. See if this helps. https://www.youtube.com/watch?v=aPZlj2fUcwo

i watched your video, i did the same thing you did, it did not import. I cloned the whole repo and tried again, it still does not import. Here's my version info

and here's a gif of the failure happening

@ktx-kirtan - Any thoughts? I have not been able to reproduce any failures mentioned by @ericsheris-rumble . I have tried these with 0.9.1 and 0.9.2-rc2 . Tried on windows and mac. All work for me.

I tried and worked for me too.
The video you shared shows error 403 (i.e forbidden) Looks like a permission issue.
@ericsheris-rumble can you open Inspect, go to Network tab and share the request and response details? That would help us debug the issue.

@ericsheris-rumble Are you using enterprise version? Does your reverse proxy allow uploads? Is pasting JSON data in the UI also failing every time?

For reference, i'm running this in kubernetes using the HA setup. I didn't make any major modifications to the install. I think I figured it out though. I think its size related in the end. I had increased the nginx proxy buffer size for the openobserve ingress because there were some http 413 errors in the logs from the tracing i enabled. after increasing the buffer size, these dashboards also seem to import fine.


perf(compaction-test): improve the performance of deterministic compaction test tool

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?

Use iterator to fetch kv pairs
Spawn a task to check the correctness of compaction results

The tool can replay 378 version deltas and 10GB L0 SSTs in about 2 mins with risingwave built in release build.
Checklist

[x] I have written necessary rustdoc comments
~- [ ] I have added necessary unit tests and integration tests~
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Documentation
If your pull request contains user-facing changes, please specify the types of the changes, and create a release note. Otherwise, please feel free to remove this section.
Types of user-facing changes
Please keep the types that apply to your changes, and remove those that do not apply.

Installation and deployment
Connector (sources & sinks)
SQL commands, functions, and operators
RisingWave cluster configuration changes
Other (please specify in the release note below)

Release note
Please create a release note for your changes. In the release note, focus on the impact on users, and mention the environment or conditions where the impact may occur.
Refer to a related PR or issue link (optional)
#5441

Duplicated with #5919


Propfind on Share Jail (type: virtual) does not list items

Describe the bug
A clear and concise description of what the bug is.
Steps to reproduce
Steps to reproduce the behavior:

Create some shares with user A
Accept with user B
Propfind on dav url for Share Jail of user B

Expected behavior
A clear and concise description of what you expected to happen.
The state of Share Jail and all its child items to be reported
Actual behavior
A clear and concise description of what happened.
Only the state of the Share Jail, not of its children is reported.

fixed by https://github.com/owncloud/ocis/pull/3842

https://github.com/owncloud/ocis/pull/3842 is merged


refactor(autoware_radar_object_tracker): move headers to src and rename package

Description
move headers to src and rename package
Related links
Parent Issue:

https://github.com/autowarefoundation/autoware/issues/4569

How was this PR tested?
Notes for reviewers
None.
Interface changes
None.

Effects on system behavior
None.

@technolojin this PR is a followup to #7658 I moved the headers and renamed the package.

Closing as https://github.com/autowarefoundation/autoware.universe/pull/7892 has already been merged.
@technolojin please have a look at the PR queue before submitting one that already does the same so as to not duplicate work. This PR was submitted before https://github.com/autowarefoundation/autoware.universe/pull/7892 Thanks.

@esteve
That was my mistake. I am sorry.


removing for loop - see comments on PR #357

Coverage decreased (-0.02%) to 71.683% when pulling 4cfc818506c728130215bd2a49264bea8429b893 on lindsaycarr:master into 10134a6fbe0912de4c89fd84674c05d9101593b2 on USGS-R:master.


ContinuousFromMicrophone no error information

When running the ContinuousFromMicrophone sample, the code is failing on  speechRecognizer, err := speech.NewSpeechRecognizerFromConfig(config, audioConfig)
I get the following error information:
Got an error:
There is no error code and I can't tell if it's a subscription setup issue (I don't think it is), or if its the audioConfig setup

Hi @scottlance, can you try capturing a log trace? You can set it like this:
config.SetProperty(common.SpeechLogFilename, "your_file_name")

@scottlance Is this still a valid issue for you, can you please provide the log as requested?

Error is still valid, we have found a problem and making a fix.

Fix has been done, closed


CSS Enhancements for Improved UI/UX

Description
I’ve reviewed the current styling of the project, and I believe there are several opportunities to enhance the overall user experience and visual appeal through CSS improvements. Below are some suggestions:

Button Styling: The "Proceed to HealthCare Login Page" button can have a more modern design, with hover effects to make it more interactive and noticeable.
Typography: The text could benefit from improved font choices, sizes, and spacing to enhance readability and consistency across the page.
Alignment: Adjusting the alignment of the elements, particularly the logo and text, can provide a cleaner and more professional layout.
Hover Effects: Adding subtle hover effects to elements like buttons and links will improve the interactivity of the interface.
Contrast & Colors: Increasing the contrast between text and background colors would improve accessibility and make the design pop.

Benefits

Improved visual appeal and user engagement.
Enhanced readability and accessibility.
Consistent design that aligns with modern web standards.

Priority
Medium
Request
I request that this issue be assigned under Hacktoberfest and would appreciate any feedback on my proposed changes.

@AdityaGahukar your suggestion looks great, I'd appreciate, if you can add some visually appealing graphics and background Images to improve overall experience.
can you do this ?

@AdityaGahukar it'd be great if you can add some beautiful animations, and design apart from your suggestion that align with health sector or something like that.
For example current login page looks boring, you can change background, reposition the login page or add some cool animations  .

Yes, sure. Can you please assign it to me?

Hi @vaibhavyadav-dev ,
I hope you're doing well! I wanted to kindly check in on the status of my recent PR #15 . I understand things can get busy, but I’d appreciate any feedback or insight you might have on the changes. If there's anything I need to improve or adjust, feel free to let me know!
Thank you for your time, and I’m looking forward to your feedback!
Best regards,
Aditya Gahukar

@AdityaGahukar After all you just changed location of button, made the page responsive (already assigned to someone) and all that stuff we do not gonna need anymore after one of Assignee finishes his work !
It'd be great if you can add some animations, or new design for a new look.
at the end your Impact matter's, what you changed and how is it affecting it before and after.

@vaibhavyadav-dev hey can i work on that...for your reference here is some of the work done by me . *url (https://voting-app-frontend-67ba.onrender.com/)

@AdityaGahukar After all you just changed location of button, made the page responsive (already assigned to someone) and all that stuff we do not gonna need anymore after one of Assignee finishes his work ! It'd be great if you can add some animations, or new design for a new look. at the end your Impact matter's, what you changed and how is it affecting it before and after.

Hi @vaibhavyadav-dev ,
Thank you so much for your feedback! I appreciate the opportunity to contribute and the insights you've shared.
I’ve realized that this issue might be better handled by someone else, especially with the ongoing work on related tasks. I’m happy to step aside and let someone else take over from here.
Thanks again, and I look forward to following the project’s progress!
Best regards,
Aditya


Create a help/about modal

Decided to split this functionality in two: a help guide (using Intro.js and an about modal.


Update version

r? @Fraser999
(maidsafe_highfive has picked a reviewer for you, use r? to override)

Sure, speaking of which, would you mind reviewing https://github.com/maidsafe/secure_serialisation/pull/24 :)


Unknown solve is all 1s

I'm trying to debug an engine and wing integrated file (at https://github.com/hoburg/d8/commit/25e1dd51fea7e3458a3e7754096dca65fba8c466). The model solves for ranges 2,810 nm and below. I was running with a range of 2,812 which does not converge (the first GP iteration returns unknown). Using the method from https://github.com/hoburg/gpkit/issues/1047 I inspected the unknown result and all free variables had a value of 1. @bqpd any idea what is going on here?

I supplied order of magnitude initial guesses for many of the variables and now I get an ill posed unknown solve the fist GP iteration, a feasibility solve, a couple cycles of the dual infeasible then feasibility solve before ending on an unknown solve that is again all 1s
@1ozturkbe this issue relevant to D8

also, if I run debug on the model it outputs a result nearly identical to the 2,810 nm case which solves reliably and has not variables bounded or constants relaxed...

This sounds like a fun one.

Tentative theory is that another constraint (perhaps related to the monomial approximations) make the higher range primal infeasible, debug isn't finding it for some reason, and the 1's are just the initial guess passing through because it never solves.

this code seems at a44bf8de7bae122b957bc22c473e0d2b8cbee733 to have a different error, solving until the A matrix becomes singular


MVP: KYC Verification Core requirements

Description:
Implement TFGrid KYC Verifier, a REST API service that integrates with Idenfy to verify users' identities (KYC) before they can access certain functionalities on the TFGrid platform. The service should securely manage the user verification process, store verification results, and expose endpoints for querying a user's verification status. It will act as the source of truth for user verification on TFGrid, enabling other tools to determine what a user can do on the grid.
Related issue:

https://github.com/threefoldtech/tfgrid-kyc-verifier/issues/2

Functional Requirements:

KYC Verifier Core Endpoints:

Token Generation Endpoint: Accepts the user ID (typically the user's public key on TFChain, with proof such as a signature) and generates a token for the verification process.
Webhook Endpoint: Receives verification data from Idenfy, including both intermediate and final results.
Verification Status Query: Allows checking a user's verification status, which can be verified, unverified, rejected, or pending.
Data Retrieval: Enables users to access their verification data.

Token Management:

Prevent users from generating new tokens until the final verification result is received via the webhook or until the existing token has expired, to conserve credit usage.

Handling Suspicion:

Configure the system to consider a user as verified if their verification status is marked as "suspected," but individual components like the document and face are approved. This should be the default behavior.

Spam Prevention:

Require users to maintain a minimum TFT balance before starting the KYC process, with the balance requirement being configurable.
Limit the number of requests (e.g., token generation) from a single IP address within a specified time frame to prevent spam attempts, temporarily blocking access if the limit is exceeded. Store the related data in a database (not in memory) to support running multiple instances of the service.

Handling Document Expiration:

By default, users with expired documents should be considered unverified, but this setting should be configurable.

Non-Functional Requirements:

Service Reliability:

The service must handle potential downtimes and be capable of recovering pending verifications once it is back online.

Data Storage:

Store all data received through the webhook, even if it is extensive.

Scalability:

The solution must be stateless and scalable to handle an increasing number of verification requests while optimizing credit usage. It should support 100 TPS per instance for querying verification status, though token generation throughput may be limited by Idenfy's service capacity.

Validation:

Ensure that incoming webhook notifications are verified to prevent tampering.

Security:

Endpoints must use TLS encryption
Secure webhook endpoints using IP whitelisting to prevent unauthorized access.
Prevent users who have successfully completed verification from initiating another verification.
Implement rate-limiting for requests from the same client ID to prevent abuse.

Next Steps:

[X]  Finalize the functional and non-functional requirements.
[X] Address the open questions with the development team to refine the service design.
[X] Create a development timeline based on the finalized requirements.
[ ] implement Core functionality

Will handle the encryption transient only, not at rest.

Update
a personal testing instance deployed here https://kyc1.gent01.dev.grid.tf/docs
Completed:
Core Endpoints:

[X] Token Generation Endpoint
[X] Webhook Endpoint (verification update)
[X] Verification Status Endpoint
[X] Data Retrieval
[X] Health endpoint

Token Management:

[X] Prevent users from generating new tokens until the final verification result is received via the webhook or until the existing token has expired, to conserve credit usage.

Handling Suspicion:

[X] Configure the system to consider a user as verified if their verification status is marked as "suspected," but individual components like the document and face are approved. This should be the default behavior.

Spam Prevention:

[X] Require users to maintain a minimum TFT balance before starting the KYC process, with the balance requirement being configurable.
[X] Limit the number of token requests from a single IP address
[X] Limit the number of token requests per ClientID

Data Storage:

[X] Store all data received through the webhook, even if it is extensive.
Validation:
[X] Ensure that incoming webhook notifications are verified to prevent tampering.

Network Separation:

[X] iDenfy always receives a unique client ID consisting of {tfchain address}:{network}.

WIP
Core:

[ ] Webhook Endpoint (Handle Doc Expiration)

Security:

[ ] Secure webhook endpoints using IP whitelisting to prevent unauthorized access. (We already use a shared signing key but implementing IP whitelisting will provide higher security)

Service Reliability:

[ ] The service must handle potential downtimes and be capable of recovering pending verifications once it is back online.


removes lodash dependecies

This replaces the calls to lodash to get rid of the dependency and thus speed up loading in the browser.
let me know if I miss something or if you think it is not save enough like this.

Many thanks for the pull request 👍 I thought the same a couple of weeks ago and was about lodash as well (thanks to the shiny new ES2015 methods like Objec.assign)
Merged 😎

Oh I see that this pull request conflicts with your previous one #75
Could you fix the conflict please?

@screendriver done.

Awesome! Thank you 👍

I've made a v0.5.1 version for you.

Very nice. Thanks a lot!


How to compute the "develop" probability of any specific group of cells?

Hi cellrank developers,
I found that cellrank could compute the likelihood that each cell develop to final cells/root cells.
cr.tl.lineages(adata)
cr.pl.lineages(adata)

I wonder if we could compute the transition probability to any specific groups, not only to the final cells or root cells.

Hi @YiweiNiu , sorry for taking ages to reply! I think something went wrong with the github notifications. In any case, what you are asking for is possible, no problem! We have a function for that called cr.pl.cluster_fates, see the documentation here:
https://cellrank.readthedocs.io/en/latest/api/pl/cellrank.pl.cluster_fates.html#cellrank.pl.cluster_fates
If you encounter any issues with this, please post at the main cellrank repo here to make sure we get back to you quickly.

Hi @YiweiNiu , is there still anything we can help you with? You find our docs at cellrank.org
Otherwise, I will go ahead and close this issue.

Closing due to inactivity. If you have any questions, please post them on the main repo here: https://github.com/theislab/cellrank/issues


[DNM]update CheckTxnStatus API

@cfzjywxk PTAL

This update makes jepsen invalid, maybe caused by the non-blocking read feature.


add 'passed' for cryogenics-concourse-tasks

Authored-by: Gary Liu<EMAIL_ADDRESS>Thanks for submitting a PR to DRATs.
Checklist
Please provide the following information (and links if possible):
[ ] What component are you testing?
[ ] Is the component an default component in cf-deployment?
[ ] Have you created a TestCase and added it to the list of cases to be run?
[ ] Have you added any new properties/information to all of the following:

[ ] integration_config.json: Specifically, an include_<testcase-name> property
[ ] documentation in docs/
[ ] tasks in ci/
[ ] scripts in scripts/

[ ] Have you manually validated your TestCase against a deployed Cloud Foundry? If so, which version?
[ ] Does this change rely on a particular version of cf-deployment?
[ ] Are there any optional components of Cloud Foundry that should be enabled for this new TestCase to succeed?  Are their presence checked for in the CheckDeployment method of your TestCase?
[ ] Are you available for a cross-team pair to help troubleshoot your PR?  What timezones are you based in?
[ ] Have you submitted a pull-request to modify the cf-deployment backup and restore ops files to add a backup job and properties where appropriate?
Do you have any other useful information for us?
We're on the #bbr cloudfoundry Slack channel if you need us.

There appear to be no file changes, so closing this PR


Add Cebu Institute of Technology - University

IT-related courses offerings page
University's Facebook page acknowledging email domain for students

@3WokRide I am sorry, the domain cit.edu is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Flags icon on option select

Is there a way to use this icon on options in a select form list?

If you use something like http://brianreavis.github.io/selectize.js/ sure :)


Feature request: Ionic 2 (dev/prod) environment variables configuration

From @jgw96 on July 25, 2016 20:42
From @amreladawy on July 24, 2016 6:58
Short description of the problem:
It is a feature request.
Just like Angular2, I hope that Ionic can provide 2 files (environment.dev.ts and environment.prod.ts) that would contain variables with different values corresponding to production and development environment.
During the build, the appropriate file to be copied and bundled within the app artifact.
Which Ionic Version?  2.x
https://forum.ionicframework.com/t/ionic-2-environment-variables-config-setup/58147/1
https://stackoverflow.com/questions/36004810/how-to-config-different-development-environment-in-angular-2-app
Copied from original issue: driftyco/ionic#7413
Copied from original issue: driftyco/ionic-cli#1205

From @dnmd on October 24, 2016 13:46
Currently our implementation uses the rollup-plugin-replace, and a slightly modified rollup config.
Basically what happens is that the import paths are replaced based on the process.env.IONIC_ENV variable during compile time. This will use the environment.dev.ts during development and environment.prod.ts when in production.
Implementation steps

install the rollup-plugin-replace
npm install --save-dev rollup-plugin-replace

create two files; environment.dev.ts and environment.prod.ts within e.g. the src/config directory.

├── src/config/environment.dev.ts

export const ENV = {
  PRODUCTION : false,
  API_URL    : 'dev.local'
};

├── src/config/environment.prod.ts

export const ENV = {
  PRODUCTION : true,
  API_URL    : 'prod.local'
};

import the environment-dev as the default within your pages / services etc.

// use the 'environment-dev' as the default import(!)
import { ENV } from '../../config/environment-dev';

@Component({
  templateUrl: 'hello-ionic.html'
})
export class HelloIonicPage {
   console.log( ENV.API_URL );
}

update your /package.json

├── /package.json

"config": {
    "ionic_rollup": "./config/rollup.config.js"
}

create your rollup.config.js within the /config directory. Require the plugin, and add the replace snippet below to your plugins section. One can use<EMAIL_ADDRESS>as a template.

├── /config/rollup.config.js

var replace = require('rollup-plugin-replace');
var isProd  = (process.env.IONIC_ENV === 'prod');
...
plugins: [
    replace({
      exclude: 'node_modules/**',
      // use the /config/environment-dev as the default import(!), no stub needed.
      // note we only replace the "last" part of the import statement so relative paths are maintained
      '/config/environment-dev' : ( isProd ? '/config/environment-prod' : '/config/environment-dev'),
    })
   ...
]

Hope this helps someone! Of course in an ideal situation a file replacement would take place, similar to the Angular CLI

From @itrethan on October 22, 2016 8:48
Can we raise the priority for this issue? This is actually very important. Our app has different configs for prod and devel.  Just make the release really cumbersome.

From @Maziar-Fotouhi on October 26, 2016 14:55
Is there any plans to actually implement this?

From @tabirkeland on November 1, 2016 17:36
With "@ionic/app-scripts": "0.0.39" now defaulting to webpack for bundling, I am doing something like this.
Steps to implement:

Make sure you have installed the latest app-scripts npm install @ionic/app-scripts@latest and have the latest tsconfig.json.

Install dotenv.

Create .env file with env variables defined in the root directory of your app.  Recommended:
add .env to .gitignore.

Create and modify webpack.config.js from original found here:

├── /config/webpack.config.js

require('dotenv').config();

...
function getPlugins() {
  var plugins = [
    new webpack.DefinePlugin({
      'API_URL': JSON.stringify(process.env.API_URL)
      // Add any more variables here that you wish to define
    })
  ];

  if (process.env.IONIC_ENV === 'prod') {
      // This helps ensure the builds are consistent if source hasn't changed:
    plugins.push(new webpack.optimize.OccurrenceOrderPlugin());
  }
  return plugins;
}
...

Define custom webpack config file in package.json.

├── /package.json

"config": {
    "ionic_webpack": "./config/webpack.config.js"
}

Create custom typings file defining the constants that are in your .env file so that webpack can populate them and you are able to reference them in your application.

├── /src/customTypings/customTypings.d.ts

declare var API_URL: string;
// Add any more variables here that you wish to define

You should now be able to reference the global variable(s) in your app.
Furthermore, you can create multiple .env files for different environments and require them in webpack.config.js like so:
require('dotenv').config({path: '/custom/path/to/your/env/vars'})

From @slinto on November 8, 2016 9:41
This solution is working, but I think, rewriting all webpack.config is not good, becase updates... Is there any idea from ionic team?

From @rossholdway on November 11, 2016 11:13
@jgw96 Can we get this added to a milestone? We should be able to specify different environment configuration e.g. different API endpoints for dev and production. As @slinto mentioned creating a modified webpack.config is not ideal as updates will cause issues :/

From @locnguyen on November 11, 2016 15:54
I'd really like to see this functionality supported. Is a custom webpack config the only way?

From @Maziar-Fotouhi on November 11, 2016 16:10
Okay... After a lot of coffee and head bumping, I've realized that the best way (at least for me) is to change the environments manually and not rely on ionic to change it. That was mainly because ionic-cli does not let you runionic serve with production environment.
I have set an environment.ts in the root folder of the app that contains all the variables.
environment.ts
export class ENV {

    public static currentEnvironment: string = "development";
    // public static currentEnvironment: string = "production";

    public static development: any = {
         key1: "value1",
         key2: "value2",
        ......
        ......
    };
    public static production: any = {
        key1: "value1",
        key2: "value2",
        ......
        ......
    };
}

Then I added an environment.service among my services.
environment.service.ts
import {Injectable} from '@angular/core';
import {ENV} from '../../environments/environment';

@Injectable()
export class EnvironmentService {

    public getKey1() : string{
        if(ENV.currentEnvironment === "development"){
            return ENV.development.key1;
        } else if(ENV.currentEnvironment === "production") {
            return ENV.production.key1;
        }
    }

    public getKey2() : string{
        if(ENV.currentEnvironment === "development"){
            return ENV.development.key2;
        } else if(ENV.currentEnvironment === "production") {
            return ENV.production.key2;
        }
    }

     ......
     ......

}

Then I added the service to the providers of the app.module and used it like any other service.

And finally, in order to change the environment, you have to toggle (comment and uncomment) the first two line of environment.ts.
This is a good workaround for now, if you need different values (URLs, API keys, etc.) to be used in development and production. But, I think eventually, ionic and ionic-cli teams will have to work together to integrate something like this internally, that lets us use different sets of environment variables based on a flag that we pass to the command that is running the app.
E.g. :
ionic (serve/run) (--prod/--dev)

From @slinto on November 11, 2016 17:13
hmm, the manual comment/uncomment of right ENV is dangerous, because is there a big risk with publishing application with development environment to store, especially if your team is about 1+ people :) I think about right way as:
ionic serve / DEVELOPMENT ENV (DEFAULT):
$ ionic serve
ionic serve / PRODUCTION or CUSTOM ENV:
$ ionic serve --env=prod,
$ ionic serve --env=test,
$ ionic serve --prod
ionic build / PRODUCTION ENV (DEFAULT):
$ ionic build
ionic build / DEVELOPMENT or CUSTOM ENV:
$ ionic build --dev
$ ionic build --env=test
$ ionic build --env=dev
eg. http://jonnyreeves.co.uk/2016/simple-webpack-prod-and-dev-config/

From @Maziar-Fotouhi on November 11, 2016 17:31
@slinto You are absolutely correct, there is the possibility of publishing the app with dev variables. But, it is only as dangerous as any other solution. You may build the prod app with the wrong command as well.
I'm actually using this in a corporate project with a big number of people on the team. I think nowadays every team uses version control systems like git or svn. So, this would be just a matter of team functionality and team members being coordinated with each other. And furthermore, there is usually only one person in team who is in charge of deploying the app.
But, again, you're right. With manual toggle of environments, there is a slightly higher chance of making the mistake. So, as I said, this is only a temporary fix. Ideally, this should be internal to ionic, using the commands you mentioned.

From @allaanz on November 14, 2016 19:57
+1

From @rolandjitsu on November 21, 2016 15:2
@dnmd can you confirm that your solution works with a production build?

From @zjhiphop on November 20, 2016 11:16
Hey, guys, any progress of official implements?

From @Yimiprod on November 25, 2016 18:4
with 0.0.46 adding anything at config in package.json trigger rollup warnings (and the script freeze after that)
[18:58:40]  rollup: Conflicting namespaces<EMAIL_ADDRESS>            re-exports 'NgContentAst' from both
<EMAIL_ADDRESS>(will be
            ignored) and<EMAIL_ADDRESS>[18:58:40]  rollup: Conflicting namespaces<EMAIL_ADDRESS>            re-exports 'PropertyBindingType' from both
<EMAIL_ADDRESS>(will be
            ignored) and<EMAIL_ADDRESS>[18:58:40]  rollup: Conflicting namespaces<EMAIL_ADDRESS>            re-exports 'templateVisitAll' from both
<EMAIL_ADDRESS>(will be
            ignored) and<EMAIL_ADDRESS>
By the way, isn't it better to listen for the argument --release ?
Another thing, why with 0.0.46 it's rollup and not webpack by default?

From @movrack on November 26, 2016 15:17
I like the idea of @slinto
In our case, we have actually 5 environments...

dev
test (unit test)
iat (human first line test => developer tester)
uat (human second line test => business client tester)
prod

And we have to copy config file at build time to choose the environment.
To chose the environment at build time, we run it like :
TARGET=xxx ionic run yyy for mac or set TARGET=xxx&& ionic run yyy for windows developer.
This is managed by a hook based on this post : http://www.kdmooreconsulting.com/blogs/build-a-cordova-hook-to-setup-environment-specific-constants/
But since we do that, we lost the live reload feature! (ionic-app-script watch doesn't copy our right config.js file and we don't know how to do that).
If we can set a parameter like @slinto told -- to choose the environment with something like "--env=xxx", and make it available for live reload ...  -- it will be really cool!

From @schaergeek on November 28, 2016 8:44
Definitely a must. So +1

From @iacomus on November 30, 2016 18:56
So how would this tie in with the Live Deploy to channel feature currently available https://docs.ionic.io/services/deploy/ ?

From @sean-hill on January 2, 2017 17:49
Any updates to this Ionic team? I would love to see this baked into the ionic-app-scripts repo.

From @mvidailhet on December 21, 2016 14:16
OK, so I needed this kind of feature to be able to have different parameters (api endpoints, google analytics ID etc...) with different environments (dev, preprod, prod...).
So I made my first module (feedbacks more than welcome, and please be gentle :p) to be able to do that: gl-ionic2-env-configuration
Basically, it loads a env-configuration.json located in the www folder before anything else (so that your api url will be set even in your apiService constructor, for example).
In the package documentation, I linked a simple node executable to easily copy the configuration file for a specific environment.
Advantages

You don't need to override the Ionic webpack.config (which could break things when Ionic updates).
You can have as much environments as you want and name it as you like.
You can dynamically change the configuration file without having to recompile the app (which will be very useful for continous integration systems).

Hope this will help.

From @fiznool on February 2, 2017 11:39
Inspired by the solution from @tabirkeland I thought I'd post my own version of this. The differences with the script below vs the original solution:

The Ionic webpack.config script is built upon, not replaced, meaning that any updates to @ionic/app-scripts should be merged in.
The script is aware of Ionic's --prod flag, allowing you to provide separate configuration for dev and prod builds.
There is no dependency on dotenv.

Here's the steps to get it all working:

Create a file at config/webpack.config.js and paste the following content:

// Set the `ENV` global variable to be used in the app.
var path = require('path');
var webpack = require('webpack');

var projectRootDir = process.env.IONIC_ROOT_DIR;
var appScriptsDir = process.env.IONIC_APP_SCRIPTS_DIR;

var config = require(path.join(appScriptsDir, 'config', 'webpack.config.js'));

var env = process.env.IONIC_ENV || 'dev';
var envVars;
try {
  envVars = require(path.join(projectRootDir, 'env', env + '.json'));
} catch(e) {
  envVars = {};
}

config.plugins = config.plugins || [];
config.plugins.push(
  new webpack.DefinePlugin({
    ENV: Object.assign(envVars, {
      environment: JSON.stringify(env)
    })
  })
);

if(env === 'prod') {
  // This helps ensure the builds are consistent if source hasn't changed:
  config.plugins.push(new webpack.optimize.OccurrenceOrderPlugin());
}

module.exports = config;

Add the following entry to your package.json:

  "config": {
    "ionic_webpack": "./config/webpack.config.js"
  }

If you need additional configuration, create two files env/dev.json and env/prod.json. In here, put any configuration you need for that environment. Your json should be an object of key-value pairs, which will be made available for use in your application.

{
  "enableLogging": true,
  "apiServerUrl": "\"http://example.com/api\""
}

Now, you can use the ENV global constant anywhere in your .ts files:
declare const ENV;

if(ENV.environment === 'dev') {
  // Run without the `--prod` flag.
  // Any keys defined in `dev.json` will be available on the `ENV` object.
} else if (ENV.environment === 'prod') {
  // Run with the `--prod` flag.
  // Any keys defined in `prod.json` will be available on the `ENV` object.
}

The script creates an ENV object with a single key, environment, which is set to prod if you run your ionic command with the --prod flag. Otherwise, this will be dev.
The env/dev.json and env/prod.json files are optional. If present, the script will merge the appropriate object into ENV. The script above uses webpack's DefinePlugin, so remember to 'stringify' any string values, otherwise webpack will assume you want to insert a code fragment. For example:
{
  "apiServerUrl": "\"http://example.com/api\""
}

It would be great to see this baked into the core webpack.config.js file in the app-scripts repo.

From @NightOnFire on February 2, 2017 18:6
I implemented the solution from @fiznool the webpack script does not look for env/dev.json but env/dev and when it does have .json it auto converts to an object so no need for the JSON.parse. I changed envVars = JSON.parse(require(path.join(projectRootDir, 'env', env))); to envVars = require(path.join(projectRootDir, 'env', env + '.json'));.
My very limited knowlege of webpack stumped me for a bit and I had to add extra quotes in my json so I ended up with {"foo": "\"bar\""}. There is probably a better way to deal with this though.

From @swaheed2 on February 2, 2017 19:39
Since Ionic 2.0 final is out, I'm guessing there will be  many more production level apps starting out.
If we can get an update from the Ionic team about this feature, we can at least know if we need to implement a temporary solution or go all in using one of the various suggestions from the comments.

From @fiznool on February 4, 2017 7:47
@NightOnFire @coldAlphaMan thanks for your comments, I've updated my comment to reflect these needed changes. :+1:

From @coldAlphaMan on February 3, 2017 23:14
so fyi i was able to implement @fiznool suggestion along with @NightOnFire changes and it worked for me.  That said, pay attention to @NightOnFire comments on how to set up entries in your json file.
{"foo": "bar"} WILL NOT WORK and will generate exceptions.
you HAVE to format your json entries the same way @NightOnFire did his.
Hope this helps.

From @geraneum on February 11, 2017 11:18
You cannot useENV in app.module.ts in production using @fiznool method. Any solution for this?

From @rolandjitsu on February 11, 2017 11:32
@geraneum Use Rollup with rollup-plugin-replace and replace strings instead of variables:
replace({
    values: {
        '{{IONIC_ENV}}': process.env.IONIC_ENV,
    },
    exclude: 'node_modules/**'
}),

And somewhere in your app:
const env = '{{IONIC_ENV}}';

From @fiznool on February 11, 2017 12:14
@geraneum could you share a code snippet that shows this issue? It might be possible to split the references to ENV out into separate exported functions or constants to allow for aot builds.

From @geraneum on February 11, 2017 12:58
@fiznool
I have put declare const ENV; in /src/declarations.d.ts
Then in /env/prod.json I have something like this:
{
  "ionicCloudAppId": "'<APP ID>'",
}

in /src/app/app.module.ts I have:
const cloudSettings: CloudSettings = {
  'core': {
    'app_id': ENV.ionicCloudAppId
  }
}

Everything else is the same as what you've suggested.
I have other variables declared in prod.json and they work everywhere except app.module.ts.
Also using ENV.ionicCloudAppId in other places works.
This only happens with --prod flag.

From @fiznool on February 11, 2017 13:37
AOT can be fiddly. What exactly is the error message?
I've previously had luck exporting constants so that AOT works correctly, you could try this.
export const cloudSettings: CloudSettings = {
  'core': {
    'app_id': ENV.ionicCloudAppId
  }
}

From @geraneum on February 11, 2017 13:54
@fiznool added export still getting the same error:
Cannot read property 'ionicCloudAppId' of undefined
Also how can I use this feature with ionic package build --release? when I do that, dev settings gets picked up in the generated APK, I also provided release.json, but still no luck.

From @fiznool on February 11, 2017 14:21
@geraneum I just created a sample repo and building for production works as expected. In app.module.ts, there is a console log which prints the variable ENV.api_server to the console. This is defined differently in dev.json and prod.json.
When running ionic run android --prod I see the following in logcat:
02-11 14:16:26.883 16383 16383 I chromium: [INFO:CONSOLE(32)] "http://prod.example.com", source: file:///android_asset/www/build/main.js (32)

which is what I would expect.
Perhaps you can use this repo and see what the differences are in your own app? Here is my ionic info:
Cordova CLI: 6.5.0
Ionic Framework Version: 2.0.1
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.0.0
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Linux 4.8
Node Version: v6.9.4
Xcode version: Not installed

Regarding the release build, you still need the --prod flag, AFAIK --release is purely concerned with generating release keys to sign your app with.
ionic package build --prod --release

From @fiznool on February 11, 2017 16:19
Yes, I see now. Seeing the same issue. Maybe someone with more aot knowledge can help as I'm a bit stumped too :smile:

From @geraneum on February 11, 2017 14:50
@fiznool Thank you very much for your help.
I got the correct output from console log... but for test I changed the app.module.ts like this:
imports: [
    IonicModule.forRoot(MyApp, {
      tabsHideOnSubPages: ENV.tabsHideOnSubPages
    })
  ],

and prod.json to this:
{
  "api_server": "'http://prod.example.com'",
  "tabsHideOnSubPages": true
}

And as soon as I did it, I got the following error on app launch:
Uncaught TypeError: Cannot read property 'tabsHideOnSubPages' of undefined
    at e.createInternal (main.js:26)
    at e.create (main.js:11)
    at t.create (main.js:11)
    at main.js:7
    at t.invoke (polyfills.js:3)
    at Object.onInvoke (main.js:4)
    at t.invoke (polyfills.js:3)
    at e.run (polyfills.js:3)
    at t.run (main.js:4)
    at e._bootstrapModuleFactoryWithZone (main.js:7)

From @domlogic on February 14, 2017 9:2
I was seeing the problem of undefined things after creating config files like rollup.config.js and updating package.json.  It is important to copy the files from app-scripts on git hub and edit them rather than create new files because you are overriding the defaults, which breaks if things are missing.
For the initial problem, I wanted to contribute my problem and solution:
I think the support is already there.  I wanted to avoid storing the api keys and other identities from source control. I did the following:

Create a "config" folder and an "environment" folder under the app root.

Copy the default ionic app-script for the copy config from https://github.com/driftyco/ionic-app-scripts/blob/master/config/copy.config.js to /config

Edit the copy.config.js (for me it was a firebase config, which I placed before polyfills):
... copyFonts: {  src: ['{{ROOT}}/node_modules/ionicons/dist/fonts/**/*', '{{ROOT}}/node_modules/ionic-angular/fonts/**/*'],  dest: '{{WWW}}/assets/fonts' }, copyFirebaseConfig: {  src: ['{{ROOT}}/environment/firebase-config.js'],  dest: '{{BUILD}}' } , copyPolyfills: {  src: ['{{ROOT}}/node_modules/ionic-angular/polyfills/polyfills.js'],  dest: '{{BUILD}}' }, ...

Add the config to package.json so that ionic build knows that the default is overridden:
... "config": {  "ionic_copy:": "config/copy.config.js" }, ...

Add a file which exports the desired config as a const at the location specified in the modified copy.config.js

Import the config where it is needed (for me it's a single import in app.module.ts):
import {FirebaseConfig} from '../../environment/firebase-config';

Tell git to ignore everything under "environment"

Tell your build server to add the config file to its working dir under subdir "environment" (I haven't done this yet)

Now only your build server and dev environment know what your api keys are.  I hope this helps somebody else.

From @jhonathas on February 15, 2017 19:16
@domlogic But doing so I can not get a configuration file for environments, right? Example, firebase.dev.ts, firebase.prod.ts etc ...

@jthoms1 see this starter https://github.com/mbamobi/ionic2-starter created where I am working
Using the module https://github.com/mbamobi/configuration
Thanks

What does everyone think of something like this?
https://github.com/driftyco/ionic-app-scripts/issues/762
Thanks,
Dan

+1

Inspired by the @dnmd and Angular 2 solution, I've only made minor changes, and it works fine.
Implementation steps
Install the rollup-plugin-replace
npm install --save-dev rollup-plugin-replace

Create this files in the src/environments directory:

environment.dev.ts
environment.prod.ts
index.ts(optional)

Add these examples to files:
├── src/environments/environment.dev.ts

export const ENV = {
  PRODUCTION : false,
  API_URL    : 'dev.local'
};

├── src/environments/environment.prod.ts

export const ENV = {
  PRODUCTION : false,
  API_URL    : 'prod.local'
};

├── src/environments/index.ts

// use the '/environments/environment.dev' as the default import(!)
export * from '../environments/environment.dev';

Import the environments/environment.dev as the default within your pages/services etc.
// use the '/environments/environment.dev' as the default import(!)
import { ENV } from '../../environments/environment.dev';

@Component({
  templateUrl: 'hello-ionic.html'
})
export class HelloIonicPage {
   console.log( ENV.API_URL );
}

Update your /package.json
├── /package.json

"config": {
    "ionic_rollup": "./config/rollup.config.js"
}

Create your rollup.config.js within the /config directory and add this code:
const rollupConfig = require('@ionic/app-scripts/config/rollup.config');
const replace = require('rollup-plugin-replace');

const isProd = (process.env.IONIC_ENV === 'prod');

const rollupConfigReplaceEnviroment = replace({
  exclude: 'node_modules/**',
  // use the /environments/environment.dev as the default import(!), no stub needed.
  // note we only replace the "last" part of the import statement so relative paths are maintained
  '/environments/environment.dev' : ( isProd ? '/environments/environment.prod' : '/environments/environment.dev'),
});

rollupConfig.plugins = rollupConfig.plugins || [];
rollupConfig.plugins.splice(0, 0, rollupConfigReplaceEnviroment);

module.exports = rollupConfig;

About rollup.config i think we dont need copy all source of @ionic/app-scripts/config/rollup.config.js, only extend it...

thanks @RodolfoSilva for that example!
This is my version without the need of environment.*.ts files or folder. Also, IONIC_ENV wasn't getting picked up my ionic CLI command.
rollup.config.js
const rollupConfig = require('@ionic/app-scripts/config/rollup.config');
const replace = require('rollup-plugin-replace');

const isProd = (process.env.NODE_ENV === 'prod');

if (isProd) {
    console.log('Building with Prod enviroment');
} else {
    console.log('Building with Dev enviroment. set NODE_ENV=prod for production API URL, etc.');
}

const rollupConfigReplaceEnviroment = replace({
  exclude: 'node_modules/**',
  ENVIRONMENT: isProd ? 'prod': 'dev'
});

rollupConfig.plugins = rollupConfig.plugins || [];
rollupConfig.plugins.splice(0, 0, rollupConfigReplaceEnviroment);

module.exports = rollupConfig;

Then you just need to add this in .ts file which exports the variable you want to change depending on the ENV variable (NODE_ENV):
api.ts
let ENV = 'ENVIRONMENT'; // <-- this text will be replaced by the 'rollup-plugin-replace' module

const isProd = (ENV == 'prod');

let PROTOCOL;
let API_URL;

if (isProd) {
    PROTOCOL = 'https:';
    API_URL = 'api.example.com';
} else {
    PROTOCOL = 'http:';
    API_URL = 'dev.example.com'; // maybe pointing to localhost
}

And now you run it like this :tada: :
$ ionic serve --nobrowser

> ionic-hello-world@ ionic:serve MyMobileApp
> ionic-app-scripts serve "--v2" "--nobrowser" "--address" "<IP_ADDRESS>" "--port" "8100" "--livereload-port" "35729"

[00:07:25]  ionic-app-scripts 1.1.3
[00:07:25]  watch started ...
[00:07:25]  build dev started ...
[00:07:25]  clean started ...
[00:07:25]  clean finished in 5 ms
[00:07:25]  copy started ...
[00:07:25]  transpile started ...
Building with Dev environment. Set NODE_ENV=prod for production API URL, etc.

or for prod:
$ NODE_ENV=prod ionic serve --nobrowser

> ionic-hello-world@ ionic:serve MyMobileApp
> ionic-app-scripts serve "--v2" "--nobrowser" "--address" "<IP_ADDRESS>" "--port" "8100" "--livereload-port" "35729"

[00:01:31]  ionic-app-scripts 1.1.3
[00:01:31]  watch started ...
[00:01:31]  build dev started ...
[00:01:31]  clean started ...
[00:01:31]  clean finished in 2 ms
[00:01:31]  copy started ...
[00:01:31]  transpile started ...
Building with Prod environment
...

@RodolfoSilva  @gianpaj  I am getting error "rollup failed: Unexpected token" any ideas what it could be?

@vovikdrg do you by chance use @ionic/cloud-angular? If you do, the error occurs in @ionic/db. I removed @ionic/cloud-angular and it works without it.
I'm not sure why though.

@rolandjitsu  yes i am...

@rolandjitsu  thanks for pointing out, I have found issue. It was dependency to old rxjs.

hi there all,
I am trying to make it work, but somehow, the ENVIRONMENT string is not replaced by the plugin.
I do see the message 'Building with Prod environment' when run ionic serve -b, so I know the plugin is run, but when I do a console.log(env), I still see ENVIRONMENT being printed, instead of the replacement.
I am using the setup like @gianpaj showed in his last comment above.
Also I put some console.logs in node_modules/rollup-plugin-replace/dist/rollup-plugin-replace.cjs.js and i can see the replace function being called, but the transform function never gets fired...
Does anyone have a clue?
ps: I am using  nvm, tried node version v6.9.2 and v7.5.0, both same result

What's the official solution for this?

@maxpaj,
No official solution right now, coming soon...
Let's track this issue here since it's a duplicate.
Thanks,
Dan


Keyboard shortcuts display is slightly crowded on Safari

Here's what it looks like in Chrome, which is much lovelier:

Yeah thats not ideal hah, should be simple to fix. Might be lack of support for flex box gap

Oh interesting https://css-tricks.com/safari-14-1-adds-support-for-flexbox-gaps/ - it was added and then 14.1 was pulled 🤔


Allow for Input source security in SQL layer

Partially Fixes #13837.
Description
This change introduces the concept of input source type security model, proposed in #13837.. With this change, this feature is only available at the SQL layer, but we will expand to native layer in a follow up PR.
To enable this feature, the user must set the following property to true:
druid.auth.enableInputSourceSecurity=true
The default value for this property is false, which will continue the existing functionality of having the usage all external sources being authorized against the hardcoded resource action
new ResourceAction(new Resource(ResourceType.EXTERNAL, ResourceType.EXTERNAL), Action.READ
When this config is enabled, the users will be required to be authorized for the following resource action
new ResourceAction(new Resource(ResourceType.EXTERNAL, {INPUT_SOURCE_TYPE}, Action.READ
where {INPUT_SOURCE_TYPE} is the type of the input source being used;, http, inline, s3, etc..
Documentation has not been added for the feature as it is not complete at the moment, as we still need to enable this for the native layer in a follow up pr.
This PR has:

[x] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[ ] a release note entry in the PR description.
[x] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[x] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[x] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[x] been tested in a test Druid cluster.

thanks @abhishekrb19 ! I will take care of the minor comments in follow up pr.


Unable to save edit in A&R under Pilot Bay Sawmill bay camprgound

To replicated in prod:

With any role go to A&R enter data (happening for that sub-area role only but also happens when I try with sysadmin)
select a month then Pilot Bay (0163)  and Sawmill Bay Campground (0318) and try to enter data
click save
error message pops up and unable to save

Expected Behavior:

successful save after user clicks save - no error

Tested on both TEST and PROD: Passed

Verified that this issue does not happen on both TEST and PROD environments.
Passing to PO review.

moving to done


not working

[2016-07-31 12:18:50] [x] PokemonGO Bot v1.0
[2016-07-31 12:18:50] [x] Configuration initialized
[2016-07-31 12:18:51]
[2016-07-31 12:18:51] [x] Address found: Sydney, New South Wales, Australia
[2016-07-31 12:18:51] [x] Position in-game set as: (-33.8688197,<PHONE_NUMBER>, 0.0)
[2016-07-31 12:18:51]
[2016-07-31 12:18:51] Login Error, server busy
root@vultr:/home/PokemonGo-Bot#
i tried play on moblie it ok , and tried bot ...it not working anymore ?????????????????

Double check your login information, did u type it correctly?

2016-07-31 12:52:46,325 [   rpc_api] [WARNING] Unexpected HTTP server response - needs 200 got 403
Traceback (most recent call last):
File "pokecli.py", line 139, in
main()
File "pokecli.py", line 119, in main
if not api.login(config.auth_service, config.username, config.password, app_simulation = True):
File "/home/pgoapi/pgoapi/pgoapi.py", line 126, in login
response = request.call()
File "/home/pgoapi/pgoapi/pgoapi.py", line 182, in call
response = request.request(self._api_endpoint, self._req_method_list, self.get_position())
File "/home/pgoapi/pgoapi/rpc_api.py", line 108, in request
if ('auth_ticket' in response_dict) and ('expire_timestamp_ms' in response_dict['auth_ticket']) and (self._auth_provider.is_new_ticket(response_dict['auth_ticket']['expire_timestamp_ms'])):
TypeError: argument of type 'bool' is not iterable
i tested with lib pgoapi and got HTTP server response - needs 200 got 403

Same here, it was working before and suddenly I started getting "Login error, server busy".

Do you use any VPS provider ? Niantic has banned AWS,DigitalOcean,Azure etc..
That can lead to an 403 error.


hll EncodeBinary

Codecov Report

Merging #242 into master will increase coverage by 0.02%.
The diff coverage is 88.88%.

@@            Coverage Diff             @@
##           master     #242      +/-   ##
==========================================
+ Coverage   69.13%   69.15%   +0.02%
==========================================
  Files         159      159
  Lines       21303    21317      +14
==========================================
+ Hits        14727    14741      +14
+ Misses       5452     5450       -2
- Partials     1124     1126       +2

Impacted Files
Coverage Δ

query/common/hll.go
55.24% <88.88%> (+1.13%)
:arrow_up:

datanode/peer_source.go
50% <0%> (-3.58%)
:arrow_down:

controller/mutators/etcd/schema_mutator.go
60.94% <0%> (+1.77%)
:arrow_up:

memstore/batchstats.go
86.2% <0%> (+3.44%)
:arrow_up:

Continue to review full report at Codecov.

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


Extract SearchTemplateRequestBody in watcher

Use the duplicate in watcher instead of referencing the request directly.

LGTM
Can you run make contrib and push again?

Done!

Adding the breaking label. This pr fixes the definition, but it will "break" the generated types.


docs: auto-generated resources

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


Update how-to-authentication-methods-manage.md

Incorrect location given
Fixes #107559

@Justinha

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Use DNS Name if specified as hostVal for SNI

use DNS Name if specified as the host value given
to the remote service when retrieving certificates chain
update doc comments explaining SNI support logic for
cert retrieval
explicitly report host value chosen for cert retrieval
update debug message's structured log fields to explicitly
note the chosen host value, DNS Name, Server values to
better troubleshoot certificate chain retrieval

refs GH-343

This does not completely fix #343, so not closing it with this PR.
Still need to:

update documentation
review certsum to see if it still has the same issue as lscert and check_cert previously did


waves-red, waves-pink classes not working

Some classes of waves-_<color>_ are not working when added in buttons with class waves-effect.

https://codepen.io/jgarza9788/pen/VwdKGWK
that is true


Modify tsconfig creation

Drop files array and filesGlob as they are not needed for autocompletion or compilation.
Exclude typescript node_module from compilation due to duplicate identifier clashes.
Note that a user has to exclude other node_modules which may hinder compilation by hand!
Ping @rosen-vladimirov

:+1:

Why did you do that? What did this fix? The hook automatically managed the "files" array, and now the user has to manually exclude modules from node_modules. How is this an enhancement?


Adds exclusions and inclusions property

See #5

Current coverage is 90.64% (diff: 100%)

Merging #9 into master will increase coverage by 0.45%

@@             master         #9   diff @@
==========================================
  Files             5          5
  Lines           265        278    +13
  Methods          25         26     +1
  Messages          0          0
  Branches         65         73     +8
==========================================
+ Hits            239        252    +13
  Misses           26         26
  Partials          0          0

Powered by Codecov. Last update 54383ce...aec6f03


SAMP-DMGInformer

can you provide some description? perhaps i can assist you with something if i get time.
Though there was an issue if you shoot at the legs, it shows the damage at head bone

All my LUA projects were made in a time where i had motivation to play the game, now i barely got some.
However, you are free to help me with anything you like.
I will look at that issue and fix it, even though that was never planned.


Use RTLD_NODELETE for loading the library

See discussion around https://github.com/gfx-rs/wgpu/issues/246#issuecomment-783542762

That's unfortunate. I'll add the flag then.
The relevant issue is https://github.com/nagisa/rust_libloading/issues/41

Could you clarify why this is unfortunate? Sorry, I didn't dig into all the context here.

@kvark: The root cause of https://github.com/nagisa/rust_libloading/issues/41 is this glibc bug. Ideally, you would be able to dlclose a shared library when you're done using it, and glibc would take care of removing any TLS destructors from that library.


"Index was outside the bounds of the array" from dotnet CLI

I'm running Cake 0.23.0 locally on Windows 10 Pro 64 bit version.
In my Cake script I've been using "" for the project in order to let the CLI tools figure out things. I basically want to build everything.
DotNetCoreBuild("", new DotNetCoreBuildSettings
    {
        Configuration = configuration,
        MSBuildSettings = msBuildSettings
    });

This worked fine with the 1.1 tooling, but fails with the 2.0 tooling.
Turning on diagnostics information, I see that following command is being called
"C:/Program Files/dotnet/dotnet.exe" build "" --configuration Release /property:AssemblyVersion=<IP_ADDRESS> /property:FileVersion=<IP_ADDRESS> /property:PackageVersion=<IP_ADDRESS>
Note the "" after build. If I remove them, things work fine.
If I try to pass inn null in the Cake script, I get an ArgumentNullException.
I had a look at the code and think I've spotted the problem in https://github.com/cake-build/cake/blob/develop/src/Cake.Common/Tools/DotNetCore/Build/DotNetCoreBuilder.cs
The Build() method has a null check for project, but when you look at the GetArguments() method, you can see that also has a null check for project. If it's not defined, you don't escape an empty string.
From what I can tell, it should only be a matter of removing the null check from the Build() method.
 public void Build(string project, DotNetCoreBuildSettings settings)
        {
            if (project == null)
            {
                throw new ArgumentNullException(nameof(project));
            }
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            RunCommand(settings, GetArguments(project, settings));
        }

        private ProcessArgumentBuilder GetArguments(string project, DotNetCoreBuildSettings settings)
        {
            var builder = CreateArgumentBuilder(settings);

            builder.Append("build");

            // Specific path?
            if (project != null)
            {
                builder.AppendQuoted(project);
            }

            // Output directory
            if (settings.OutputDirectory != null)
            {
                builder.Append("--output");
                builder.AppendQuoted(settings.OutputDirectory.MakeAbsolute(_environment).FullPath);
            }

========================================
Build
========================================
Executing task: Build
Executing: "C:/Program Files/dotnet/dotnet.exe" build "" --configuration Release /property:AssemblyVersion=<IP_ADDRESS> /prop
erty:FileVersion=<IP_ADDRESS> /property:PackageVersion=<IP_ADDRESS>
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at System.String.get_Chars(Int32 index)
   at Microsoft.DotNet.Cli.CommandLine.StringExtensions.HasPrefix(String arg)
   at Microsoft.DotNet.Cli.CommandLine.StringExtensions.<Lex>d__7.MoveNext()
   at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source, Int32& length)
   at System.Collections.Generic.Queue`1..ctor(IEnumerable`1 collection)
   at Microsoft.DotNet.Cli.CommandLine.Parser.Parse(IReadOnlyCollection`1 rawArgs, Boolean isProgressive)
   at Microsoft.DotNet.Cli.CommandLine.Parser.Parse(String[] args)
   at Microsoft.DotNet.Cli.ParserExtensions.ParseFrom(Parser parser, String context, String[] args)
   at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient)
   at Microsoft.DotNet.Cli.Program.Main(String[] args)
An error occurred when executing task 'Build'.
Error: System.AggregateException: One or more errors occurred. ---> Cake.Core.CakeException: .NET Core CLI: Process retu
rned an error (exit code 1).
   at Cake.Core.Tooling.Tool`1.ProcessExitCode(Int32 exitCode)
   at Cake.Core.Tooling.Tool`1.Run(TSettings settings, ProcessArgumentBuilder arguments, ProcessSettings processSettings
, Action`1 postAction)
   at Cake.Common.Tools.DotNetCore.Build.DotNetCoreBuilder.Build(String project, DotNetCoreBuildSettings settings)
   at Submission#0.DotNetCoreBuild(String project, DotNetCoreBuildSettings settings)
   at Submission#0.<<Initialize>>b__0_2()
   at Cake.Core.CakeTaskBuilderExtensions.<>c__DisplayClass8_0.<Does>b__0(ICakeContext x)
   at Cake.Core.ActionTask.<Execute>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Cake.Core.DefaultExecutionStrategy.<ExecuteAsync>d__4.MoveNext()

Looks like a bug in dotnet. We experience similar behavior:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at System.String.get_Chars(Int32 index)
   at Microsoft.DotNet.Cli.CommandLine.StringExtensions.HasPrefix(String arg)
   at Microsoft.DotNet.Cli.CommandLine.StringExtensions.<Lex>d__7.MoveNext()
   at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source, Int32& length)
   at System.Collections.Generic.Queue`1..ctor(IEnumerable`1 collection)
   at Microsoft.DotNet.Cli.CommandLine.Parser.Parse(IReadOnlyCollection`1 rawArgs, Boolean isProgressive)
   at Microsoft.DotNet.Cli.CommandLine.Parser.Parse(String[] args)
   at Microsoft.DotNet.Cli.ParserExtensions.ParseFrom(Parser parser, String context, String[] args)
   at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient)
   at Microsoft.DotNet.Cli.Program.Main(String[] args)

I am getting the same:
Time Elapsed 00:00:02.24
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at System.String.get_Chars(Int32 index)
   at Microsoft.DotNet.Cli.CommandLine.StringExtensions.HasPrefix(String arg)
   at Microsoft.DotNet.Cli.CommandLine.StringExtensions.<Lex>d__7.MoveNext()
   at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source, Int32& length)
   at System.Collections.Generic.Queue`1..ctor(IEnumerable`1 collection)
   at Microsoft.DotNet.Cli.CommandLine.Parser.Parse(IReadOnlyCollection`1 rawArgs, Boolean isProgressive)
   at Microsoft.DotNet.Cli.CommandLine.Parser.Parse(String[] args)
   at Microsoft.DotNet.Cli.ParserExtensions.ParseFrom(Parser parser, String context, String[] args)
   at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient)
   at Microsoft.DotNet.Cli.Program.Main(String[] args)

when running:
dotnet build $scriptsDir --configuration RELEASE --verbosity normal --version-suffix '' /property:VersionPrefix=0.0.0

I have this version.props which I am referencing from all projects:
<!-- This file may be overwritten by automation. Only values allowed here are VersionPrefix and VersionSuffix.  -->
<Project>
    <PropertyGroup>
        <VersionPrefix>0.0.0</VersionPrefix>
        <VersionSuffix>dev</VersionSuffix>
    </PropertyGroup>
</Project>

Let me know if you need anything else from me to repro this. I will try to get a clean repro project as well.

This worked as expected:
dotnet build $scriptsDir --configuration RELEASE --verbosity normal /property:VersionPrefix=0.0.0 /property:VersionSuffix=''

@kimbell Have you tried pointing dotnet build at the solution file? That's what I generally do.


Research Storybook by library or global

Research the options we have for storybook, if we can use different frameworks in the same installation.

We'll use a global storybook installation that loads framework-specific storybooks.


build system explanation

hi
Is it possible to explain how exactly you compile so much code including libraries etc without using visual studio project files?
It's sounds insane to me or do you use a 3rd party build system I have never heard of?

Most cross-platform systems doesn't use VS project files because you can only compile them on Windows (and my primary OS is Linux these days)
There are many, many ways to compile code in a cross-platform way where https://cmake.org is one of the more popular these days. I personally prefer using Tundra to compile the code as I like the way how you configure the build steps better.
You can read more about it in the doc here https://github.com/deplinenoise/tundra/blob/master/doc/manual.asciidoc

ok I was very new to this and now understand!
I closed this.


Delete execute as and some jira links in release note

What type of PR is this：

[ ] bug
[ ] feature
[ ] enhancement
[ ] refactor
[x] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

run starrocks_tscancode


Add support for storing stack outputs in a ConfigMap

CloudFormation stack outputs can be useful for returning generated information like VPC IDs, RDS database connection URLs, etc that might be needed by applications running in the Kubernetes cluster.  Add support for retrieving stack outputs for the CFN stacks provisioned by the CFN controller and saving them as a Kubernetes ConfigMap.
Examples from other projects:

ACK: https://aws-controllers-k8s.github.io/community/docs/user-docs/field-export/
Flux Terraform controller: https://docs.gitops.weave.works/docs/terraform/using-terraform-cr/provision-resources-and-write-output-data/

Make sense to also support outputs to Secret, and possibly make it default (as tf-controller and Crossplane do), since outputs can contain sensitive info.

Outputs generally should not contain sensitive info, as they are not redacted at all in CloudFormation's APIs or console.
See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html

CloudFormation doesn't redact or obfuscate any information you include in the Outputs section. We strongly recommend you don't use this section to output sensitive information, such as passwords or secrets.


Release proposal: standard v13

Planned release date: July 8
Please give feedback! Run npx standard@next or npm install standard@next to try it out.
When you upgrade, consider running standard --fix to automatically format your code to match the newly added rules.
New features

Update eslint from ~5.16.0 to ~6.0.1

BREAKING: Node.js 6 is no longer supported

Node.js 6 is EOL and will no longer be receiving security updates. As a result, the eslint team has decided to drop support for it.
To prevent breaking CI for projects which still support Node 6, standard silently passes when run by an unsupported version of Node.

For eslint-config-standard users only: Plugins are no longer affected by eslint's location

Previously, ESLint loaded plugins relative to the location of the ESLint package itself. As a result, we suggested that users with global ESLint installations should also install plugins globally, and users with local ESLint installations should install plugins locally.
With ESLint v6, plugins should always be installed locally, even if ESLint was installed globally. More precisely, ESLint v6 resolves plugins relative to the end user’s project by default, and always resolves shareable configs and parsers relative to the location of the config file that imports them.
See migrating to ESLint 6.0.0 for more information.

Update eslint-plugin-promise from ~4.0.0 to ~4.2.1

No significant changes

Update eslint-plugin-node from ~7.0.1 to ~9.1.0

No significant changes

The README is now available in Japanese 🇯🇵!

Thanks to @Munieru for the excellent work!
Other community contributed translations exist in Spanish, French, Italian, Korean, Portuguese, Simplified Chinese, and Taiwanese Mandarin. More translations are welcome.

New rules
(Estimated % of affected standard users, based on test suite in parens)

Disallow spaces inside of array brackets (array-bracket-spacing) #1203 eslint-config-standard/#131 (14%)
Require const instead of let if variable is never reassigned (prefer-const) #523 eslint-config-standard/#133 (14%)
Disallow quotes around object literal property names that are not strictly required (quote-props) #791 (4%)
Disallow use of Object.prototypes builtins directly (no-prototype-builtins) #1310 (3%)
Require an empty line between class members (lines-between-class-members) #438 (1%)
Disallow using an async function as a Promise executor (no-async-promise-executor) #1309 (1%)
Disallow assignments that can lead to race conditions due to usage of await or yield (require-atomic-updates) #1314 (1%)
Disallow spaces inside of computed properties (computed-property-spacing) #1315 eslint-config-standard/#131 (1%)
Disallow unnecessary catch clauses (no-useless-catch) #1312 (0%)
Disallow characters which are made with multiple code points in character class syntax (no-misleading-character-class) #1311 (0%)

Lovely to see progress! Thank you for your service to the community, @feross! :heartbeat:

You're welcome, @mightyiam. ✨

Would it be possible to still get https://github.com/standard/eslint-config-standard/issues/129 in there?

This one would also be neat: https://github.com/standard/eslint-config-standard/pull/136

(I removed the #1314 rule because of false positive reports.)
standard 13.0.0 is released now!

@feross thank you for release! @Flet can you release new version of semistandard?

Thanks @feross!
@Flet if you are able to release a new https://github.com/Flet/semistandard we'd be grateful. We could then get all devDeps in https://github.com/indutny/bn.js/pull/220 in one clean and tidy PR 😜

@Flet Lmk if you want me to publish the new semistandard. I don't think I have publish permission on the various packages, e.g. eslint-config-semistandard, so I can't do it.
Related, I think we should make an org so it is easier to manage npm permissions: https://github.com/standard/standard/issues/1324

Yeah @feross, time to move it to the standard org I think :)

@Flet Sure, if you want to transfer the semistandard repo here, it might be easier to keep an eye on it. Up to you :)
I do think that an npm org would make it easier to manage npm permissions at least.

@feross can you show how I can measure ecosystem impact for new rules? (like you done for new rules here)
Would like to check arrow-parens for always.

can you show how I can measure ecosystem impact for new rules?

You run the test suite and then take the number of failing tests divided by the total number of tests.


Issue With Playing?

I am having an issue with playing Multi Ogar on Agar.io Client when i hit play this screen will appear idk how to fix this can someone help?

Make sure you are signed out of facebook / google.
That's it.

@Gigabyte918 port is 28 lol

Yes i set the prot to 28


chore: Add codebuild badge

:tada: This PR is included in version 1.0.7 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fix for already connected error in ClientRound

Android doesn't like that we are trying to connect to already connected peer from previous test round.

https://gist.githubusercontent.com/vasilevskayaem/1b8cc8783be73082724a9f7f348e895a/raw/cf0187ae3e615c0a6900ad29731830c4eed088a8/gistfile1.txt

fixed

@vasilevskayaem hasn't had a chance to check this yet.

It looks like this is lines 215-218 of testThaliMobileNative in master, please investigate.

So my concern about failing on 'already connected' was bogus. The reason is that if we get an 'already connected' error in node this will cause connectToPeerPromise to fail but err.fatal in clientRound will e set to false in the catch and we will then reject again causing us to just delete the peerIdentifier from peersWeAreOrHaveResolved and thus allowing us to try again. This will cause us to go into a retry loop (exactly like we saw with Stanton) but that in and of itself shouldn't be harmful. We are just wasting cycles sending connect requests to Android that it will reject without ever bothering to even touch the Bluetooth stack since it will see that we are already connected to the peerID.
In other words 'already connected' is NOT a bug. It's a (cough) feature.
I also looked at the log btw and it doesn't actually show the test failing. All I can find in that log are 'ok'. Can you please show me a log where this is a problem and has a 'not ok'? Even if it's just a time out? Also please send me the coordinate logs and the logs for all 3 devices involved. I can't diagnose this without data!

We'll bring this back as part of the new round of testing that @evabishchevich is doing.


FlowChecker is unexpectedly large, approximate 79KiB

Question
I did a simple measurement[1], result shows FlowChecker takes about 79KiB memory,
It might consume lots of memory when there are many peers, because flow controller
creates a FlowChecker for each peer. E.g., 18k peers take about 1.3G memory.
[1]: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=e66c792248b860f19104d0cfcdf537bc

Resolved by #15272


Codeunit 313 Sales-Printed SuppressCommit

Hello,
for external use we need an enhancement of Codeunit 313 to avoid COMMIT.
We Need a global variable, which can be set via Event.

New global variable SuppressCommit (Boolean)
New Event OnAfterModify(VAR SuppressCommit)
Perform commit depending on new variable SuppressCommit)

The same functionality is needed in the following Codeunits:

314 Sales Shpt.-Printed
315 Sales Inv.-Printed
316 Sales Cr. Memo-Printed
317 Purch.Header-Printed
318 Purch.Rcpt.-Printed
319 Purch. Inv.-Printed
320 PurchCrMemo-Printed
321 Purch.HeaderArch-Printed
322 SalesCount-PrintedArch

Thank you in advance,
best regards,
K.
Thank you,
Best regards
K.

Hi,
Are there new insights here?
Thanks in advance,
best regards,
Kathrin

@JesperSchulz

Another one of your issues which fell of the radar! That's is odd! Anyway, again it would appear that your issue has been resolved after all. This time a work item was created and I can see that it was resolved the 14th of May - meaning it should have shipped with the fall release in October!
Could you reply back if everything is as you hoped it would be now?

@JesperSchulz
Hi Jesper, my collegue K. Reinmann started this request. Unfortunatley the provided function to supress the commit is useless right now. The calls in standard source code look always like this.
"CODEUNIT.Run(CODEUNIT::"Sales-Printed", "Sales Header");"
So there is no chance to call a "SuppressCommit" function.
Could you please check it and provide a feedback / solution?
Many thanks.

This would be possible if the IsReportInPreviewMode functions in Reports were designed so that they are extendable so that we can alter the output result of those functions.

I have opened a follow up bug for your issue for the team, which made the initial implementation. They should return to this thread with a solution :-) If not, please create a new issue, as we're not very often revisiting "old" tickets.

I was informed that the following function has been added to all sales codeunits:
[External]
PROCEDURE SetSuppressCommit@1000(NewSuppressCommit@1000 : Boolean);
BEGIN
  SuppressCommit := NewSuppressCommit;
END;

By setting suppress commit, the commits can get suppressed (surprise ;-)). Again, if that doesn't suffice, please create a new issue.

The follow up bug was not accepted, as the initial issue has been addressed. I would suggest to create a new issue with the same content, if you cannot make the solution work for you. Could you not just refactor your code to create a variable, instead of using CODEUNIT.RUN? Of course, I don't at all know what your code looks like, and I hence cannot consult.


Refactoring

added SOLD button that changes item status to sold when clicked
refactored
set reducer for items list to load new items first

 Sold button


RUSTFLAGS='-C target-cpu=native' causes jvm crash when compile and runtime environments differ

Describe the bug
The CI machine used for compiling Blaze and the machines in the cluster used for running Blaze are different, resulting in a JVM crash when running.
2024-09-23 11:57:33.692 [Stage 0:(0 + 8) / 8][Stage 1:(0 + 0) / 1][Stage 2:(0 + 0) / 4]
------ initializing blaze native environment ------
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGILL (0x4) at pc=0x00007f2bbad0d7ec, pid=380, tid=0x00007f2bbf533700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_121-b13) (build 1.8.0_121-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.121-b13 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libblaze-3882176084054705220.tmp+0x3307ec]  _$LT$blaze..logging..SimpleLogger$u20$as$u20$log..Log$GT$::log::hd1b9037843c55282+0x5c
#
# Core dump written. Default location:

To Reproduce
Steps to reproduce the behavior:

compile and run blaze on different cpu

Expected behavior
do not crash when running
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

i suggest we use target-cpu=native as a default configuration since it can bring extra performance profits with cpu that supports newer simd instructions (like avx512).
however we can add some configurations to allow users to compile with a specified cpu feature.

i suggest we use target-cpu=native as a default configuration since it can bring extra performance profits with cpu that supports newer simd instructions (like avx512). however we can add some configurations to allow users to compile with a specified cpu feature.

I have modified the pull request to make RUSTFLAGS configurable. If the user does not set the RUSTFLAGS variable, its default value will be -C target-cpu=native; if the user sets the RUSTFLAGS variable, the user's value will be used.


duplicate RGs are being created when executed in a BOM

it's either parallel exeuction (sync), or the check to see if an exiting RG with the same name that is failing

This turned out to be a sync issue in the BOM, which i am fixing separately.  While debugging, I also found a bad case in the test script that somehow slipped through last time this ran.  I have removed the check.
Fixed by: https://github.com/cloud-native-toolkit/terraform-ibm-resource-group/pull/49


[BUG][Blob] Smart peer selection and retry mechanism for blob ingestion

Willingness to contribute
Yes. I can contribute a fix for this bug independently.
Venice version
All
System information

OS Platform and Distribution (e.g., Linux Ubuntu 20.0): All
JDK version: JDK 17

Describe the problem
Current blob peer discovery will always return the same list of COMPLETED hosts and will pick the first available one. If the host has some issue - like it was previously ingested but now it is file not found or other issue, then it will fail to ingest without retry.
We will need to implement the retry mechanism outside of the peer discovery and implement certain strategy to select node so traffic can be evenly distributed. I think a RANDOM strategy can be a good one to get started, and we can evolve on top of that.
Tracking information
No response
Code to reproduce bug
No response
What component(s) does this bug affect?

[ ] Controller: This is the control-plane for Venice. Used to create/update/query stores and their metadata.
[ ] Router: This is the stateless query-routing layer for serving read requests.
[X] Server: This is the component that persists all the store data.
[ ] VenicePushJob: This is the component that pushes derived data from Hadoop to Venice backend.
[ ] VenicePulsarSink: This is a Sink connector for Apache Pulsar that pushes data from Pulsar into Venice.
[ ] Thin Client: This is a stateless client users use to query Venice Router for reading store data.
[ ] Fast Client: This is a stateful client users use to query Venice Server for reading store data.
[X] Da Vinci Client: This is an embedded, stateful client that materializes store data locally.
[ ] Alpini: This is the framework that fast-client and routers use to route requests to the storage nodes that have the data.
[ ] Samza: This is the library users use to make nearline updates to store data.
[ ] Admin Tool: This is the stand-alone client used for ad-hoc operations on Venice.
[ ] Scripts: These are the various ops scripts in the repo.

Close the issue as it is funded internally


Do Youtube video views count when embedded through Plyr?

Loved Plyr a lot, but I wonder if Youtube views are accumulated through Plyr embed?
I read even Youtube embed player declines views when autoplay is on. What's the situation with Plyr? Can anyone confirm that views (normal or autoplayed) count as legit?
I think views might not count simply because of this unresolved issue I couldn't find workaround for.

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://www.youtube.com') does not match the recipient window's origin ('http://<IP_ADDRESS>').

Yep, they count. It's been raised before. All Plyr does is provide a custom UI for their embeds so while their embeds count plays for all types (they do) then you're all good.
Autoplay won't work on iOS due to a restriction in Mobile Safari.
That error is unrelated and is an error their side. Feel free to raise a bug over at YouTube although I've raised a few and got no where. They're fairly useless.

Thanks for clearing that up so promptly!


npm install failed

I have clone the master code and install npm,hexo-cli ,but occurs failed when npm intall ,as follows:
npm WARN deprecated<EMAIL_ADDRESS>Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
npm WARN deprecated<EMAIL_ADDRESS>See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated<EMAIL_ADDRESS>Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead.
npm WARN deprecated<EMAIL_ADDRESS>Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.

These are just some warnings, you can run the following command to see if the deps are installed:
npx hexo s

These are just some warnings, you can run the following command to see if the deps are installed:
npx hexo s

npm ERR! could not determine executable to run
what's the node version? my node version 18.15

I assume, this issue is not related this repos.
Please submit a question to discuttion if you have still facing the problem.


Fixing typo causing implicit global

It looks like a "for" loop snuck that is missing the "var" before it's counter variable declaration.

Ah great catch, thanks! Will get this merged in later.

This is now merged and released in v2.1.9
Thanks!


Add system interface

Problem
Currently, the System program instructions and constructors are bundled together with solana-program.
Solution
This PR brings the System instruction related code from solana-program as a new interface crate solana-system-interface.

Great comments!

Do we need the instruction constructors in this library? Each of the clients is going to generate its own, and the program shouldn't need them (except maybe for tests, which we can just reimplement or use the enum directly). The instruction module would literally just be the enum itself and the bare minimum trait implementations.

I don't think we will need instruction constructors here. @lorisleiva and I discussed an idea of having a macro (behind a feature flag) that would make constructors available – similar to what Shank has. At the moment they are here as a transition step, perhaps we should mark them depecrated.

Is the idea to generate the clients from the interface, rather than the program? Seems like yes, but wanted to clarify. If so, I think that's slick, but the IDL does have a few program-implementation-specific items (like program ID) we'd have to consider.

Yes, exactly. The annotation is added to the interface. Would you not consider the program ID as part of the interface?

We can also include nonce state in here as well, since imo each program interface should follow what we did with SPL Token Metadata or SPL Token Group and have instruction, error and state. Possibly other items like extra account metas where applicable maybe?

I think there is a separate crate for the nonce state – @joncinque should we include it here? Not sure if there is an use-case where you will interact with nonce but not the system program.

I guess we should maybe orient the versioning scheme for the program and clients around the interface, right? The clients or programs could have patch updates, but maybe we only do major releases when the interface changes? I don't think there would be any breaking program processor changes that would not have a corresponding interface change (required keys, roles, etc.).

Hmmm, maybe they can be decoupled. You might want to do a major release for the client if you change it significantly, which does not necessarily means that the interface has changed. For example, say you defined a brand new way to do instruction constructors, you will probably want to do a major release for that.

I don't think we will need instruction constructors here. @lorisleiva and I discussed an idea of having a macro (behind a feature flag) that would make constructors available – similar to what Shank has. At the moment they are here as a transition step, perhaps we should mark them depecrated.

Okay, if that's what you guys want to do! I think the helpers in the client libs are probably enough, though.

Yes, exactly. The annotation is added to the interface. Would you not consider the program ID as part of the interface?

No, I wouldn't consider any program ID as part of an interface. Generally speaking, I think programs should be able to implement one or more interfaces, as well as define their own custom APIs. I'm not sure what it would look like from an IDL perspective, but I think the IDL for a given program should be able to represent the program's ID and version, the interfaces it implements, and the additional API for the program specifically.

I think there is a separate crate for the nonce state – @joncinque should we include it here? Not sure if there is an use-case where you will interact with nonce but not the system program.

There are a few use cases. On the client side, you might query nonce accounts, but I view that similar to querying stake accounts, so IMO it makes sense to live within the client of the program the nonce accounts are owned by. However, the other use cases are at the runtime-level, where transaction processing needs to load and read nonce accounts. I wonder what the best direction is here: do we define nonce account state in the runtime and import that library here, vice versa, or just double-define?

Hmmm, maybe they can be decoupled. You might want to do a major release for the client if you change it significantly, which does not necessarily means that the interface has changed. For example, say you defined a brand new way to do instruction constructors, you will probably want to do a major release for that.

Yeah, good point. A major release may also reflect integrated changes to Codama. I think people are free to version their libraries and programs however they like, but we should try to iron out a standard for Anza's.

No, I wouldn't consider any program ID as part of an interface. Generally speaking, I think programs should be able to implement one or more interfaces, as well as define their own custom APIs. I'm not sure what it would look like from an IDL perspective, but I think the IDL for a given program should be able to represent the program's ID and version, the interfaces it implements, and the additional API for the program specifically.

This is interesting and makes sense to me. It would require changing how the IDL present the information but if "interface" become a thing, might actually be necessary to change it.

There are a few use cases. On the client side, you might query nonce accounts, but I view that similar to querying stake accounts, so IMO it makes sense to live within the client of the program the nonce accounts are owned by. However, the other use cases are at the runtime-level, where transaction processing needs to load and read nonce accounts. I wonder what the best direction is here: do we define nonce account state in the runtime and import that library here, vice versa, or just double-define?

Most likely we will keep it as a separate crate, or at least for now. So the interface will depend on the "stand-alone" nonce crate.

The idea is to publish this crate and re-export its contents in solana_program (maybe with a deprecation notice) as a replacement for system_instruction.rs, right?

re versioning, I think this crate should just follow semver

Can we try and preserve the git history when copying the file over? I have not tried this before but something like this perhaps? https://gist.github.com/wevtimoteo/a6f4b0837cdc3749dd6b

The idea is to publish this crate and re-export its contents in solana_program (maybe with a deprecation notice) as a replacement for system_instruction.rs, right?

That's exactly it

wrt versioning, I think this crate should just follow semver

Heck yes, that's a big reason for using new repos

Can we try and preserve the git history when copying the file over? I have not tried this before but something like this perhaps? https://gist.github.com/wevtimoteo/a6f4b0837cdc3749dd6b

Right, this is an excellent point that I had forgotten about. I tested this out, and we can use git filter-repo as outlined at https://docs.github.com/en/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository, which is the recommended approach by the git project over git filter-branch. I can do that as an initial PR, and then this PR can make the additional changes. What do you think @febo ?

The idea is to publish this crate and re-export its contents in solana_program (maybe with a deprecation notice) as a replacement for system_instruction.rs, right?

That's exactly it

wrt versioning, I think this crate should just follow semver

Heck yes, that's a big reason for using new repos

Can we try and preserve the git history when copying the file over? I have not tried this before but something like this perhaps? https://gist.github.com/wevtimoteo/a6f4b0837cdc3749dd6b

Right, this is an excellent point that I had forgotten about. I tested this out, and we can use git filter-repo as outlined at https://docs.github.com/en/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository, which is the recommended approach by the git project over git filter-branch. I can do that as an initial PR, and then this PR can make the additional changes. What do you think @febo ?

Sounds perfect, thanks!

Let's add cargo hack check --feature-powerset to CI as well. It found an error for me already.
cargo hack check --feature-powerset --exclude-features frozen-abi

I am excluding the frozen-abi feature because that requires nightly. We can run CI in nightly CI too but it's good to run it on stable to prevent any nightly-only code from being introduced

Let's add cargo hack check --feature-powerset to CI as well. It found an error for me already.
cargo hack check --feature-powerset --exclude-features frozen-abi

I am excluding the frozen-abi feature because that requires nightly. We can run CI on nightly too but it's good to run it on stable to prevent any nightly-only code from being introduced

Cool, I will add on the next PR (#17) which is where the scripts/CI are fixed for the interface.

Cool, I will add on the next PR (#17) which is where the scripts/CI are fixed for the interface.

Probably better to fix the errors in this PR though(?)

Cool, I will add on the next PR (#17) which is where the scripts/CI are fixed for the interface.

Probably better to fix the errors in this PR though(?)

Yeah, I will get the errors fixed in this PR but change the CI on the other one, since there are other bits already there.


Add instructions for npm publication to tag commit

Description
Updating npm readme with instructions to tag packages with last commit

Partially addresses https://github.com/celo-org/celo-monorepo/issues/514


expose BasicKeyStore for using without env vars

@jkutner let me know your thoughts plz

@mping look great. thank you!

This will be available in 1.1.0 on Maven central in the next few hours.

@jkutner thank you!