Llama 3

Do you have any plans for adding for supporting Llama-3? Any idea how complex this would be, apart from new configs?

@Helw150 said it worked out of the box. Just configs I think

Thats fantastic, @dlwh! Great if you could share your configs @Helw150.
I must admit I have not dug into the details here yet, but I understood the biggest architectural changes were using a larger tokenizer, and adding GQA to the smaller models. I havent seen GQA used in any of the Levanter models, but found a post saying it was supported. Can this also just be enabled through the configs?
I also read a post about them doing some masking on longer sequences so that the attention did not "spill over" to new documents.

The model seems to start training with:
data:
  tokenizer: "meta-llama/Meta-Llama-3-8B"
model:
  type: llama
initialize_from_hf: "meta-llama/Meta-Llama-3-8B"
use_hf_model_config: true

However, I keep getting the message: "The tokenizers appear to be different. You may want to check this.".
Not really sure what is causing this.

@dlwh. Unfortuantely, I can not seem to get it to work right out of the box. The model is training, but when trying to train on a domain specific corpus, the loss is starting way too high, and never fully recovers.
I am pretty sure the issue is the vocab size here. I can not seem to override the vocab size in the model config.
This line seem to return the default Llama tokenizer:
https://github.com/stanford-crfm/levanter/blob/bd2aad66a2c301a52b52a65b455617aa2e452ba6/src/levanter/main/train_lm.py#L62
While it is overwritten later, I think this is the main issue.
I have tried both reading the configs from HF, and creating them from scratch.
Please advice.

ok i'll try to take a look this weekend. Do you have a full config you can use a reproducer by any chance?

Awesome. Here are the two config I have been using. Just removing the bucket urls.
data:
  train_urls:
    - "gs://mydatabucket/train-shard-{0001..0147}-of-0147.json.gz"
  validation_urls:
    - "gs://mydatabucket/NCC_plus_scandi/validation-shard-0001-of-0001.json.gz"
  cache_dir: "gs://mycachebucket/NCC_plus_scandi/tokenized/llama3hfconfigfalse/"
  tokenizer: "meta-llama/Meta-Llama-3-8B"
model:
  type: llama
  seq_len: 2048
  hidden_dim: 4096
  intermediate_dim: 14336
  num_layers: 32
  num_heads: 32
  num_kv_heads: 8
  initializer_range: 0.02
  use_flash_attention: true
initialize_from_hf: "meta-llama/Meta-Llama-3-8B"
use_hf_model_config: false
trainer:
  wandb:
    entity: "myentity"
    project: "myproject"
    tags: ["llama3"]
    name: north-llamatre-hfconfigfalse
  mp: p=f32,c=bfloat16
  train_batch_size: 256
  num_train_steps: 10000
  steps_per_eval: 250
  tensor_parallel_axes: ["mlp", "heads"]
  fsdp_axis: "embed"
  batch_axis: "batch"
  checkpointer:
    base_path: "gs://mycheckpointbucket/north-llama3-hfconfigfalse/checkpoints"
    keep:
      - every: 1000
optimizer:
  learning_rate: 1.2e-5
  weight_decay: 0.1
  min_lr_ratio: 0.1
  warmup: 1000
hf_save_steps: 5000
hf_save_path: "gs://myhfbucket/north-llama3-hfconfigfalse/hf"

I have also tried setting
use_hf_model_config: true
This gave the same result.
What I am seeing can be illustrated here:

The red line is the loss of a Mistral model. The grey line is from Llama3. Apart from that, the settings are identical, and they are both trying to use the HF tokenizer. The pattern is very similar to what we are seeing with just hot-swappng to a new tokenizer.

Do you have a reproduction of a case where the Levanter implementation gives you a different prediction than the HuggingFace implementation? As an example, here's a round trip test I used to verify the Whisper implementation https://github.com/stanford-crfm/levanter/blob/407d54b63e141d6261754986453bb1ffd1c8afb7/tests/whisper_test.py#L130
The only architectural change in LLama 3 is the Grouped Query attention - which is supported here: https://github.com/stanford-crfm/levanter/blob/407d54b63e141d6261754986453bb1ffd1c8afb7/src/levanter/models/llama.py#L236
I've exported a few Llama finetunes from Levanter to HuggingFace successfully and the models seem to work fine, so it's unclear to me whether the above case suggests a bug or is a function of the much larger vocab size of LLama 3 v.s. Mistral, especially since I'm not sure what the data mix is above.
If you send over a case where HuggingFace and Levanter output different logits for the Llama 3 weights, I'd be happy to take on the debugging from there!

I am trying to debug this and test on downstream tasks by exporting to HF. However, I noticed that for llama3, no tokenizer.model file is created when saving to HF. Have you experienced this @Helw150?

Updating my issue here. I think you are right, @Helw150. The reason I am getting this weird loss in the beginning is probably related to something else. I have now trained a model for 5k steps and automatically pushed to HF. When loading the model it seem to work perfectly, and seems to have improved on in-domain texts. Thanks! Closing this.

Reopening this. I have trained a bit more, and I am really not satisfied with the result, even if the train/eval loss looks fine.
Do you have a working llama3 config-file @Helw150. I want to double check if I have made any mistakes here.

Hi!
My use case is a bit non-standard (training multi-modal encoders) so I'm not sure my configs will help so much. If you want to check them anyways, you can find them on the will/distill branch tagged with via_*! In these cases, I'm leaving Llama  frozen but still need to get gradients from it. I've done runs with both Llama 2 and Llama 3 and haven't seen any surprising looking issues when switching to Llama 3!
Could you give a bit more details about the issue you are facing? Does it seem like the model isn't training properly? Or is it that the results aren't satisfactory?
If it's the latter, additional context (e.g. specific symptoms, expected behavior) would help for me to understand whether there's an underlying bug that could cause this or if it's a matter of hyperparameters/underlying capabilities!

What revision/commit were you using to train? My usage of the TPU splash attention had/has a bug that messed everything up. I'm like 60% sure I know how to fix (and you can probably fix your checkpoints post-hoc) but I need another day or so. If you want to try something, can you pre-multiply all of the q_proj by sqrt(headdim). I haven't verified that yet but I strongly suspect

Ah yes, worth noting that I haven't pulled in the Splash Attention changes yet

splash attention is currently disabled so main is fine 🤞 right now

I was using splash attention, so that might have caused the error.
However, I was suspecting this to be a tokenizer-size issue. I remember also getting some warning about non-matching tokenizers here.
But I can retry this without splash, and see if that is related.

I believe splash is now fixed in latest main, but it's now off by default.
Can you try
--model.attn_backend splash
and
--model.attn_backend jax_flash
and let me know if things seem ok?

Awesome! I have not been training for long, but in general my good runs have been starting with an eval-loss of around 2.5, while the broken runs have started on 6. In the latest main, this seems to start with a 2.5 loss both with and without flash attention. Looks very good.
For reference (in case other are having the same issue), the correct commands are uppercase:
--model.attn_backend SPLASH
--model.attn_backend JAX_FLASH
Splash automatically upscales to 32, since 16 is not working. I understand this is expected.

Awesome thanks for your patience.
Yeah, for whatever reason they don't support bf16 for attention with that kernel yet
the uppercase thing can be fixed by upgrading draccus to >=0.8.0

@peregilk Llama3 shouldn't work out of the box nicely, as it uses a different theta for the RoPE scaling and configuring that isn't yet supported in levanter. This issue should probably be re-opened. Even when I use the correct rope theta I don't get reasonable results in levanter (i.e. eval_lm gives me a loss of ~7 on neutral pretraining datasets like SlimPajama). @dlwh any ideas?

that's not great. Probably need to spend some time in a debugger.

i probably won't get to this for at least a few days myself, but happy to provide some support

any progress on this one? I was thinking of switching to levanter from composer.

i don't really understand the issue. we have a unit test (which I recognize is not necessarily proof it's correct) and support rope scaling now. Does someone have a code that fails

ok i see. this is becoming a priority for me so i will try to tackle it by wednesday

I haven't fully tested it but can you try main. I added the new llama 3 rope stuff

@mayankjobanputra did you have a chance to try it?

@dlwh I haven't tried it yet. Still preprocessing the data and meanwhile writing some infra code around the framework. If everything goes smoothly I should be able to answer your question in 15ish days.

i'm confident this works.


Multiple input files

Hello @lukasf
I've been playing around with a new feature:  add multiple input files to the FFmpegMediaSource. This PR showcases a working prototype.
Some notes and open questions:

It is not possible to add the extra streams during playback (unfortunately). I realize that it should be impossible to add external subs this way, if we are to ever implement subs through winRT APIs we need to keep this in mind.
How do we handle files that have different media durations? at this point I do not update the overall length of the MediaStreamSource when a longer file is added, so the automatic increment kicks in.
It appears that syncing the multiple ffmpegreaders in the onStarting event is enough to keep them in sync (the event happens when stream switching and when playback starts / resumes)
Metadata tags will have to be merged / handled somehow
We need an additional property in StreamInfos so that consumers know which IO context they belong to (I am thinking some sort of user provided key and we can also group metadata by that key)
Fast seeking will not work on ffmpeg readers that do not have an active video stream. This will eventually be fixed, not a big deal atm.
Probably weird bugs hidden in the bushes.
This PR is based on the ffmpeg 6 / 7 branch
Feedback is welcome :)

Interesting solution. I had a prototype implementation of this years back. I used a different approach: I just created additional "child" instances of the FFmpegMediaSource. In the main instance's OnSampleRequested, if the requested stream was not found in the current source, I'd search any child sources for the stream and call their SampleRequested method. The upside was that the required amount of changes was pretty small (ofc, that does not neccessarily mean that it is the better approach).

Hmm interesting, I haven't thought of that, but it makes sense. Yes it should be a smaller changeset, and that should also make it easier to handle.


Dockerfile angular scully

Hi,
Im trying to make a Dockerfile with angular scully and nginx.
There is a way to do this?

@skorpmeister Yes, this is totally possible. IIRC there is a hint on how to docker in our FAQ page,
Also, there are some issues discussing this issue in a bit more depth.
When you are done with this, I would love a blog, or some documentation/sample around it, as I think it may benefit other users.


Allow for union inputs, as opposed to joining them

Right now, when a pipeline has multiple inputs, it processes the cross product of the inputs, essentially performing a join.  For instance, if one input has datums {A, B} and the other has datums {C, D}, then the pipeline will process 4 tuples: [(A, C), (A, D), (B, C), (B, D)].
However, sometimes you might want to process the "sum" of the input repos as opposed to the product of them.  For instance, if I have a word-count pipeline and I want to perform a word count over two different repos, it'd be nice if I could have my pipeline treat those two repos as one giant repo that contains data from both repos.  That is, if the repos have datums {A, B} and {C, D}, the pipeline should process 4 datums {A, B, C, D}.

I'd like to add some details on our use case.
Imagine that we have four multi-stage pipelines, each of which does some fairly complex processing.

source_a → ... processed_a
source_b → ... processed_b
source_c → ... processed_c
source_d → ... processed_d

In each of the 4 processed_* top-level repos (not directories in a mega-repo), the data layout looks like:
processed_a/
  000/
    5ff9e947-2065-4821-b1a7-5ef635545aa5.csv.gz
    f1e3ca2b-7267-4e42-95a1-9b7d62fc40e8.csv.gz
    7ea94526-aee2-44c4-82f6-524d45af5a15.csv.gz
    ...
  001/
  002/
  ...
  999/
processed_b/
  000/
    11f7e13e-5dc4-4671-9c57-9608527079dc.csv.gz
    ...
  001/
  002/
  ...
  999/
processed_c/
  000/
    2c554605-b564-4b37-a56e-301c35b0ff6e.csv.gz
    ...
  001/
  002/
  ...
  999/
processed_d/
  000/
    c7b85b69-e107-44f2-9522-9a372176eb8d.csv.gz
    ...
  001/
  002/
  ...
  999/

Our desired output looks like:
out/
  001.gz
  002.gz
  003.gz
  ...
  999.gz

To compute 001.gz, we need to combine all of:
    5ff9e947-2065-4821-b1a7-5ef635545aa5.csv.gz
    f1e3ca2b-7267-4e42-95a1-9b7d62fc40e8.csv.gz
    7ea94526-aee2-44c4-82f6-524d45af5a15.csv.gz
    11f7e13e-5dc4-4671-9c57-9608527079dc.csv.gz
    2c554605-b564-4b37-a56e-301c35b0ff6e.csv.gz
    c7b85b69-e107-44f2-9522-9a372176eb8d.csv.gz

...onto a single worker. Then the worker will do a very complex calculation to reconcile all those inputs into a single output file.
So essentially 000, 001, etc., are "cross-repo join keys" operating at the file level. This could be implemented in two steps:

"Smoosh" processed_a, processed_b, processed_c, processed_d into a single unified namespace.
Apply the match glob /* to the unified namespace, so that all the 000/* files from each input repo wind up assigned to a single node.

It would be OK if this were somehow a two step process.
@jdoliner Does this help explain our use case?

Thank you for looking into this feature!
I've writen up a test case for union/"smoosh" joins, with sample input and output repositories, and a Python Pandas script that does a simulated join:
https://github.com/faradayio/pachyderm_union_join_test
Obviously, my heart isn't set on exact syntax in the *.json file, or how the two inputs get combined for /pfs. But ideally, it should be possible to produce that exact output data using the supplied Python script and the two input repositories. (No duplicate CSV headers in the middle of files allowed! 🙂 )
As mentioned in the README, the real join will involve far more records and more than 2 input repositories. But this should give you a more concrete idea about what we're trying to do.
Once again, thank you for looking into this, and please don't hesitate to ask questions!

@derekchiang @jdoliner is this addressed by the Union inputs PR? https://github.com/pachyderm/pachyderm/issues/1491

Yes, this has been merged.


A java code to find sum of left leaves of a binary tree.

PR Checklist:

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is on refer on the language README.md file
[x] My addition does not have a spelling problem
[x] My submission has a proper and user-friendly description of the algorithm
[x] My submission has the time complexity of the algorithm
[x] My submission has sample input-output of the program (NOT FOR PYTHON)

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[x] New algorithm
[ ] Optimization in previous algorithms
[ ] Code style update
[ ] Refactor
[ ] Documentation
[ ] Other, please describe:

Briefly describe the changes in this PR

Other information:

Added all the necessary description, time complexity,etc.


Calling css mage for landing

I guess we need to preserve some mobile experience and avoid scrolling to horizontal whole page 🥶😶🌫🫠🫥🤐🫣🥹😬
https://user-images.githubusercontent.com/5887929/152697326-97bd1e65-2007-4eeb-ae3f-0640b8b498a1.mp4
Plis firefox focus doesn't show it all 😬

Css council wouldn't like this much

I guess we need to preserve some mobile experience and avoid scrolling to horizontal whole page 🥶😶🌫🫠🫥🤐🫣🥹😬
Record_2022-02-06-20-08-19.mp4

Video not loading ☹

Plis firefox focus doesn't show it all 😬

on firefox focus it doesn't even show /gallery nfts, could be related with some css property not applied on firefox?

Css council wouldn't like this much

Can't reproduce, what was the navigator?

I guess we need to preserve some mobile experience and avoid scrolling to horizontal whole page 🥶😶🌫🫠🫥🤐🫣🥹😬
Record_2022-02-06-20-08-19.mp4

Video not loading ☹

yeah noticed few videos uploaded through gh mobile app is gone forever :|

Can't reproduce, what was the navigator?

It's android chrome but it does only sometimes, so some class is overlapping? Will keep watching on this one.

@roiLeo pretty please, can you spell CSS for us 🥺

@roiLeo pretty please, can you spell CSS for us 🥺

Where should I cast my spell?
I need more infos to replicate the bugs

lol I haven't pasted pic lmao, my clipboard is acting weird as its user.


Change all wallet addresses to names

Users do not want to see abbreviated wallet addresses ANYWHERE. Namely the profile page, individual use viz, and transaction history viz. Replace wallet addresses with mocked names of doctors, patients, or hospitals.

Change the two wallet addresses to the user profile name. Remove the unnecessary metadata fields at the bottom of the description window (e.g., DID, TRANSACTIONAL HISTORY API QUERY). Remove the extra content after metadata updated sentence.

If possible, instead of hardcoding the Owner, have it link to the user that is currently signed in.


Fixed minor mistake in README

Hi @blindmatrix
Thank you for your pull request, I have fixed that in gh-pages branch, and remove those documents from master branch.
Refer: jinzhu.github.com/gorm

j


How to return pass channel into streaming function.

In sample routeguide, list_features() function returns a stream to its client and holds sender endpoint for transmitting data.
This function creates a pair of endpoints inside:
#[tonic::async_trait]
impl RouteGuide for RouteGuideService {
    async fn list_features(
        &self,
        request: Request<Rectangle>,
    ) -> Result<Response<Self::ListFeaturesStream>, Status> {
        println!("ListFeatures = {:?}", request);

        let (tx, rx) = mpsc::channel(4);
        let features = self.features.clone();

        tokio::spawn(async move {
            for feature in &features[..] {
                if in_range(feature.location.as_ref().unwrap(), request.get_ref()) {
                    println!("  => send {:?}", feature);
                    tx.send(Ok(feature.clone())).await.unwrap();
                }
            }
        });

        Ok(Response::new(ReceiverStream::new(rx)))
    }
}

It is fine for "simple" applications that data generation logical is fairly trivial. For my situation, the data is produced somewhere in another module, and then be sent directly via the rx endpoint or pass in via some methods. However, it seems there is no way to return rx from this async call or pass in a pair of channel endpoints.
I have tried:

create channel endpoints when RouteGuideService is creating:

struct RouteGuideService {
    tx: mpsc:Sender<T>,
    rx: mpsc::Receiver<T>,
}

impl RouteGuideService {
    pub fn new() -> Self {
        let (tx, rx) = mpsc::channel(3);
        RouteGuideService {
            tx: tx,
            rx: rx,
        }
    }
}

Then, use this endpoints in stream. It is obviously not working due to Rust's borrow checker.

Assign rx to RouteGuideService's member variable.

This is failed again that &self is not mutable.
So, is there any way to solve this puzzle?

I would probably use a broadcast channel. broadcast::Sender<T> is clone which allows you to create one clone for your gRPC service to create new receivers and another clone which the producer system can use to send messages to all the receivers.
Creating a new receiver can be done with Sender::subscribe which returns a new Receiver that can be converted into a stream with tokio_stream::wrappers::BroadcastStream.
Does that answer your question?

broadcast::Sender<T> is ok but not good enough. From semantic perspective, I need a single-in single-out channel other than a "broadcast" channel.

I have another module which waits for some specific "events". When a new event is received, this modules parses this event and generate a message which is sent over GPRC to clients.
I hope the event processing module can hold the channel's transmission endpoint, and once the message is ready, it can be sent over this endpoint.
This processing module and grpc server run in two tikio tasks, and communicates with each other with this channel.

pub mod hello_world {
    tonic::include_proto!("hello");
}

// This is my server's implementation.
pub struct MyGreeter {
    // The new data is sent over to gRPC server via this mpsc::Receiver channel.
    notifer: mpsc::Receiver<i32>,
}

#[tonic::async_trait]
impl Greeter for MyGreeter {

    type SayHelloStream = ReceiverStream<Result<HelloReply, Status>>;

    async fn say_hello(
        &self,
        request: Request<HelloRequest>,
    ) -> Result<Response<Self::SayHelloStream>, Status> {
        println!("Got a request from {:?}", request.remote_addr());

        // compiling error here: this data with lifetime `'life0`...
        let (api_tx, api_rx) = mpsc::channel(3);

        tokio::spawn(async move {

            // compiling error here: ...and is required to live as long as `'static` here
            self.notifer.recv().await.unwrap();

            api_tx.send(Ok(HelloReply {
                message: format!("Hello {}!", request.into_inner().name),
            })).await.unwrap();
        });

        Ok(Response::new(ReceiverStream::new(api_rx)))
    }
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let addr = "[::1]:50051".parse().unwrap();

    // Create a pair of channel endpoint
    // tx is used somewhere for sending new data.
    let (tx, rx) = mpsc::channel(3);

    let greeter = MyGreeter {
        // the receiver endpoint
        notifer: rx,
    };

    println!("GreeterServer listening on {}", addr);

    Server::builder()
        .add_service(GreeterServer::new(greeter))
        .serve(addr)
        .await?;

    Ok(())
}

Something like this.

I hope the event processing module can hold the channel's transmission endpoint, and once the message is ready, it can be sent over this endpoint.

If there can be multiple consumers of the gRPC stream then I think broadcast channels are the way to go.
If there can only ever be one consumer then you could share an Arc<Mutex<Option<Sender<T>>>> between the service and the producer system. Once someone calls say_hello you create the sender stick it into the shared sender and once the producer wants to send a message you check if there is a Sender in the Option and if so send to it. Then you wouldn't need a background task forwarding between two pairs of channels.


Left parenthesis incorrectly highlighted if followed by *

The left parenthesis ( is highlighted as a verb if it is immediately followed by the * character.
No other following characters appear to have the same effect.
The following are examples that are incorrectly highlighted:
<EMAIL_ADDRESS>p..)
(* , +)

If I turn off font ligatures  ("editor.fontLigatures": false,), then the above examples are correctly highlighted suggesting this behavour is actually due to Font ligatures not incorrect syntax highlighting.


Support data bool exportCSV()

Support data bool exportCSV()

Are booleans not handled properly?

No, export CSV dato bool
string1,string2,bool, bool, string3
"blaa","bla", , ,"blaa"
post change in code
string1,string2,bool, bool, string3
"blaa","bla", "0", "1", "blaa"

Okay, and when you import it what do you get? Because "0" is considered a true to me (it's a string with content).


Python 3 migration.

Nicey-nicey-nice!  Time for a little of the old, ultra violence.


Naming issues, restoring old names

I think we should be careful not to break other libraries, and not rename things.
e.g. computeAndSetDomain was originally compute_and_set_domain which now means that bqplot-image-gl will not work with bqscales. Even though I can use the new name, that means the newer versions of bqplot-image-gl will not work with old versions of bqplot and vice versa.
If we really want to have new names, we should have an alias, but even then, if a new library uses that new name, it will never work with older versions.
What do you think, should we simply restore the old names?

I think it's a good opportunity for renaming while we are making a backward incompatible release.
Though we should probably make a deprecation warning pass indeed, and actually rename those APIs in the next backward incompatible release.

I think we should avoid any backward-incompatible change. We can of course change the semver version number, and say it has changed in an incompatible way, but the pain and suffering from having to pin versions and not being able to create environments with a mix of a few libraries do do pinning (especially max versions numbers) are large.
If we keep the old names forever, we do no harm, and all our users will be happy. We just have to accept (as developers) that we have to stare at those ugly naming conventions for years to come:)

I don't think we should be afraid of making backward incompatible changes, that's why major versions are there. We sometimes need to move on from old decisions.
There is a sane middle ground to find between the "no backward incompatible change" policy and the "backward incompatible changes on minor updates because I don't like semver and I don't care" policy...

But I totally agree we could ease that by keeping the old names around for some time, adding a deprecation warning .

There are necessary breaking changes, because of wrong functionality etc, and there is unneeded breaking changes. As well as, even though there might be a breaking change release, if a library only uses a subset of the API, it might avoid breakage.
And this happens a lot in practice, most libraries are compatible with a series of major version releases, because they don't depend on the breaking parts. Same here. We could keep this part non breaking.

But I totally agree we could ease that by keeping the old names around for some time, adding a deprecation warning .

Lets see if typescript has some magic for that?

Lets see if typescript has some magic for that?

I recall seeing some things like that in JupyterLab's codebase. Adding a @deprecated in the "docstring" https://github.com/jupyterlab/jupyterlab/blob/72accc92be2a9d3f191d15f42e31a1b2eb3a260d/packages/ui-components/src/components/menu.ts#L113. Idk if that's TypeScript related though?


simple-conduit-0.5.1 doesn't compile in Nixpkgs

http://hydra.cryp.to/build/559663/nixlog/1/raw

Thanks for the heads up, I'll take a look.


Android build error after update the plugin to 7.0.0

Bug report
Current behavior:
After upgrade from v6.1.0 to v7.0.0, when I run command cordova run android it show the error

Expected behavior:
The build process should be success without issue.

Steps to reproduce:

Screenshots

Environment information

Cordova CLI version

cordova -v9.0.0

Cordova platform version

cordova platform android v8.1.0

Plugins & versions installed in project (including this plugin)

cordova plugin cordova-plugin-firebasex v7.0.0

Related code:

Other information:

Please post the contents of your AndroidManifest.xml so the problematic <meta-data> element can be identified.
Also try removing/re-adding the Android platform to see if this resolves the issue.

I had the same issue. Might have been an undefined @colors/accent variable.
I got this issue fixed by reinstalling with ANDROID_ICON_ACCENT.
cordova plugin add cordova-plugin-firebasex --variable ANDROID_ICON_ACCENT=#FF123456
  "cordova": {
    "plugins": {
   ...
      "cordova-plugin-firebasex": {
        "ANDROID_ICON_ACCENT": "#FF123456", // ADD THIS

I'm guessing this is related to commit https://github.com/dpa99c/cordova-plugin-firebasex/commit/bda54cb59293cf0ca8f72e0b3263a4890a228f55 and that it happens if you don't specify a custom accent colour during plugin installation.
This change was an attempt to fix #132 but it probably now needs a custom fallback in the hook script to read the default value from plugin.xml if there's not a custom value in config.xml or package.json.

@Starofall actually i have define the ANDROID_ICON_ACCENT in colors.xml and this is working in previous version of firebasex

This is the result after cordova platform add android

I had the same issue. Might have been an undefined @colors/accent variable.
I got this issue fixed by reinstalling with ANDROID_ICON_ACCENT.
cordova plugin add cordova-plugin-firebasex --variable ANDROID_ICON_ACCENT=#FF123456
  "cordova": {
    "plugins": {
   ...
      "cordova-plugin-firebasex": {
        "ANDROID_ICON_ACCENT": "#FF123456", // ADD THIS

@Starofall Thanks, your solution is working


Similar drink bug?

Drink I'm viewing showed up as a similar drink?

@sirtastic : Fixed. Need to run rake db:set_related on your machine to update your data. Could take ~3hrs.
commit eb4196ba239b0df2f361e7d3f5ce5ee4856f2ff7
Date:   Fri Aug 28 19:00:20 2015 -0700
Fix rake task drink:set_related so that related_drink_ids excludes the primary drink id. Fixes #80 (github)


DSE 5.0.1 & OpsCenter 6.0

Looks good.  I see a couple minor edits we'll need to add to support GCE, etc, but this seems good to go.  I'll try to resolve the conflicts and merge.


Remove Lighthouse-specific contributing docs

Remove Lighthouse-specific contributing docs
These docs are mostly one of the following:

Too basic and better left unsaid, like the git docs.
Better covered in Submariner-wide docs, like make e2e docs.
Overly detailed, like the location of components in the dir
structure.

Signed-off-by: Daniel Farrell<EMAIL_ADDRESS>

I agree at least most of this is boilerplate. Also seems inconsistent to have a specific contributing section for one project and not others. One thing though is that the LH project page points to this doc so we'll need to clean that up or perhaps link to https://submariner.io/contributing/ as the submariner project page does.

/me is also thinking about getting rid of the "Working with Shipyard" docs for similar reasons.

Agree with @tpantelis. @dfarrell07 can you raise a PR for cleaning https://github.com/submariner-io/lighthouse before we merge this one?

@nyechiel @tpantelis Cool, I proposed the LH update in https://github.com/submariner-io/lighthouse/pull/314.


rasa interactive doesnt work

Rasa version:1.4.1
Python version: 2.7.4
Operating system (windows, osx, ...): Ubuntu

Thanks for the issue, @federicotdn will get back to you about it soon!
You may find help in the docs and the forum, too 🤗
Caw! 🐧

This issue appears to stem from the requirement that the argument persist_nlu_data exists when calling the training function, but it is not being set to None when calling training via interactive mode.
https://github.com/RasaHQ/rasa/blob/33daa89648222fec73c276eda8f1d4b61e985619/rasa/cli/interactive.py#L54-L64
Can be corrected by adding args.persist_nlu_data = None to the top of the interactive method.
I would think that interactive_core would require the same amendment.

Adding to my last, making the above change does allow interactive mode to proceed but results in further errors as shown below. I can not confirm if they are related or due to a previous commit.
Bot loaded. Visualisation at http://localhost:5006/visualization.html.
Type a message and press enter (press 'Ctr-c' to exit).
Processed Story Blocks: 100%|████████████████| 18/18 [00:00<00:00, 3095.30it/s, # trackers=1]
2019-10-23 21:16:09 ERROR    rasa.core.training.interactive  - An exception occurred while recording messages.
Traceback (most recent call last):
  File "/home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/interactive.py", line 1396, in record_messages
    await _plot_trackers(sender_ids, plot_file, endpoint)
  File "/home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/interactive.py", line 1330, in _plot_trackers
    event_sequences[-1], event_sequences, output_file=None, max_history=2
  File "/home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/visualization.py", line 486, in visualize_neighborhood
    _merge_equivalent_nodes(graph, max_history)
  File "/home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/visualization.py", line 207, in _merge_equivalent_nodes
    graph, i, j, max_history
  File "/home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/visualization.py", line 147, in _nodes_are_equivalent
    return graph.node[node_a]["label"] == graph.node[node_b]["label"] and (
AttributeError: 'MultiDiGraph' object has no attribute 'node'
2019-10-23 21:16:09 ERROR    asyncio  - Task exception was never retrieved
future: <Task finished coro=<_serve_application.<locals>.run_interactive_io() done, defined at /home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/interactive.py:1449> exception=AttributeError("'MultiDiGraph' object has no attribute 'node'",)>
Traceback (most recent call last):
  File "/home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/interactive.py", line 1456, in run_interactive_io
    sender_id=uuid.uuid4().hex,
  File "/home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/interactive.py", line 1396, in record_messages
    await _plot_trackers(sender_ids, plot_file, endpoint)
  File "/home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/interactive.py", line 1330, in _plot_trackers
    event_sequences[-1], event_sequences, output_file=None, max_history=2
  File "/home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/visualization.py", line 486, in visualize_neighborhood
    _merge_equivalent_nodes(graph, max_history)
  File "/home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/visualization.py", line 207, in _merge_equivalent_nodes
    graph, i, j, max_history
  File "/home/rasa/chattabox-rasa/env/lib/python3.6/site-packages/rasa/core/training/visualization.py", line 147, in _nodes_are_equivalent
    return graph.node[node_a]["label"] == graph.node[node_b]["label"] and (
AttributeError: 'MultiDiGraph' object has no attribute 'node'

Hi @nicolasfarina, thanks for bringing this up. This issue has been fixed in https://github.com/RasaHQ/rasa/commit/525a2443ec6863081ec7774a1a707272f687c944, but the fixed hasn't been released yet. It will be included in 1.4.2. I'll leave this issue open until that's released.


$user->favorite() Bugs

$user->favorite(Post::class) always return one item array
``

Its fixed in the version 1.2.0


Test PR

Codecov Report

Merging #2 (bfe0044) into master (79d59df) will decrease coverage by 0.36%.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##           master       #2      +/-   ##
==========================================
- Coverage   49.88%   49.52%   -0.36%
==========================================
  Files          11       11
  Lines         844      842       -2
==========================================
- Hits          421      417       -4
- Misses        423      425       +2

see 2 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


No information for redirector writers

It sates "This is read only".  But if you are the redirector you have to populate this somehow.  I guess it isn't rocket science, but it would be nice to know how to do it.  Or if youcannot why not or what else you do.

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

ID: 3354b2c5-22cf-25c6-538f-771944b0f0bb
Version Independent ID: 037abbef-8540-4b69-c407-58adf46c6486
Content: _NETWORK_OPEN_ECP_CONTEXT (ntifs.h) - Windows drivers
Content Source: wdk-ddi-src/content/ntifs/ns-ntifs-_network_open_ecp_context.md
Product: windows-hardware
Technology: windows-devices
GitHub Login: @lorihollasch
Microsoft Alias: loriwhip

@rodwiddowson , thanks for this PR and sorry for the ambiguous read-only statement. You are right that this structure is for redirectors, and that filters should not alter it. I've updated the page accordingly.


GEOPY-1472 - prepare distribution

GEOPY-1472 - prepare distribution
relates to https://github.com/MiraGeoscience/geopy-distrib/pull/1

See GEOPY-1488 to address the linter errors


Adding build machine requirements to README

Added requirements showing the approximate build times on different Azure VM Skus. Added a note about disk space requirements and the possibility of failure on machines with less memory.

Added a note about future stuff, but otherwise looks good to me!


Fix Typescript issues with Vetur

In a Vue3/Typescript project, Vetur (VSCode) shows the following error when using this plugin:

Property 'VueLogo' does not exist on type '{ $: ComponentInternalInstance; $data: {}; $props: Partial<{}> & Omit<({} & (Readonly<{} & {} & {}> & ({} | {}))) & (VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<...> & ({} | {})), never>; ... 10 more ...; $watch(source: string | Function, cb: Function, options?: WatchOptions<...> | undefined...'.

Tasks

Figure out how to make Vetur happy

Detect TS and generate types?
Generate types by default?
Recommend method for ignoring these warnings? (maybe non-trivial)

vite-plugin-components supports this with Volar, their solution can be investigated investigated: https://github.com/antfu/vite-plugin-components#typescript
General support may rely on: https://github.com/vuejs/vue-next/pull/3399


Since version 1.0.115 ssh connections doesn't work anymore

Version: 1.0.117
Platform: linux 5.4.0-42-generic
Plugins: altair, clickable-links, save-output, scrollbar, shell-selector, theme-gruvbox, title-control
Using private key
 SSH  Connecting to xxx
Loading private key from  xxxx
  Host key fingerprint:
   SHA256  4759ac41776fc7a5ae35550a5a57c649bdd26288c8836c821aa6034452d074a5
 X  Timed out while waiting for handshake

 SSH   X  Remote rejected opening a shell channel: Error: Not connected

 SSH  xxx: session closed

client.js:421 Uncaught Error: Authentication method not allowed: password
    at doNextAuth (client.js:421)
    at tryNextAuth (client.js:484)
    at SSH2Stream.onUSERAUTH_FAILURE (client.js:597)
    at SSH2Stream.emit (events.js:210)
    at parsePacket (ssh.js:3682)
    at SSH2Stream._transform (ssh.js:701)
    at SSH2Stream.Transform._read (_stream_transform.js:189)
    at SSH2Stream._read (ssh.js:253)
    at SSH2Stream.Transform._write (_stream_transform.js:177)
    at doWrite (_stream_writable.js:431)
    at writeOrBuffer (_stream_writable.js:415)
    at SSH2Stream.Writable.write (_stream_writable.js:305)
    at Socket.ondata (_stream_readable.js:726)
    at Socket.emit (events.js:210)
    at addChunk (_stream_readable.js:308)
    at readableAddChunk (_stream_readable.js:289)
    at Socket.Readable.push (_stream_readable.js:223)
    at TCP.onStreamRead (internal/stream_base_commons.js:182)
2
/opt/Terminus/resour…es/core.umd.js:4302 ERROR Error: Uncaught (in promise): [object Number]
    at resolvePromise (/opt/Terminus/resour…js/dist/zone.js:832)
    at /opt/Terminus/resour…js/dist/zone.js:739
    at rejected (tslib.es6.js:63)
    at ZoneDelegate.invoke (/opt/Terminus/resour…js/dist/zone.js:386)
    at Object.onInvoke (/opt/Terminus/resour…s/core.umd.js:28264)
    at ZoneDelegate.invoke (/opt/Terminus/resour…js/dist/zone.js:385)
    at Zone.run (/opt/Terminus/resour…js/dist/zone.js:143)
    at /opt/Terminus/resour…js/dist/zone.js:891
    at ZoneDelegate.invokeTask (/opt/Terminus/resour…js/dist/zone.js:421)
    at Object.onInvokeTask (/opt/Terminus/resour…s/core.umd.js:28252)
    at ZoneDelegate.invokeTask (/opt/Terminus/resour…js/dist/zone.js:420)
    at Zone.runTask (/opt/Terminus/resour…js/dist/zone.js:188)
    at drainMicroTaskQueue (/opt/Terminus/resour…js/dist/zone.js:601)
    at ZoneTask.invokeTask [as invoke] (/opt/Terminus/resour…js/dist/zone.js:507)
    at invokeTask (/opt/Terminus/resour…s/dist/zone.js:1671)
    at HTMLElement.globalZoneAwareCallback (/opt/Terminus/resour…s/dist/zone.js:1697)
    at HTMLElement.sentryWrapped (/opt/Terminus/resour…dist/sentry.js:1118)
log.service.ts:56 [ssh-]  X  Remote rejected opening a shell channel: Error: Not connected
/opt/Terminus/resour…es/core.umd.js:4302 ERROR Error: Uncaught (in promise): [object Undefined]
    at resolvePromise (/opt/Terminus/resour…js/dist/zone.js:832)
    at resolvePromise (/opt/Terminus/resour…js/dist/zone.js:784)
    at /opt/Terminus/resour…js/dist/zone.js:894
    at ZoneDelegate.invokeTask (/opt/Terminus/resour…js/dist/zone.js:421)
    at Object.onInvokeTask (/opt/Terminus/resour…s/core.umd.js:28252)
    at ZoneDelegate.invokeTask (/opt/Terminus/resour…js/dist/zone.js:420)
    at Zone.runTask (/opt/Terminus/resour…js/dist/zone.js:188)
    at drainMicroTaskQueue (/opt/Terminus/resour…js/dist/zone.js:601)
    at ZoneTask.invokeTask [as invoke] (/opt/Terminus/resour…js/dist/zone.js:507)
    at invokeTask (/opt/Terminus/resour…s/dist/zone.js:1671)
    at HTMLButtonElement.globalZoneAwareCallback (/opt/Terminus/resour…s/dist/zone.js:1697)
    at HTMLButtonElement.sentryWrapped (/opt/Terminus/resour…dist/sentry.js:1118)
```

Ok, I think I've found the reason: when 'authentication' is left to 'auto' - ssh doesn't work anymore as it tries to use a password before public key.
Switching all settings from auto to key, or adding in the config to all list items:
auth: publicKey

works

Exactly the same thing here, thanks for the workaround :).


Webpack Plugin - Error when loading a non-public web map from AGOL

I am reporting an issue with

[ x] another resource in this repository

Demo app is up and running, accepts any public webmap as the portalItem id (tested with multiple public webmap ids), but when loading a portal item that is not a public I get this error:
dojo.js:1754 GET http://localhost:8080/dojo/request/watch.js 404 (Not Found)
dojo.js:1754 GET http://localhost:8080/dojo/request/util.js 404 (Not Found)
dojo.js:1754 GET http://localhost:8080/dojo/request/kernel.js 404 (Not Found)
..etc
Shouldn't these files be inside the bundle?
My guess is my bundle is missing some modules needed for the authentication window...

Correction, now I see the issue.
It happens with the IdentityManager popup, but not if you use OAuth as described here.
https://developers.arcgis.com/javascript/latest/sample-code/identity-oauth-basic/index.html
Let me look at this a little further, because it may require some more involved steps.

This should be fixed by updating the @arcgis/webpack-plugin to 4.7.8
https://github.com/Esri/arcgis-webpack-plugin/releases/tag/4.7.8
Can you please verify @nick-romano

I'll update and let you know tomorrow. thanks for the quick response.

This worked, but now I am getting an error with the calcite module. Webpack is throwing a compilation error on .svg, .eot, .woff, and .ttf files, logging that there is no loader set to handle those file extensions.
I set up a rule to have those files loaded with the file-loader, just to see that the previous fix worked, but that's not a good solution. Could just be an error on my end at this point as well. Let me know if that seems odd to you.
But the private web map ID now loads successfully, so thanks for that.

ha, ya, i think i screwed up the regex again, testing some more and will update today.
I think you can add this to your modules.rules of the webpack config to fix it, but I'm still testing
      {
        test: /\.(jpe?g|png|gif|webp)$/,
        loader: "url-loader",
        options: {
          // Inline files smaller than 10 kB (10240 bytes)
          limit: 10 * 1024,
        }
      },
      {
        test: /\.(wsv|ttf|otf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/,
        use: [
          {
            loader: "file-loader",
            options: {
              name: "build/[name].[ext]"
            }
          }
        ]
      },

ah, yeah that looks right to me. Thanks @odoe


code changes to tie ingestion and validation

Description
code changes to tie ingestion and validation

Unit tests
Integration tests

let's update the pr with unit tests and integration tests results


eureka client, documentation broken links

http://projects.spring.io/spring-cloud/spring-cloud.html#_service_discovery_eureka_clients
The 2 links in this text are broken
See EurekaInstanceConfigBean and EurekaClientConfigBean for more details of the configurable options.

The new documentation is located here and this is fixed.


Move away from vim

Either introduce the notebooks or have learners use a simpler editor. vim causes lots of trip ups and mis-understanding each time.

Done at Madison--nano worked much better.


i18n(zh-cn): Add testing.mdx

What kind of changes does this PR include?

Translated content

Description

Add testing.mdx.

By the way, if you’re interested in translating more pages, check out our dashboard which should translation progress here: https://github.com/withastro/docs/issues/438
You might also be interested in our translation guide here: https://github.com/withastro/docs/blob/main/TRANSLATING.md

Thank you for your merger, which is a great encouragement to me, and I will continue.


Fix make on darwin

When I run make on Darwin(macos 10.15), make fails because the make script is trying to execute a linux elf binary.
/bin/sh: ./flash_build: cannot execute binary file
make: *** [all] Error 126

Since it looks like the flash_build.py doing the same thing, I switched that line to install the python script dependencies and execute it. I also fixed requirements.txt to include all the dependencies toml and configobj were missing.

Thank you very much for your pull request!
For receiving the free PineCone, please sign up at this link.
(If there will be any issues with signing up, please let me know here).

Thank you :)


Fix outdated names of rabbit default user and password varaibles

What this PR does / why we need it:
According to new documentation, rabbitmq has no user/password variables, instead it has default_user/default_password variables.
This may lead to confusing situations when password in secret is ok, but one cannot connect to MQ using it.
Which issue this PR fixes

fixes #10065

Special notes for your reviewer:
See https://hub.docker.com/_/rabbitmq/ for details.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

I think you've confused a few things. There are two containers: rabbitmq and metrics exporter. You've renamed the metrics exporter's environment variables to be incorrect according to its documentation. The rabbitmq container does not use environment variables to create a default user, it uses the definitions.json that is populated with the value from the secret.
/assign


SX-24: Support of AWS roles

I have compiled this with qubole hadoop.
Open source hadoop has issues with aws roles.
@PraveenSeluka

Ashish, you need to make the profile that compiles with qubole-hadoop right. By default, it will use OSS. But if you use the profile, it overrides it. This also means, we will have two streamx docker images, one with OSS hadoop and the other with qubole hadoop (we can start tagging docker images for this)


Flag -w, --warning does not work.

Xmake Version
xmake v2.6.7+master.ad3d6a565
Operating System Version and Architecture
Linux t480 5.17.4-arch1-1 #1 SMP PREEMPT Wed, 20 Apr 2022 18:29:28 +0000 x86_64 GNU/Linux
Describe Bug
When I run xmake -w or xmake --warning no warnings get printed.
The documentation however says: -w, --warning          Enable the warnings output.
xmake seems to silence all stderr output.
Expected Behavior
I would expect compile time warnings to be printed to the command line.
I actually expect compile time warnings to ALWAYS get printed when setting set_warnings() [exception of course set_warnings("none")].
This is how all other build tools I know handle this.
Project Configuration
xmake create -l c -t console test
cd test

Edit xmake.lua:
add_rules("mode.debug", "mode.release")

set_languages("c99")
set_warnings("allextra")

target("test")
    set_kind("binary")
    add_files("src/*.c")

Run xmake -w.
Additional Information and Error Logs
Even when I run xmake -wv I do not see any warnings printed.
When I run the compile commands manually printed by xmake -v, I do get warnings printed:
/usr/bin/gcc -c -m64 -fvisibility=hidden -Wall -Wextra -O3 -std=c99 -DNDEBUG -o build/.objs/test/linux/x86_64/release/src/main.c.o src/main.c
src/main.c: In function ‘main’:
src/main.c:3:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
    3 | int main(int argc, char** argv)
      |          ~~~~^~~~
src/main.c:3:27: warning: unused parameter ‘argv’ [-Wunused-parameter]
    3 | int main(int argc, char** argv)
      |

This is due to the new version's built-in ccache, which you can disable to get the warning output. xmake f --ccache=n
I've just updated the dev version with some fixes that you can also try. xmake update -s dev
However, the warnings are currently only output for the first build, as the second build uses the cache directly, so the warnings are still not displayed. I can't think of a better way to do this yet, unless the warning output is cached as well.
Translated with www.DeepL.com/Translator (free version)

This is due to the new version's built-in ccache, which you can disable to get the warning output. xmake f --ccache=n

Disabling ccache does work. This must be an issue with the lua wrapper though? Because running ccache directly does print warnings.

I've just updated the dev version with some fixes that you can also try. xmake update -s dev

Yes, definitely does print warnings now.  Thanks for the quick response.

However, the warnings are currently only output for the first build, as the second build uses the cache directly, so the warnings are still not displayed. I can't think of a better way to do this yet, unless the warning output is cached as well.

I am not quite sure if I understand. Compilers only print warnings when a file is compiled. If the file has not changed and therefore is not compiled: no warning printed.
What is still broken is xmake -wr. It should print warnings when rebuilding.
The other problem I have is needing to runxmake -w. I expect set_warnings() to automatically enable that. This is what meson does.
There should be an option to silence warnings instead in my opinion.
Should I open a separate issue for that?

Disabling ccache does work. This must be an issue with the lua wrapper though? Because running ccache directly does print warnings.

xmake v2.6.7 use builtin build cache instead of 3rd ccache command.

Compilers only print warnings when a file is compiled. If the file has not changed and therefore is not compiled: no warning printed.

What is still broken is xmake -wr. It should print warnings when rebuilding.
xmake/ccache will cache build object files to speed up rebuilding.
So when you re-build everything, xmake/ccache will also use the cached object files directly.
The third-party ccache does the same thing, the only difference being that it may additionally cache the output of each build.

Disabling ccache does work. This must be an issue with the lua wrapper though? Because running ccache directly does print warnings.

xmake v2.6.7 use builtin build cache instead of 3rd ccache command.

Compilers only print warnings when a file is compiled. If the file has not changed and therefore is not compiled: no warning printed.

What is still broken is xmake -wr. It should print warnings when rebuilding.
xmake/ccache will cache build object files to speed up rebuilding.
So when you re-build everything, xmake/ccache will also use the cached object files directly.
The third-party ccache does the same thing, the only difference being that it may additionally cache the output of each build.

That behavior seems extremely strange to me. If I specify -r or --rebuild, I expect it to reBUILD and not use some cache. Otherwise what is the point of that option? Relink? Then it should be called that. If this is the behavior of ccache too, then ccache is also broken.
I am not terribly familiar with ccache, so I have not tested what it actually does.

ccache and incremental compilation are two different features, if it is incremental compilation, then rebuild should recompile all of it.
ccache is mainly used to optimize the build speed of rebuild, even if rebuild all the code, it will still greatly improve the compilation speed by caching the obj files.
If you want to rebuild without using the cache at all, then you can disable it. xmake f --ccache=n, but I don't think it's necessary unless caching affects the normal build results, and I usually recommend turning it on.

I understand why using ccache is beneficial to compilation speed. But in this case it breaks xmake.
How is a user supposed to know, that --rebuild by default does NOT actually rebuild the code? ccache is enabled by default, therefore the -r switch is broken by default.
And I am aware that I can disable it via set_policy("build.ccache", false).

And the other problem I am having is that the -w switch is not enabled by default. At least I would need a set_policy("warning", true).
But for a build tool to not print warnings by default makes it unusable. Not printing warnings by default hides potential bugs.

I understand why using ccache is beneficial to compilation speed. But in this case it breaks xmake.

If you think ccache is breaking something, you can open a separate issue and provide details of the error and steps to reproduce it. I will try to fix it.

How is a user supposed to know, that --rebuild by default does NOT actually rebuild the code?

The default output is clearly indicated, and you can see the ccache text in the progress message.
[  8%]: ccache compiling.debug src/tbox/libc/string/memcpy.c
[  8%]: ccache compiling.debug src/tbox/libc/string/strchr.c
[  8%]: ccache compiling.debug src/tbox/libc/string/wcscmp.c
[  8%]: ccache compiling.debug src/tbox/libc/string/wcslcpy.c
[  8%]: ccache compiling.debug src/tbox/libc/string/strncat.c

ccache is enabled by default, therefore the -r switch is broken by default.

As I said, ccache only makes sense when it is used at -r/--rebuild. If you don't use ccache at -r/--rebuild, it doesn't make any sense.

And the other problem I am having is that the -w switch is not enabled by default. At least I would need a set_policy("warning", true).

$ xmake g --build_warning=y

But for a build tool to not print warnings by default makes it unusable. Not printing warnings by default hides potential bugs.

By default, warnings are printed, and for most projects, the terminal will display back a lot of warning messages and we will not be able to view the compilation progress information properly.
This is especially noticeable with extra warnings enabled, and in some terminals with unfriendly window scrolling, such as cmd

Also, for users, who simply need to compile the project, they do not pay much attention to the warning messages. It is not necessary to turn them on at all by default.
And for developers, it won't take much time to configure themselves to turn on warning output by default.

$ xmake g --build_warning=y

Again this applies only to my local computer. I need an option that is set in the file. So that anybody compiling the code sees the warnings. Anybody that types xmake.

By default, warnings are printed, and for most projects, the terminal will display back a lot of warning messages and we will not be able to view the compilation progress information properly.
This is especially noticeable with extra warnings enabled, and in some terminals with unfriendly window scrolling, such as cmd

I am wondering if this is a cultural difference? Because where I come from, anybody who compiles code is a developer. Normal user do not even know what a compiler is.
And if your code has so many warnings that you can not see the progress anymore, then your code most likely has many bugs. Warnings are very often hidden bugs.
The projects I work on all have a 0 warning policy. Even the windows kernel started using -Werror.

The projects I work on all have a 0 warning policy. Even the windows kernel started using -Werror.

So you should use set_warnings("all", "error"). I also use the 0 warning policy, but I would leave it as a compile error.

So you should use set_warnings("all", "error"). I also use the 0 warning policy, but I would leave it as a compile error.

Not feasible, as this is a library being compiled on various platforms with various compilers. Breaking builds is just not an option.
I guess I give up and will have to stay with seemingly inferior build systems like CMake and Meson. I was hoping to adopt xmake, but no default warning option is sadly not acceptable for me.
Thank you for the effort nonetheless.

but no default warning option is sadly not acceptable for me

I'm really not sure to understand where the problem of adding -w is.
Most devs who will just type "xmake" to build the lib won't care about warnings in my opinion, all they want is the final product: binaries. I had a fair share of non-dev users doing this just to build and use one of my product.
Developers who want to contribute to the library will either:

read the manual (which may tell users to simply enable warnings when building)
generate a project (visual studio, makefile, xcode project, etc.) which will have warnings enabled.

This ain't much for a contributor, and I agree that if you find that warnings are so important, adding -Werror is an option, if the project doesn't build because a new warning appeared (which should be rare except if using some crazy option like -Weverything), why not add an option to disable -Werror which can be used when you need the library to build. It's already what assimp is doing, enabling -Werror by default but providing an option to disable it for package mangers.

Disabling ccache does work. This must be an issue with the lua wrapper though? Because running ccache directly does print warnings.

Indeed it does:

On a cache hit, ccache is able to supply all of the correct compiler outputs (including all warnings, dependency file, etc) from the cache.

...

How is a user supposed to know, that --rebuild by default does NOT actually rebuild the code? ccache is enabled by default, therefore the -r switch is broken by default.

In general, ccache is designed around the notion that every conceivable form of input (source files, compiler version, header includes, current locale, etc.) that might affect any part of the output, is hashed as part of the cache lookup key. The ccache man page goes into detail about how this works. It is supposed to err on the side of failing to return a cache hit in any case that the compiler would be able to return different output, even if that different output is just the warnings on stderr. (That is why it caches the locale too. There's an option to manually disable using the locale in the cache key and allow ccache to return warnings in the "wrong" locale.)
So although it's not technically a rebuild, it is semantically a rebuild, and acts exactly like a rebuild including what gets printed to the console.
... if you actually use ccache. If you don't use ccache, then the alternative tool needs to reimplement all the great work ccache has done, and possibly miss out on a lot of it.
With that in mind, I find it strange that people keep on talking about ccache.

This is due to the new version's built-in ccache, which you can disable to get the warning output. xmake f --ccache=n

So, it seems to me this is highly deceptive!!! Having a "ccache" option is a lie. I strongly recommend xmake renames this option to e.g. "xcache". This will provide visibility to users that if they have questions or issues with the functionality of the object caching, it is not the fault of ccache (because it is not being used).
Meanwhile I suppose that if people want "real ccache" then the traditional ccache method of defining the compiler as ccache gcc or ccache clang is the only way to go.

I have added set_policy("build.warning", true) to enable warning output on dev branch.
And I have improved to get warnings when enable ccache. Even if the object file has been cached, each rebuild will also get the warning message.

So, it seems to me this is highly deceptive!!! Having a "ccache" option is a lie. I strongly recommend xmake renames this option to e.g. "xcache". This will provide visibility to users that if they have questions or issues with the functionality of the object caching, it is not the fault of ccache (because it is not being used).

I know, It means c/c++ cache, and although it has the same name as the ccache utility, I don't want to modify it. Also, --distcc is the same, distributed c/c++ compilation.
Also, I've fixed the current warning problem ccache is having, and it keeps basically the same behavior as 3rd ccache, and both do the same thing.

In general, ccache is designed around the notion that every conceivable form of input (source files, compiler version, header includes, current locale, etc.) that might affect any part of the output, is hashed as part of the cache lookup key.

Wow, I was not aware. I hope it does that for files form /usr/include as well as hashes the compiler binaries and all related build tools as well?

So, it seems to me this is highly deceptive!!! Having a "ccache" option is a lie. I strongly recommend xmake renames this option to e.g. "xcache". This will provide visibility to users that if they have questions or issues with the functionality of the object caching, it is not the fault of ccache (because it is not being used).

Yes, this was very confusing to me too. Because I did not see a ccache dependency from the package manager. I hope this is not a "not invented here" syndrome thing. It seems like a pointless undertaking to replicate a build tool that works and is so complex.

I know, It means c/c++ cache, and although it has the same name as the ccache utility, I don't want to modify it. Also, --distcc is the same, distributed c/c++ compilation.

I do agree that it is extremely confusing. If I see ccache, I assume to get the actual ccache not some home baked alternative. It would be like calling ones operating system Windows and then claiming that made sense, because it displays windows.
I believe ccache does not actually stand for c/c++. The first line of the man page reads:

Ccache is a compiler cache.

I have added set_policy("build.warning", true) to enable warning output on dev branch. xmake update -s dev

Cool, thank you very much! Happy to see an option. This looks workable now.

Most devs who will just type "xmake" to build the lib won't care about warnings in my opinion, all they want is the final product: binaries. I had a fair share of non-dev users doing this just to build and use one of my product.

As I said, I guess this might be a cultural thing. I do not know a single non developer who would compile anything. They would give up at the word compile.
And I am not sure if this is true. For me the amount of warnings is a great indicator of code quality/development practices. If a library has more than a few warnings, I will most likely move on and try to find something else.
I the end it is about values for me. Are the values of the projects I rely upon aligned with my own. I value correct, bug free code over pretty output. Other people might have different values, and that is perfectly fine.

Wow, I was not aware. I hope it does that for files form /usr/include as well as hashes the compiler binaries and all related build tools as well?

Yes, it does.

I think all the problems here should have been solved, and I won't consider changing the name of ccache for now. If you have any other questions, you can open a new issue.

I think it is possible to have both xcache and ccache options? Default
with xcache, users can switch back to ccache (auto-close xcache)


Controller Manager and Scheduler stop working

We have the same problem for 2 weeks now and haven't managed to fixed it even after a few questions on stackoverflow and rancher forum.
Around 2 weeks ago we had a memory overflow by one of our PODs and after that Controller Manager and Scheduler are not working properly.
kube-controller-manager is impossible to restart using docker restart command on any node, so the only way we managed to keep it running was with restarting whole docker service with systemctl restart docker.socket docker.service. Firstly we tough that this fixed the problem but after a few days problem would return.
Today morning we moved all our servers to bare metal because rancher couldn't start working properly at all even after a few restarts, and we already had a few hour downtime..
Can someone please help me troubleshoot this issue. The last logs are below.
kube-controller-manager
E0311 09:08:57.135369       1 resource_quota_controller.go:430] failed to discover resources: Get https://<IP_ADDRESS>:6443/api?timeout=32s: context deadline exceeded
E0311 09:09:24.717936       1 cronjob_controller.go:109] can't list Jobs: the server was unable to return a response in the time allotted, but may still be processing the request (get jobs.batch)
E0311 09:09:24.718817       1 leaderelection.go:234] error retrieving resource lock kube-system/kube-controller-manager: Get https://<IP_ADDRESS>:6443/api/v1/namespaces/kube-system/endpoints/kube-controller-manager: stream error: stream ID 1053; INTERNAL_ERROR
I0311 09:09:25.091210       1 leaderelection.go:213] failed to renew lease kube-system/kube-controller-manager: timed out waiting for the condition
F0311 09:09:25.091292       1 controllermanager.go:215] leaderelection lost

kube-scheduler
W0311 09:28:43.966555       1 authorization.go:47] Authorization is disabled
W0311 09:28:43.966572       1 authentication.go:55] Authentication is disabled
I0311 09:28:43.966581       1 insecure_serving.go:47] Serving healthz insecurely on [::]:10251
I0311 09:28:44.868193       1 controller_utils.go:1025] Waiting for caches to sync for scheduler controller
I0311 09:28:44.968341       1 controller_utils.go:1032] Caches are synced for scheduler controller
I0311 09:28:44.968373       1 leaderelection.go:185] attempting to acquire leader lease  kube-system/kube-scheduler...
E0311 09:29:58.163852       1 leaderelection.go:234] error retrieving resource lock kube-system/kube-scheduler: the server was unable to return a response in the time allotted, but may still be processing the request (get endpoints kube-scheduler)
E0311 12:40:25.609957       1 leaderelection.go:234] error retrieving resource lock kube-system/kube-scheduler: the server was unable to return a response in the time allotted, but may still be processing the request (get endpoints kube-scheduler)
W0311 12:41:11.076778       1 reflector.go:341] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: watch of *v1.ReplicationController ended with: too old resource version: 23893203 (23926774)
W0311 12:41:11.141484       1 reflector.go:341] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: watch of *v1.StorageClass ended with: too old resource version: 23891982 (23926774)
W0311 12:41:11.141637       1 reflector.go:341] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: watch of *v1beta1.PodDisruptionBudget ended with: too old resource version: 23892078 (23926774)
W0311 12:41:11.163989       1 reflector.go:341] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: watch of *v1.PersistentVolumeClaim ended with: too old resource version: 23893119 (23926774)
W0311 12:41:11.165037       1 reflector.go:341] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: watch of *v1beta1.StatefulSet ended with: too old resource version: 23896157 (23926774)
W0311 12:41:11.234610       1 reflector.go:341] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: watch of *v1.Service ended with: too old resource version: 23893544 (23926774)
W0311 12:41:16.635942       1 reflector.go:341] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: watch of *v1.PersistentVolume ended with: too old resource version: 23893119 (23926804)
E0311 12:43:09.194445       1 leaderelection.go:234] error retrieving resource lock kube-system/kube-scheduler: the server was unable to return a response in the time allotted, but may still be processing the request (get endpoints kube-scheduler)
I0311 12:43:31.677549       1 leaderelection.go:194] successfully acquired lease kube-system/kube-scheduler
E0311 12:48:20.622459       1 leaderelection.go:234] error retrieving resource lock kube-system/kube-scheduler: the server was unable to return a response in the time allotted, but may still be processing the request (get endpoints kube-scheduler)
E0311 12:53:06.372882       1 leaderelection.go:234] error retrieving resource lock kube-system/kube-scheduler: the server was unable to return a response in the time allotted, but may still be processing the request (get endpoints kube-scheduler)
W0311 12:53:43.954461

kubectl components status
controller-manager   Unhealthy   Get http://<IP_ADDRESS>:10252/healthz: dial tcp <IP_ADDRESS>:10252: connect: connection refused
scheduler            Healthy     ok
etcd-2               Healthy     {"health": "true"}
etcd-1               Healthy     {"health": "true"}
etcd-0               Healthy     {"health": "true"}

Infrastructure is HA, on 3 nodes with 4CPU and 8GB RAM each hosted on DigitalOcean, load balanced by DigitalOcean LB and it worked fine for at least 3 months without any errors and with a lot more of traffic.

Useful
Info

Versions
Rancher v2.1.1 UI: v2.1.4

had the same issue multiple times at 2.1.2, the only way was to restart instance / docker service and we still don't know how to prevent these situations

It is very irritating because for the last couple of months we've spent a lot of energy in dockerizing everything and developing CI/CD system with Rancher in mind. And now we have returned to a stone age with VMs again.
No matter everything we are still holding on these 3 VMs with compromised Rancher, it costs us money, and if anyone is willing to at least help me debug and troubleshoot everything I think this issue might be solved in the following releases.
Because with this kind of unpredictable behavior Rancher is useless....

@RalicIvan did you try to run controller on an instance with more available memory? it's not a fix, but could provide a longer life for your stack
There is also new issue related to this one #19038

Is this the cluster that rancher server is deployed into or is it a cluster managed by Rancher?
Do the rancher logs say anything? You say you migrated to new machines and it resurfaced? How did you achieve that migration? Especially for etcd
What version of k8s are you running?
How is this cluster deployed and managed? RKE?

@URSTYLE thank you for suggestion, we'll try it.
@cjellick First of all excuse me for my noobism if I do not understand something or make a mistake in communication and thank you very much for a reply!
The HA Rancher was deployed with RKE following this tutorial so I think it is the cluster managed by rancher.
K8s versions are
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.3", GitCommit:"a4529464e4629c21224b3d52edfe0ea91b072862", GitTreeState:"clean", BuildDate:"2018-09-09T17:53:03Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

Currently Rancher logs say a lot, mainly those running say
ClusterController c-xc4wt [user-controllers-controller] failed with : failed to start user controllers for cluster ...

And those pods who are in "removing" state say
E0311 09:28:20.594708 7 reflector.go:205] github.com/rancher/rancher/vendor/github.com/rancher/norman/controller/generic_controller.go:144: Failed to list *v1.ClusterRoleBinding: Get https://<IP_ADDRESS>:6443/apis/rbac.authorization.k8s.io/v1/clusterrolebindings?limit=500&resourceVersion=0&timeout=30s: waiting for cluster agent to connect
2019/03/11 09:28:20 [ERROR] Failed to connect to peer wss://<IP_ADDRESS>/v3/connect [local ID=<IP_ADDRESS>]: dial tcp <IP_ADDRESS>:443: connect: network is unreachable
E0311 09:28:20.679494 7 reflector.go:205] github.com/rancher/rancher/vendor/github.com/rancher/norman/controller/generic_controller.go:144: Failed to list *v1.Namespace: Get https://<IP_ADDRESS>:6443/api/v1/namespaces?limit=500&resourceVersion=0&timeout=30s: waiting for cluster agent to connect
2019/03/11 09:28:20 [ERROR] Failed to connect to peer wss://<IP_ADDRESS>/v3/connect [local ID=<IP_ADDRESS>]: dial tcp <IP_ADDRESS>:443: connect: network is unreachable
E0311 09:28:20.748253 7 reflector.go:205] github.com/rancher/rancher/vendor/github.com/rancher/norman/controller/generic_controller.go:144: Failed to list *v1.Role: Get https://<IP_ADDRESS>:6443/apis/rbac.authorization.k8s.io/v1/roles?limit=500&resourceVersion=0&timeout=30s: waiting for cluster agent to connect
E0311 09:28:20.961803 7 leaderelection.go:224] error retrieving resource lock kube-system/cattle-controllers: Get https://<IP_ADDRESS>:443/api/v1/namespaces/kube-system/configmaps/cattle-controllers?timeout=30s: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
E0311 09:28:20.971273 7 reflector.go:205] github.com/rancher/rancher/vendor/github.com/rancher/norman/controller/generic_controller.go:144: Failed to list *v1.ClusterRole: Get https://<IP_ADDRESS>:6443/apis/rbac.authorization.k8s.io/v1/clusterroles?limit=500&resourceVersion=0&timeout=30s: waiting for cluster agent to connect
E0311 09:28:20.962804 7 event.go:260] Could not construct reference to: '&v1.ConfigMap{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, Data:map[string]string(nil), BinaryData:map[string][]uint8(nil)}' due to: 'selfLink was empty, can't make reference'. Will not report event: 'Normal' 'LeaderElection' 'rancher-6dc68bb996-mvr5r stopped leading'
I0311 09:28:20.972496 7 leaderelection.go:203] failed to renew lease kube-system/cattle-controllers: timed out waiting for the condition
2019/03/11 09:28:20 [FATAL] leaderelection lost for cattle-controllers

Sorry for misunderstanding but we haven't migrated rancher on another servers, we just transferred whole our infrastructure on an old non-k8s architecture where HA is achieved with multiple VMs for every bigger service and a few VMs for microservices.
What we did and what kinda solved the problem in first place was only rebooting running Rancher VMs or restarting docker service on those nodes.

Looks like you are having pretty major networking/communication issues. I don’t think rancher server has connectivity to the k8s cluster it is managing.

@cloudnautique is 8GB ram enough for mgmt plane cluster?

Thank you, I have been looking at related issue that URSTYLE has added, I will look into networking problems and get back with more information or a solution.

Issue wasn't resolved and found the appropriate reproduction steps because of the nature of the problem (form reload to fail it took sometimes more than week, logs were not helpful). There was not an obvious networking nor RAM problem. Now the servers with an error are down so the reproduction of the same error probably won't be possible.
Thank you all for your help.

Same issue when i add new node. kube-scheduler status running (real not run) but port 10251 not listen and log:
E0729 08:15:56.424195       1 leaderelection.go:270] error retrieving resource lock kube-system/kube-scheduler: Get https://<IP_ADDRESS>:6443/api/v1/namespaces/kube-system/endpoints/kube-scheduler?timeout=10s: context deadline exceeded (Client.Timeout exceeded while awaiting headers)
I0729 08:16:22.034512       1 leaderelection.go:214] successfully acquired lease kube-system/kube-scheduler
I0729 08:20:55.265174       1 leaderelection.go:249] failed to renew lease kube-system/kube-scheduler: failed to tryAcquireOrRenew context deadline exceeded
E0729 08:20:55.499156       1 server.go:261] lost master
lost lease


preventing of creation empty array as value

if we have a pair with value of empty array , this not change in final result

preventing of creating empty value in final result


Navigation issue on iOS

When I press a button to navigate from first page to second page, there's a glitch when I attempt to slide from left side of the screen to navigate back to first page then quickly press the button to navigate to second page. It unable to show second page and the button no longer proceed the navigation.

Steps to Reproduce

Here's the example

[✓] Flutter (Channel stable, v1.2.1, on Mac OS X 10.14.4 18E226, locale en-GB)
    • Flutter version 1.2.1 at /Users/anderscheow/Documents/flutter
    • Framework revision 8661d8aecd (9 weeks ago), 2019-02-14 19:19:53 -0800
    • Engine revision 3757390fa4
    • Dart version 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)

[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/anderscheow/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] iOS toolchain - develop for iOS devices (Xcode 10.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.2, Build version 10E125
    • ios-deploy 1.9.4
    • CocoaPods version 1.6.1

[✓] Android Studio (version 3.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 34.0.1
    • Dart plugin version 182.5215
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

same as #28876

Hi, sorry for the late reply, I would like to ask if you could solve your problem in the meantime?

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.


[Feature] Add OpenJDK 17 (LTS) test for backend server runtime

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
I can see the OpenJDK 17 is available, please add this version for runtime verification.
This doc should be updated as well accordingly, https://skywalking.apache.org/docs/main/latest/en/setup/backend/backend-setup/#requirements-and-default-settings
Use case
Just in case users choose latest LTS JDK 17 radically, even from our experiences, this seems not a recommended one.
Related issues
No response
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

After plugin test tool container and a new plugin(JDK17 compiling and runtime), this doc should be updated, https://skywalking.apache.org/docs/skywalking-java/latest/en/setup/service-agent/java-agent/readme/

I would like to help migrate the docker images to eclipse-temurin ones.

I would like to help migrate the base docker images to eclipse-temurin ones.

Not sure whether you are talking the same thing. @wu-sheng is asking for verification on Java 17 but @lujiajing1126 is asking for arm Docker support, FWIW we already have ARM Docker images for OAP https://github.com/apache/skywalking/pkgs/container/skywalking%2Foap
Changing the base Docker image is not recommended IIRC, unless it's only for testing (E2E).

@kezhenxu94 eclipse-temurin is adoptopenjdk(https://adoptopenjdk.net/). I am thinking about whether we should adopt the latest temurin release. WDYT?

Another thing is, whether we should provide JDK17 runtime docker image on GitHub repo for testing?

@kezhenxu94 eclipse-temurin is adoptopenjdk(https://adoptopenjdk.net/). I am thinking about whether we should adopt the latest temurin release. WDYT?

If you mean test the OAP on latest temurin release and make the tests pass, I'm +1

Another thing is, whether we should provide JDK17 runtime docker image on GitHub repo for testing?

I can add a step to push that image

@kezhenxu94 Notice this from https://hub.docker.com/_/adoptopenjdk
## DEPRECATION NOTICE
This image is officially deprecated in favor of the eclipse-temurin image, and will receive no further updates after 2021-08-01 (Aug 01, 2021). Please adjust your usage accordingly.

The base image should be updated too. And JDK17 runtime could be considered if it doesn't break release process.

I would like to help migrate the base docker images to eclipse-temurin ones.

Not sure whether you are talking the same thing. @wu-sheng is asking for verification on Java 17 but @lujiajing1126 is asking for arm Docker support, FWIW we already have ARM Docker images for OAP https://github.com/apache/skywalking/pkgs/container/skywalking%2Foap
Changing the base Docker image is not recommended IIRC, unless it's only for testing (E2E).

Yes. At the very beginning, I meant only the E2E parts.
Then due to the deprecation warning from the https://hub.docker.com/_/adoptopenjdk repo mentioned by @wu-sheng, I suppose we should migrate all base images to the recommended ones built by eclipse-temurin.


Package request: hypertimer

Project description
A productivity tool to defeat time blindness
Metadata

homepage URL: https://codeberg.org/unfa/HyperTimer
source URL: https://codeberg.org/unfa/HyperTimer
license: gpl3
platforms: linux, windows, macos

Note for maintainers: Please tag this issue in your PR.

Add a :+1: reaction to issues you find important.

Totally didn't abandon what I was doing to package this.


Add tests for sf::WindowBase

Description
Unit tests are back on the menu!
The first commit fixes an oversight from #2302 where I forgot to enable these display tests for the Linux jobs that are already using xvfb-run. The second commit fixes a DRM bug where the code will attempt to terminate a null display causing a segfault. I'm not sure why this only appeared in these tests but it did.
The main commit adds tests for sf::WindowBase. Certain APIs had inconsistent behavior across platforms so those tests were omitted. For example, the value of sf::WindowBase::hasFocus is not consistent. Other APIs like sf::WindowBase::setMouseCursor result in no observable changes we could test for so I didn't add tests for those.
It's important to realize that going forward we'll still need to manually build and run tests with the DRM backend since we can't run these display tests with the DRM backend in CI.

SFMLBuildMaster: Build this please.


Kanban setup - JavaScript capstone

we are 2 in the group
https://github.com/clintonjosephs/MovieSpot/projects/1

STATUS: APPROVED!!!  🎉 🎉 🎉 :champagne: :champagne: :champagne:
Hi Team,
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉 🎉 🎉 :champagne: :champagne: :champagne:

Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Added ipython notebook to simulate data for allele-fraction model.

I'm going to close this without merging as the generative model is a bit out of date.  I believe @davidbenjamin has up-to-date code in his db_acs_prototype branch.


update nv endpoints

Hi, thanks for the pull request. Are these -turbo models full precision or quantized?

Hi, thanks for the pull request. Are these -turbo models full precision or quantized?

These endpoints are FP8.

ah ok. In that case please use LLAMA_3_8B_CHAT_FP8.
Also, it looks like all Nvidia models were removed in the last commit, was that intentional?

No it was not - it was a botched merge from upstream. I will correct. Thanks!


Inclusive Language replacements

whitelist > allowlist
sanity checks > coherence checks
slave > worker
Blacklisting is fixed configuration key for
Network manager and kernel module loader
Change-type: patch
Signed-off-by: fisehara<EMAIL_ADDRESS>

Love it @fisehara I saw the improvement and the product call topic and the conversation that sparked this.
The docs community has solutions for this already in place and I feel like we should implement them there. Check these out.

https://microsoft.github.io/code-with-engineering-playbook/continuous-integration/inclusive-linting/


pod install is failing No package name found on the latest version

Failed to build the app: No package name found. Found errors in node_modules/react-native-mmkv/android/src/main/AndroidManifest.xml
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.1.0 => 18.1.0
    react-native: 0.70.6 => 0.70.6

to test it:
npx react-native config

error Failed to build the app: No package name found. Found errors in node_modules/react-native-mmkv/android/src/main/AndroidManifest.xml.
info Run CLI with --verbose flag for more details.

Hi yea https://github.com/mrousavy/react-native-mmkv/commit/40b71fe27269ee4c0bd5bfb83ee626bf41535cba fixed that but this isnt on npm yet

how is that related to pod install

how is that related to pod install

baecuse pod install use react-native config commad to get list of native deps. that will be installed,
and old versions or react-native EXPECT to have package name in AndroidManifest

so for backward compatibility you have to keep  package name in AndroidManifest

I got the same issue with the library version 2.12.2 and React Native 0.69.12
error Failed to build the app: No package name found. Found errors in node_modules/react-native-mmkv/android/src/hasNamespace/AndroidManifest.xml.error Failed to build the app: No package name found.


Error when deleting an API Key

When attempting to delete an API Key after creating one in the Tenant, the user is logged out of the Tenant UI and is met with a non-descriptive error.

Argh, sorry @gurjmatharu I was using an API Key testing some things out and just fixed this instantly without thinking if anyone was assigned already since it was just a wrong endpoint.

Argh, sorry @gurjmatharu I was using an API Key testing some things out and just fixed this instantly without thinking if anyone was assigned already since it was just a wrong endpoint.

no worries!


New note function doesn't work

I dunno why, but when i try creating a new note from a template it doesn't work at all.
That's the code generated by Button Maker:
name Nueva idea
type note(Nueva idea) template
action 📜 NUEVA Idea
color purple

^button-ocsm

Same problem here. It worked, two weeks ago. But not now!

I'll release a bug fix for this on the weekend. Sorry!

Got to it this morning! Should be fixed in 0.4.11


Increased CPU usage since the new ListenerAdapter implementation (version 224)

General Troubleshooting

[x] I have checked for similar issues.
[x] I have updated to the latest JDA version.
[x] I have checked the branches or the maintainers' PRs for upcoming bug fixes.

Bug Report
A friend of mine noticed a large increase in CPU usage (on a bot with 30k servers with presence events) after updating to the latest version so I decided to investigate it a bit. Turns out this was due to the new ListenerAdapter implementation that now uses reflection.
I wrote up a simple benchmark using the previous and current ListenerAdapter
public class Test {

	public static final int WARMUP_EVENTS = 10_000;
	public static final int EVENTS = 1_000_000;

	public static final RawGatewayEvent DUMMY_EVENT = new RawGatewayEvent(null, 0, null);

	public static void main(String[] args) {
		runTest(new ListenerAdapterOld() {}, "old ListenerAdapter");
		runTest(new ListenerAdapter() {}, "current ListenerAdapter");
	}

	public static void runTest(EventListener listener, String description) {
		for(int i = 0; i < WARMUP_EVENTS; i++) {
			listener.onEvent(DUMMY_EVENT);
		}

		long start = System.nanoTime();
		for(int i = 0; i < EVENTS; i++) {
			listener.onEvent(DUMMY_EVENT);
		}
		long time = System.nanoTime() - start;

		System.out.println(String.format("Took a total of: %sns (an average of %.2fns) for %s", time, (double) time/EVENTS, description));
	}
}

and the results were as follows
Took a total of: 54969800ns (an average of 54,97ns) for old ListenerAdapter
Took a total of:<PHONE_NUMBER>ns (an average of 3878,59ns) for current ListenerAdapter

to my surprise it was a whole 70x slower than the old method and I could even hear my fans spinning up.
Note: not only is this 70x slower overall but 70x slower for every ListenerAdapter you have registered!
My proposed solution would be to cache all of the methods that will be called for each event, example:
private Map<Class<?>, List<Method>> eventMethods = new HashMap<>();

@Override
public final void onEvent(@Nonnull GenericEvent event)
{
    onGenericEvent(event);
    if (event instanceof UpdateEvent)
        onGenericUpdate((UpdateEvent<?, ?>) event);

    Class<?> eventClazz = event.getClass();
    if (!eventMethods.containsKey(eventClazz))
    {
        List<Method> methods = new ArrayList<>();

        Class<ListenerAdapter> handle = ListenerAdapter.class;
        for (Class<?> clazz : ClassWalker.range(eventClazz, GenericEvent.class))
        {
            String name = clazz.getSimpleName();
            try
            {
                name = "on" + name.substring(0, name.length() - "Event".length());
                Method method = handle.getDeclaredMethod(name, clazz);

                if (method.canAccess(this))
                    methods.add(method);
            }
            catch (NoSuchMethodException e) {} // this means this is probably a custom event!
        }

        eventMethods.put(eventClazz, methods);
    }

    for (Method method : eventMethods.get(eventClazz)) {
        try
        {
            method.invoke(this, event);
        }
        catch (IllegalAccessException ignored) {} // shouldn't happen?
        catch (InvocationTargetException e)
        {
            Throwable cause = e.getCause();
            if (cause instanceof RuntimeException)
                throw (RuntimeException) cause;
            if (cause instanceof Error)
                throw (Error) cause;
            throw new RuntimeException(cause);
        }
    }
}

After adding this new proposed solution to the benchmark, this was the result:
Took a total of: 55066200ns (an average of 55,07ns) for old ListenerAdapter
Took a total of:<PHONE_NUMBER>ns (an average of 3990,63ns) for current ListenerAdapter
Took a total of: 60912900ns (an average of 60,91ns) for new ListenerAdapter

It is now back to roughly the same as it was before and will only be 70x slower for the very first event of a specific type.

Using method handles instead of Reflection would be beneficital too.
Maybe direct execution too? Like Consumer<? extends Event> or such.
I remember using EventListener#onEvent, that’s the best way currently
because annotation based and ListenerAdapter is using reflection and slow.

The correct solution would be to use a cache of MethodHandles. However, ListenerAdapter was never meant to be an efficient solution. You can use EventListener if you want the best and most efficient implementation.

I suppose this is more of a feature request/enhancement than a bug report, just wasn't sure what to set it as.

The correct solution would be to use a cache of MethodHandles.

I am not too familiar with MethodHandles, I am sure there are better ways to do it, this was just an example of how it could be done.

ListenerAdapter was never meant to be an efficient solution.

I do get that ListenerAdapter wasn't meant to be an efficient solution but making it 70x slower than what it was before seems ridiculous, that would cause massive performance hits for larger bots that utilize ListenerAdapter when updating JDA, probably without them evening knowing what specifically caused it right away. I don't think shrugging it off as intended is the proper way to go about it.

The changes to ListenerAdapter make it more convenient for maintaining it. A complex chain of if/else was not a good solution and caused a lot of unnecessary complexity for a class that was never meant to be efficient. ListenerAdapter was always a trade to get more convenience for worse performance and that trade has not changed. It is now even more convenient, including maintenance for future events, but a bit less efficient.
If you want performance rather than convenience, use the alternative.

The changes to ListenerAdapter make it more convenient for maintaining it. A complex chain of if/else was not a good solution and caused a lot of unnecessary complexity for a class that was never meant to be efficient.

I do get this and completely understand the change, I am not proposing you revert it, I proposed a straightforward solution to the performance problem which makes it nearly as fast as the if/else chain.
My proposed solution doesn't affect the maintainability of this at all, so am a little confused why this is brought up, it is simply an improvement to the new system.

And I've proposed an even better solution already. I'm merely telling you that a bot of this scale should not be using this class in the first place.

The big problem in the room that hasn't been addressed by your solution is concurrency. Events can happen on more than one thread and so the onEvent method has to be capable of concurrency. A ConcurrentMap could work but would introduce additional CPU overhead and memory overhead. Synchronization would introduce a new lock that can potentially deadlock the bot and slows it down.


ANSI.erase erases the wrong side

The erase function states that it erases to the left of the cursor, but the escape code it returns uses the value for erasing to the right of the cursor.
fun erase(): String =>
    """
    Erases everything to the left of the cursor on the line the cursor is on.
    """
    "\x1B[0K"

Here's the definition of the erase in line escape code.

Code
Abbr
Name
Effect

CSI n K
EL
Erase in Line
Erases part of the line. If n is 0 (or missing), clear from cursor to the end of the line. If n is 1, clear from cursor to beginning of the line. If n is 2, clear entire line.  Cursor position does not change.

Here's an example showing that it erases to the right of the cursor.
use "term"

actor Main
  new create(env: Env) =>
    env.out.print(ANSI.clear() + "12345678901234567890" + ANSI.cursor(10, 1) + ANSI.erase())

This seems like a fairly straightforward bug. Anyone who wants to can open a PR to correct the incorrect code. I don't think this requires additional discussion.


FR: add strings from latest

Adds:

New tutorial strings
Inventory saving strings
Metric system strings
Avatar creator strings

CI is failing because of ZH-CN, RU, KO, JA, FI and DE locales.

Thank you, merging to clean up the mess here.


Extraneous p-tag around shortcodes

What version of Hugo are you using (hugo version)?

$ hugo version
Hugo Static Site Generator v0.71.1 linux/amd64 BuildDate: unknown

Does this issue reproduce with the latest release?
Yes
Setup
A single page is calling a sequence of shortcodes
The plugin structure has the baseof file which wraps ul-tags around the content. The content is a series of shortcodes resulting in series of li-tags.
Expected resulting code:
<!DOCTYPE HTML>

Item1

Item2

Actual resulting code:
<!DOCTYPE HTML>

Item1

Item2

Full test case
For whatever reason GitHub refused to upload either .gz or .zip, so the test case is uploaded to the repository https://github.com/didenko/hugo_test_case_extra_p

The combined output will be wrapped in a
 tag if you do this:
{{< item text="Item1" >}}
{{< item text="Item2" >}}

Neither the combined output nor the individual ouput will be wrapped in a
 tag if you do this:
{{< item text="Item1" >}}

{{< item text="Item2" >}}

I've run into this before. The fact that you are wrapping
 tags with a
 tag is irrelevant. You can reproduce the behavior with shortcodes that render text only.
Is this a bug or a feature? In some cases I have taken advantage of the behavior, in others I have had to add a blank line between the calls in order to achieve the desired output.
The question has come up before:
https://github.com/gohugoio/hugo/issues/1642
https://discourse.gohugo.io/t/5559

Thank you, I see the behavior - really appreciate the pointer.
Useful of not, feels very counterintuitive.


Add support for adapterOptions to queryURL

I've added support for adapterOptions, custom options that can be passed along to the adapter, to the queryURL method. This matches the behavior of other Ember Store methods, like the ones provided by the REST adapter.

thanks @loganrosen !


⚠ PrivateHD has degraded performance

In 89dc01e, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 2187 ms

Resolved: PrivateHD performance has improved in 2c70858.


fix email link rendering bug

Details
Fix email link rendering bug.
Fixed Issues
Fixes https://github.com/Expensify/Expensify.cash/issues/990
Tests
Please test any emails.  Ex<EMAIL_ADDRESS>Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots

Web

Mobile Web

Desktop

iOS

Android

@nicodev-git Please provide screenshots on each platform to verify that the fix works as expected on all platforms.

Thanks for the work so far @nicodev-git, but I'm going to close this PR and ask you to move the relevant changes to https://github.com/Expensify/expensify-common