Correct batch size ?

Hello @jwyang ! thanks for the great work ! I was looking at the log for FocalNet-S and the BATCH_SIZE is set to 32.
However, you mention that BATCH_SIZE should be 128 in the classification guide.
Which one should be ?
Also, how many nodes/GPUs are used to train this model ?

Hi, @achen46 , thanks for your interest. We used batch size=1024 for training as mentioned in our paper but used 1GPU batch size=128 for measuring the throughput.


Can't get on Minecraft

The latest version of the mod wont let me get on Minecraft.

Nope, the mod is marked as 1.19.3

Latest only supports that, if you need 1.19.2, go older


use breakpoint observer instead of window

This PR uses BreakpointObserver to determine the initial showType instead of window

@nartc
There's some conflicting files 😅


Does not connect to Ccs on first run

Original issue: https://charm.cs.illinois.edu/redmine/issues/448

When running Charmdebug for the first time for a simple hello application it prints the following error:
$ bin/charmdebug
Loading preference file /dcsdata/home/mprobson/.cpdrc
start class // These start and ends are repeated
end class
start int
start array
end array
end int
DISPLAY variable = <IP_ADDRESS>:0.0
ParDebug> /dcsdata/home/mprobson/charm/my/hello-mem-test/charmrun +p1 /dcsdata/home/mprobson/charm/my/hello-mem-test/hello   +cpd +DebugDisplay <IP_ADDRESS>:0.0 ++server +DebugSuspend
ServThread started
ParDebug> Charmrun started (CCS IP <IP_ADDRESS>, port 59514)
Parallel program printed: ccs: 2
ccs: Server IP = <IP_ADDRESS>, Server port = 59514 $
Connecting to: <IP_ADDRESS>:59514
Parallel program printed: Converse -memory mode: charmdebug
Charmrun> started all node programs in 1.318 seconds.
Parallel program printed: slot size 56
Converse/Charm++ Commit ID: v6.6.0-rc2-28-ga31a88d
Parallel program printed: Charm++> scheduler running in netpoll mode.
Parallel program printed: CharmLB> Load balancer assumes all CPUs are same.
Parallel program printed: Charm++> Running on 1 unique compute nodes (8-way SMP).
Parallel program printed: Charm++> cpu topology info is gathered in 0.004 seconds.
Parallel program printed: Hello World
0
ServThread terminated
Finished running parallel program
java.net.SocketException: Connection reset by peer
// then a really long exception trace
Network error connecting to PE 0 to perform debug/converse/arch
Error while starting the application (error: java.lang.NullPointerException. Aborting...
java.lang.NullPointerException
// another really long exception trace
Starting generation new list<PHONE_NUMBER>115
Ended generation new list<PHONE_NUMBER>116

Original date: 2014-04-11 20:57:44

Please triage and/or reassign appropriately

Original author: Xiang Ni
Original date: 2015-02-19 19:44:59

In the earlier commit 117cc7fd26d7defa01b41492bfd4e7ec0b172518 to make liveViz working with failure, I set a SocketTimeoutException. However, the connection to charmdebug could be longer than that, thus causing the connection issue. I think we should revert that commit, the FT related changes could go to a separate branch? It can be tricky to find an ideal timeout value that satisfy both purposes.

Original author: Xiang Ni
Original date: 2015-02-19 21:28:43

Reverted the faulty commit and verified that the connection error no longer shows up.


Add goreleaser

Add .goreleaser.yaml
Add GitHub Action for goreleaser

Codecov Report

Merging #70 (b628d6a) into master (7c416e1) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #70   +/-   ##
=======================================
  Coverage   82.23%   82.23%
=======================================
  Files          11       11
  Lines         529      529
=======================================
  Hits          435      435
  Misses         90       90
  Partials        4        4

Continue to review full report at Codecov.

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


Fix non-standard OAuth - Allow content_type to be specified for OAuth1

Allow the content type to be overridden for the OAuth1 flow as described in Fix non-standard OAuth.
This seemed to be only active for OAuth2.

Any use case?


Training Time

Hi @AnTao97
Thank you for the great work! I wonder what the training time on the task of part segmentation with the default setting (4 GPUs, batch size is 32), for the full dataset and with class choice? I really appreciate your help! Thank you!
Best,
Yongcheng

I'm sorry I forgot the exact training time. But I can be sure that the training time is less than one day.

Hi @AnTao97
Thank you for the quick response! I truly appreciate it.
Best,
Yongcheng


Inconsistent rendering of sidebar items

Have you read the Contributing Guidelines on issues?

[X] I have read the Contributing Guidelines on issues.

Prerequisites

[X] I'm using the latest version of Docusaurus.
[X] I have tried the npm run clear or yarn clear command.
[X] I have tried rm -rf node_modules yarn.lock package-lock.json and re-installing packages.
[X] I have tried creating a repro with https://new.docusaurus.io.
[X] I have read the console error message carefully (if applicable).

Description
Inline code using back ticks (`) in Headings render in Inconsistently in sidebars, specifically h1's. Left side nav renders the backticks.
Example:
# Tutorial Intro `code`

Let's discover **Docusaurus in less than 5 minutes**.

## Getting Started `Hello`

Currently working around this issue by using sidebar_label in front matter.
Reproducible demo
https://stackblitz.com/edit/github-lt39oq?file=docs%2Fintro.md
Steps to reproduce

scaffold new site with npx create-docusaurus@latest my-website classic
go to docs/intro.md and change heading to '# Tutorial Intro `code` '
see inconsistent rendering

Expected behavior
I would assume the left nav and breadcrumbs strip markdown syntax or render consistently .
Actual behavior
Inconsistent rendering.

Your environment

Public source code: N/A
Public site URL:N/A
Docusaurus version used: 2.1.0
Environment name and version (e.g. Chrome 89, Node.js 16.4): Chrome 104.0.5112.101
Operating system and version (e.g. Ubuntu 20.04.2 LTS): Mac OS 12.5.1

Self-service

[ ] I'd be willing to fix this bug myself.

This is working as intended. The sidebar title metadata is a simple string, not a JSX element—it's always statically extracted from content via a simple regex before the Markdown is even parsed. In order to render this, we would have to ship an ad-hoc Markdown parser to the client side, which doesn't seem worth it. TOC doesn't suffer from this, because it's generated on-the-spot during Markdown parsing, so it readily benefits from the already-parsed Markdown AST. Please use sidebar-title: Tutorial intro code to avoid rendering code at all—in general we don't support using typography in sidebar titles, pagination titles, breadcrumb titles, etc., because it would be a huge undertaking.

This makes sense. Thank you for the prompt response.


Move OpenMetrics to a neutral github organization

OpenMetrics has enough TOC sponsors to enter the sandbox, we need to move it to a new github organization... any idea on names given that https://github.com/openmetrics is taken ?

I am not opposed as such, but I don't see this requirement for GH, only for goverance and the like; can you link me to it, please? From what I can find, CNCF just requires admin access to the repo, which is not an issue; it makes most sense to add you, imo.
Orthogonal from that, I don't have a good name which would be free.

We require the repo to live in a neutral org (can't be under your name), I'm trying to find the language in the charter that makes this clear.
I have https://github.com/open-metrics and just make you an owner :)

Please do.
I also nagged OpenObservability, though that bites off more than I can currently chew.

friendly ping on the repo move

https://github.com/OpenObservability/OpenMetrics it is

As long as we have many (partially stale) issues, I expect this repo still to be used, but going forward and for PR etc, the new place is the place to be.


MasterDetail/ GridEditorbase : issue in Chrome browser

In Chrome the effective date is not loading ONload, When i update any item in the detail list, then it shows the effective dates for all rows.
In IE edge, it is working fine.

Recently i changed this

Recently i changed this JSEngine code. Is it because of this code change, the masterdetail not working?
private MsieJsEngine SetupJsEngine()
{
var jsEngine = new MsieJsEngine(new JsEngineSettings { EngineMode = JsEngineMode.ChakraIeJsRt, UseEcmaScript5Polyfill = true, UseJson2Library = true });
    try
    {
        var json2 = File.ReadAllText(projectDir + @"tools\JsEngine\json2.min.js");
        jsEngine.Evaluate(json2);

It has no relation. You didnt set includecolumns in masterdetailrelation.

But i have includecolumns attribute in masterdetailrelation. That why it shows the effective date in IE.  i tried transforming templates, rebuilding, clean solution, cleaning browser cache, restarting the visual studio.
After restarting the computer the next day, the issue is resolved automatically. So It might be because of some other reason which i couldnt figure it out

Thanks for your support

There is  a dot next to checkboX column in all the pages. The issue is only in Edge browser. In chrome it is working perfectly fine.
private rowSelection: Serenity.GridRowSelectionMixin;
protected createSlickGrid() {
var grid = super.createSlickGrid();
        // need to register this plugin for grouping or you'll have errors
        grid.registerPlugin(new Slick.Data.GroupItemMetadataProvider());

        return grid;
    }
    protected createToolbarExtensions() {
        super.createToolbarExtensions();
        this.rowSelection = new Serenity.GridRowSelectionMixin(this);
    }
    protected getColumns() {
        var columns = super.getColumns();
        columns.splice(0, 0, Serenity.GridRowSelectionMixin.createSelectColumn(() => this.rowSelection));
        return columns;
    }

I didnt change any code. It is same as in the samples.
Has anyone seen this kind of issue? Please help me resolving this

Do you have same dot in samples?

Yes.

I can't reproduce this. What is content of that dot in inspector?

When i change the checkbox style attribute height same as the row height, the dot disappeared.

But is this the correct solution for this problem?

By default right margin for check box is set as 3px.
when I set right margin as 0px for the checkbox column, then the dot disappears

Ok, i could see that in IE11. That thing is caused by text-overflow: ellipsis. Somehow, IE thinks there is a text overflow in checkbox column. If you make .select-item { width: 14px; } it disappears. You can do this workaround for now, and i'll probably increase default checkbox column width by 1px later.

Thanks for your support. :)


Multi-class models

DeepForest was primarily designed as 'tree' detector, with one class. I think it is useful to atleast allow users to train multi-class models.
Things to investigate

[x] allow multiple labels in the dataset.py
[x] have a lookup dict for multiple labels when visualizing
[x] Add multiple colors for each class
[x] Make sure that evaluation statistics can report multiple classes
[x] Make a tutorial is reproducible data in colab
[x] Make sure that a reloaded model gets the same classes.

Its possible torch vision has already implemented all of this and just needs to be checked out. I do not yet know.

Decided against a separate colab tutorial.


Add fallback to get PF Name for AuxNetDevice

In case we fail to get Uplink Representor, fallback to get PF PCI address and use sysfs to get PF netdevice.
This is needed in case a device supports the creation of Auxiliary devices but is not in switchdev.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.08%) to 75.708%

Totals

Change from base Build<PHONE_NUMBER>:
0.08%

Covered Lines:
2032

Relevant Lines:
2684

💛  - Coveralls

@Eoghan1232 PTAL if you have some time.

/retest

CI issue not related to PR.
I have tested this one in my cluster. works well.


2d qz

I don't understand why this branch is still showing up with this many diffs from the main. PR #129 should have got the vast majority of changes into main. Don't know what's happening to git, so I'll close this PR now.


Change File class to use low level and vectored i/o functions

The motivation behind this is to improve performance to file i/o
operations. The C standard stdio functions do user space
buffering prior to sending the data to the OS kernel via a system
call. On most operating system, the OS kernel also does additional
buffering on top of the user level buffering by the C functions.
Unfortunately, if the C functions are buffering data, they prevent
the OS kernal from taking advantage of some potential performance
enhancements if they're available (namely Vectored I/O so the
OS can offload work to hardward and never has to combine multiple
user buffers into a single buffer for writing to disk).
The commit changes the File class to use low level i/o functions
that map to system calls on Linux and other posix based systems
and to C lib calls on Windows. On Posix based systems, the OS is
free to take advantage of performance offloading to hardware if
possible. On Windows, this change shouldn't have a negative
performance impact but doesn't give the same possible performance
benefits as on Posix based systems.
Other changes:

Enable _FILE_OFFSET_BITS=64 arg to compiler to ensure 32 bit
linux builds get large file support enabled.
Adds datasync to be able to call fdatasync instead of fsync
as it can be appropriate in some situations. On Windows, fsync
and fdatasync behave the same.
Adds queue and queuev functions that are analogous to
write and writev but queue/buffer data to be written
instead of writing the data immediately. Additionally,
these new functions provide the ability to interleave buffered
data writing and unbuffered data writing where unbuffered data
writing would force any buffered data to be written first.
Changes flush to flush any queued/buffered data to disk
because it is otherwise unnecessary since we're not buffering
data in the C library via stdio any longer.
A few additional tests have been added to validate things are
working correctly.

Future work:

Change queue/queuev to automatically flush data to disk once
the # of queued items exceeds IOV_MAX for a single system call.
Error handling in the File package might be possible to add now
including having the various functions throw error on things
that can't be recovered from.
Possibly switch to async/nonblocking i/o for file writing with an
actor as the intermediary (similar to the TCPConnection actor in
the net package).

This change was split from PR #1575 because the foreigntypes package addition requires additional discussion.

The following is a great explanation of why writev is worth it (from https://bytes.com/topic/python/answers/39551-writev) in reference to python:
writelines applies to a general Python file object. writev applies only
to C file descriptors. Writev can't replace writelines, after all it
makes no sense to cStringIO, gzip files for these are not valid C file
descriptors. Generally, writelines works fine.

Now why would you want to use writev? Optimization on the C side.

Understand that when you do file I/O you have to either:

a) Copy all of the strings to a new memory location
b) Call write over and over again

Sometimes, when you do b), userspace libraries (fwrite) will "optimize"
by buffering and doing a) for you. But you cannot escape the fact that
so long as your write parameter takes a single string for each
invocation, the underlying libraries are forced to choose between the
two options above.

Writev is the vector version of write. Whereas write accepts a single
pointer and length parameter, writev accepts a *list* of pointers and
size parameters. It represents a strategy c) -- just hand the list to
operating system

I want to include it because POSIX has a single OS call that
conceptually maps pretty closely to writelines. writev can be faster
because you don't have to do memory copies to buffer data in one place
for it -- the OS will do that, and can sometimes delegate that chore to
the underlying network or scsi card.

If you are still scratching your head, just think of writev as a C-file
descriptor only optimization of writelines that offloads the memory copy
cost of buffering to the OS in hopes that it can pass the buck to the
hardware (and IIRC, BSD does handle this correctly ... it has zero copy
network code, think about how cool it is to think that your network card
is going to traverse your list for you with a little help from the
writev function.)

I just pushed a change to add a test and fix a bug related to writev calls where the ByteSeqIter had more entries than the IOV_MAX for the system.
This change required getting the pointer to a specific element in an array. In order to get that offset as cleanly and safely as possible the change in commit 4178227a979a9c5f8f207407c251050e662564b0 was introduced. The commit message for the change is:

Prior to this change getting an offset for a pointer into an
array or a string required doing pointer arithmetic after
geting the pointer to the start. This is problematic because
in most cases we want the pointer to a specific entry in the
array or string. Doing pointer arithmetic to calculate the
pointer to a specific entry is non-trivial because it requires
one to know the size of each array entry in order to do the
pointer math correctly.
This change makes it easy and safe to get the pointer to a
specific entry by giving an optional offset argument to
cpointer in array and string and letting Pony handle
the appropriate pointer math prior to returning the pointer
to the appropriate element.

I don't believe this requires an rfc because it doesn't break the existing interface due to being able to default the new argument. However, if I'm wrong and this does require an rfc, please let me know and I'll follow the appropriate procedure.

@sylvanc I finally had a chance to verify the lseek64 vs lseek concern on linux. You were right. The Pony program was using lseek and not lseek64. Same with ftruncate/ftruncate64.
I've updated the code to use lseek64/ftruncate64 on linux.
Please let me know of any other issues or concerns that you might have prior to merging the changes.

Heh, my paranoia paid off for once :)


Swift 4 updates

Update project for xCode 9 and swift 4. Silence most deprivation warnings.

Awesome! I was just about to do the same PR. Thanks 🥇

@joncardasis Could you check this out when you have time?


[DOC] Move Gantt to subpage under Visualize

Signed-off-by: vagimeli<EMAIL_ADDRESS>Description
Move page to subpage under Visualize; this is a task related to the doc site restructuring initiative
Issues Resolved
#2210 2210
Checklist

[x] By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@Naarcha-AWS Will you confirm the front matter structure is correct? I'm moving this page as part of the TOC restructure. Thanks!

Closing this PR since the Gantt page is already under visualize.


Add version to cache key for chat and llm blocks

Description

This PR aims to improve the release process for structural changes and prevent regressions similar to the one introduced in #4895. The regression in #4895 missed an issue with the cache. For more details, please refer to the full context provided here.
We updated the ChatFunctionCall to include an id field. However, this new field was not marked as optional, leading to the inability to deserialize cached data from the cache table to the updated structure.
To prevent this issue from recurring, this PR:

Introduces a new trait called CachedRequest that must be implemented for every request to be cached. This trait includes:

A version that should be incremented whenever the types undergo changes.
A type that indicates the request type, which will be used to easily invalidate old rows.

Updates the cache table to add two new columns: version and type to ease removing legacy rows.

The version is included in the hash and will generate new cache objects automatically if altered. This will enable us to easily increase the version and ensure a seamless rollout if modifications are needed for the chat or LLM block.
Risk
When release all the cached objects will be outdated. We will be able to delete all rows from the cache table that don't contain any type and version. This PR remains safe to rollback.

Deploy Plan
This PR requires a migration to add the new type and version field on the cache table.
The following needs to be run:
ALTER TABLE cache
ADD COLUMN version INTEGER,
ADD COLUMN type TEXT;

Maybe we should insert in the cache table the type and cache_version so that we can clean up properly as we bump versions. But this is not urgent as we can simply delete everything this time around and the next few ones.

Yep I thought about adding the block type at least. I'll bake this change in this PR and add the right index so we can delete from the cache table.

Maybe we should insert in the cache table the type and cache_version so that we can clean up properly as we bump versions. But this is not urgent as we can simply delete everything this time around and the next few ones.

Yep I thought about adding the block type at least. I'll bake this change in this PR and add the right index so we can delete from the cache table.

@spolu PR updated using a trait. PR's description updated as well to reflect the latest changes. I'll add the necessary scripts to 1. delete the legacy rows and 2. delete rows for an older version in a follow up PR.

Exact deploy is

add tables to core
deploy core

Will test it locally and merge

Checked that the alter table is safe to run before deploying on my devbox

Fixed the migration that said request_type when we really wanted type :)

Deploying works well, cache is operational.

dust-api=> SELECT COUNT(*)F FROM cache WHERE version IS NULL;
    f
---------
 2948931
(1 row)

Nuking them all
DELETE FROM cache WHERE version IS NULL;

Thank you for shpping 🔥 !


GitHub Actions Runner Error: Failed to Load Docker Image Metadata During cog Push Command

Issue Description
When running cog push r8.im/aicapcut/${{ inputs.model_name }} from a GitHub Actions runner using Docker buildx, the following error occurs:
Error Message
#2 [internal] load metadata for r8.im/aicapcut/anima-pencil-v310:latest
#2 ERROR: r8.im/aicapcut/anima-pencil-v310:latest: not found
------
 > [internal] load metadata for r8.im/aicapcut/anima-pencil-v310:latest:
------
WARNING: No output specified with docker-container driver. Build result will only remain in the build cache. To push result image into registry use --push or to load image into docker use --load
Dockerfile:1
--------------------
   1 | >>> FROM r8.im/aicapcut/anima-pencil-v310
--------------------
ERROR: failed to solve: r8.im/aicapcut/anima-pencil-v310: failed to resolve source metadata for r8.im/aicapcut/anima-pencil-v310

Duplicate of https://github.com/replicate/cog/issues/1631

This is fixed in https://github.com/replicate/cog/releases/tag/v0.9.8


dist/redhat: s/jre-8-headless/jre-11-headless/

in order to tighten the runtime dependencies on different platforms and different components, also, it is better to use a newer and better supported jre, let's use jre-11 in the rpm packaging as well. we build rpm and deb from the same tarball. and we build for both jre-8 and jre-11, so it should be safe to use jre-11 as the dependency on rpm based distros.

Submodule update: 935065fd8ddf359b8b22b92e025c16e24c362a24


Fixed "UnicodeEncodeError"

added .encode to char to fix UnicodeEncodeError throwed from example data.
Using provided example data, make training threw "UnicodeEncodeError: 'ascii' codec can't encode character '\xcf' in position 0: ordinal not in range(128)"

Could it be that this problem only occurs with Python 3.6, but not with Python 3.7? I recently noticed it, too, but only on Ubuntu Bionic with Python 3.6, not on Debian Buster with Python 3.7.

It now no longer throws UnicodeEncodeError, but did you have a look on the generated files? In my test, they look like this:
b'N' 0 0 2074 136 0
b'e' 0 0 2074 136 0
b'c' 0 0 2074 136 0

function encode() return bytes and no string, so IMO this is not correct fix.

function encode() return bytes and no string, so IMO this is not correct fix.

It fixed the issue for me

How did your .box files look like after that fix?

How did your .box files look like after that fix?

This is an example box
b'i' 0 0 976 47 0 b'c' 0 0 976 47 0 b'h' 0 0 976 47 0 b' ' 0 0 976 47 0 b'd' 0 0 976 47 0 b'e' 0 0 976 47 0

Your result:
b'i' 0 0 976 47 0
b'c' 0 0 976 47 0
b'h' 0 0 976 47 0
b' ' 0 0 976 47 0
b'd' 0 0 976 47 0
b'e' 0 0 976 47 0

Correct result:
i 0 0 976 47 0
c 0 0 976 47 0
h 0 0 976 47 0
  0 0 976 47 0
d 0 0 976 47 0
e 0 0 976 47 0

@mikylucky, I just added a different fix to Git master. Please try that.

@mikylucky, I just added a different fix to Git master. Please try that.

Works like a charm!


How to solve this too few arguments problem?

I try to run the example codes out-of-configure with<EMAIL_ADDRESS>try to use the command go build . to generate the app, but I find an error:
../../go/pkg/mod/k8s.io/client-go@v11.0.1-0.20190606204521-b8faab9c5193+incompatible/rest/request.go:598:31:
not enough arguments in call to watch.NewStreamWatcher
have (*versioned.Decoder)
want (watch.Decoder, watch.Reporter)

By default, go-mod is getting "latest", which is "v11+incompatible".  Whoever named that tag knew "latest" wasn't going to work.
I dialed back my versions to 0.x.y to fall under my kubernetes version 1.x.y.
Since my k8s version is 1.16.2, I did:
go get<EMAIL_ADDRESS>go get<EMAIL_ADDRESS>

this is a duplicate of https://github.com/kubernetes/client-go/issues/691#issuecomment-535426503
The solution is to ensure you are using matching levels of k8s.io/{client-go,api,apimachinery} in your go.mod file, e.g.:
require (
  k8s.io/api v0.17.3
  k8s.io/apimachinery v0.17.3
  k8s.io/client-go v0.17.3
)


Website: only update a project shown version if it's a higher semver

versionObj is used to store the current version of a lib
ie. the one shown when looking at it http://lib.haxe.org/p/haxelib_client
It's not the same as the one selected by the client as latest which uses semver.
Currently if you upload a patch to an old version it'll overwrite versionObj.

This makes me wonder, maybe we should get rid of versionObj and curversion, and make it consistently search for the latests one...

Currently CI is failed due to this change. I can reproduce the test failure locally. Investigating.


ok but

why do the head switching move itself when resizing the heights

I myself have not yet decided on this point.
There is a problem that I still cannot guarantee that the switching head will be in the right place on the bottom.
Therefore, the Head switch move speed slider has been added. They can achieve the desired position of the switching head and leave it in the zero position.
Can you describe how you would be comfortable working with this?

They can achieve the desired position of the switching head and leave it in the zero position.

if the height is more than 480 they can't zoom out the preview without changing the height

So far, I can not guarantee to set a certain position of the head switching.
So far, I can only adjust the travel speed.
Therefore, a workaround is to select the required position by changing the speed and clicking on the 🔄 button.
After setting the desired location, make the speed equal to zero, then the head switching will go there.


Doesn't work with suiteName UserDefaults

I want to be able to use @CloudStorage with an extra parameter store where I can specify the UserDefaults store. For example, I can write
@AppStorage("myKey", store: UserDefaults(suiteName: "com.myName")) var userPreference = Color.red

I really want @CloudStorage to have this functionality, too!

This library uses NSUbiquitousKeyValueStore , which does not support suiteName.
Can you explain what functionality you'd want to have?

Some user preferences are stored in UserDefaults, which are also shared with the app's widget. I'm using @AppStorage with store parameter to achieve that. I want to be able to save these preferences to iCloud, too. Your implementation works for the main app, but the data is no longer shared with the widget due to NSUbiquitousKeyValueStore limitations.. I hope this makes sense!

You can configure your widget to use the NSUbiquitousKeyValueStore from the main app by setting the om.apple.developer.ubiquity-kvstore-identifier value in the entitlements of the Widget.
See: Configuring Common Key-Value Storage for Multiple Apps
If your main app uses the default $(TeamIdentifierPrefix)$(CFBundleIdentifier), in de widget entitlements you can set $(TeamIdentifierPrefix)com.example.YourMainApp

This makes sense, thank you!


this type in constructor

TypeScript Version: 2.8.0-dev.20180308
Code
class Node {
    constructor(readonly next?: this) {}
}
class SubNode extends Node {
    constructor(readonly value: number, next?: this) {
        super(next);
    }
}
new SubNode(0, new SubNode(1));

Expected behavior:
No error.
Actual behavior:
this type not available in a constructor. I don't know how hard that would be to implement and didn't see an issue for it.
It can be worked around like so:
export class Node {
    readonly next?: this;
    // Protected as it's not type-safe
    protected constructor(next?: Node) {
        this.next = next as this;
    }
}
class SubNode extends Node {
    static nu(value: number, next?: SubNode) {
        return new SubNode(value, next);
    }
    private constructor(readonly value: number, next?: SubNode) {
        super(next);
    }
}
SubNode.nu(0, SubNode.nu(1));

duplicate of https://github.com/Microsoft/TypeScript/issues/5863


Migrate to database

Currently this is out of scope but is worth discussing as we find areas where moving away from s3 for data storage will improve performance and maintainability.  The obvious solution is to move to a NoSQL database to follow the currently data storage schemas

@localjo has proposed a GraphQL API and this seems like it could be a good solution based on the structure and relationships represented in MapCampaigners data.


Multi Arch Image

Hello,
There is an image for arm64 and one for x64, wouldn't it be possible to build a multiarch manifest to enable nfs-client in multi arch environment ?
Regards,

It seems like multiarch/alpine has arm64 images and https://github.com/kubernetes-incubator/external-storage/pull/1296/files is open switching to multiarch/alpine. That's still only for arm7 though, another builder would be needed for arm64

Thanks for reporting the issue!
This repo is no longer being maintained and we are in the process of archiving this repo. Please see https://github.com/kubernetes/org/issues/1563 for more details.
If your issue relates to nfs provisioners, please create a new issue in https://github.com/kubernetes-sigs/nfs-ganesha-server-and-external-provisioner or https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.
Going to close this issue in order to archive this repo. Apologies for the churn and thanks for your patience! :pray:


Adding vnet table to the pipeline

ENI table drives vnet-id for the VNET table as specified in the GNMI
schema
Route lookup drives destination vnet-id for the VNET table lookup
Removing redundant eni_to_vni table

Please resolve conflicts

@marian-pritsak hitting SAI lint error with this change:
ERROR: unknown object type 'SAI_OBJECT_TYPE_VNET' on SAI_ENI_ATTR_VNET_ID ERROR: unknown object type 'SAI_OBJECT_TYPE_VNET' on SAI_OUTBOUND_ROUTING_ENTRY_ATTR_VNET_ID
The object type is generated as SAI_OBJECT_TYPE_OUTBOUND_VNET. We need the autogen changes from https://github.com/Azure/DASH/pull/152/files and add an exception for this table

@vijasrin Please resolve conflicts

@marian-pritsak Fixed conflicts and added vnet table create/del to the tests

[14:59:50.290] [bmv2] [D] [thread 27] Entry 0 added to table 'dash_ingress.outbound.vnet|dash_vnet'
[14:59:50.290] [bmv2] [D] [thread 27] Dumping entry 0
Match key:
* meta.vnet_id:vnet_id: EXACT     0003
Action entry: dash_ingress.outbound.set_vnet_attrs - 90000,

Pending API approval https://github.com/opencomputeproject/SAI/pull/1562


xds: Relax the CHECK on factories for typed per-filter config

Commit Message: xds: Relax the CHECK on factories for typed per-filter config
Additional Description:
Currently, if typed per-filter config includes an unknown filter, the exception will be raised. This PR aims to relax the check. A new runtime flag envoy.reloadable_features.ignore_check_unknown_typed_per_filter_config_factory is added, the default value is true. When it is true and unknown filter received from the rds API, instead of rejecting the update,  a warning log will be emitted and increases a new counter unknown_per_filter_typed_config_factory's value.
Risk Level: low
Testing: unit tests and integration tests are added
Docs Changes:
Release Notes: add a note as a new feature
Runtime guard: "envoy.reloadable_features.ignore_check_unknown_typed_per_filter_config_factory"
Fixes #15770

/wait
I missed this comment, looks like people want to make filter as an optional https://github.com/envoyproxy/envoy/issues/15770#issuecomment-811108002

@dmitri-d for first pass review.

I still think that skipping over unknown configurations has a potential to make filter chains brittle, and I feel that debugging resulting filter chain configuration problems could be difficult too. I think that only supporting disabling of filters marked "optional" (see comment here: https://github.com/envoyproxy/envoy/issues/15770#issuecomment-811108002) would help.

I still think that skipping over unknown configurations has a potential to make filter chains brittle, and I feel that debugging resulting filter chain configuration problems could be difficult too. I think that only supporting disabling of filters marked "optional" (see comment here: #15770 (comment)) would help.

Yea, I got it, let me check with Mark if he need any help. :)


Pods sometimes get stuck in Terminating state.

Very rarely, when deleting a Pod, it gets stuck forever in Terminating state.
When it happens, the kubelet and the kernel get stuck in an endless loop of the following errors:
Sep 14 17:16:43 vk-prod4-node-v175-z0jf kubelet[7031]: 2017-09-14 17:16:43.037 [INFO][32369] calico.go 312: Extracted identifiers Node="vk-prod4-node-v175-z0jf" Orchestrator="k8s" Workload="nginx-ingress.nginx-ingress-3585766022-fbmh8"
Sep 14 17:16:43 vk-prod4-node-v175-z0jf kubelet[7031]: 2017-09-14 17:16:43.037 [INFO][32369] utils.go 250: Configured environment: [PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin KUBELET_EXTRA_ARGS=--cloud-provider=gce --cloud-config=/etc/kubernetes/cloud-config
Sep 14 17:16:43 vk-prod4-node-v175-z0jf kubelet[7031]: 2FzydBawC2He5eYRgx8NxDHrF4rC6ODi9OvOAVcsV5yLXIkshS4yWBX7OO5PVIp7kpypqRTEwuQ9w]
Sep 14 17:16:43 vk-prod4-node-v175-z0jf kubelet[7031]: 2017-09-14 17:16:43.037 [INFO][32369] client.go 202: Loading config from environment
Sep 14 17:16:43 vk-prod4-node-v175-z0jf kubelet[7031]: Calico CNI releasing IP address
Sep 14 17:16:43 vk-prod4-node-v175-z0jf kubelet[7031]: 2017-09-14 17:16:43.048 [INFO][32369] utils.go 94: Using a dummy podCidr to release the IP Workload="nginx-ingress.nginx-ingress-3585766022-fbmh8" podCidr="<IP_ADDRESS>/0"
Sep 14 17:16:43 vk-prod4-node-v175-z0jf kubelet[7031]: Calico CNI deleting device in netns /proc/16673/ns/net
Sep 14 17:16:44 vk-prod4-node-v175-z0jf ntpd[1958]: Deleting interface #345 cali9613ee578f4, fe80::1479:b8ff:fe28:c627%1568#123, interface stats: received=0, sent=0, dropped=0, active_time=608310 secs
Sep 14 17:16:50 vk-prod4-node-v175-z0jf kubelet[7031]: W0914 17:16:50.432478    7031 prober.go:98] No ref for container "docker://5289e32db5286329f9551b8ee5da340735e976e745155c7a53a083234608c075" (nginx-ingress-3585766022-fbmh8_nginx-ingress(2360ebc1-93e8-11e7-9a1b-42010a84000a):ng
Sep 14 17:16:53 vk-prod4-node-v175-z0jf kernel: unregister_netdevice: waiting for eth0 to become free. Usage count = 2
Sep 14 17:17:00 vk-prod4-node-v175-z0jf kubelet[7031]: W0914 17:17:00.431273    7031 prober.go:98] No ref for container "docker://5289e32db5286329f9551b8ee5da340735e976e745155c7a53a083234608c075" (nginx-ingress-3585766022-fbmh8_nginx-ingress(2360ebc1-93e8-11e7-9a1b-42010a84000a):ng
Sep 14 17:17:03 vk-prod4-node-v175-z0jf kernel: unregister_netdevice: waiting for eth0 to become free. Usage count = 2
Sep 14 17:17:10 vk-prod4-node-v175-z0jf kubelet[7031]: W0914 17:17:10.431339    7031 prober.go:98] No ref for container "docker://5289e32db5286329f9551b8ee5da340735e976e745155c7a53a083234608c075" (nginx-ingress-3585766022-fbmh8_nginx-ingress(2360ebc1-93e8-11e7-9a1b-42010a84000a):ng
Sep 14 17:17:13 vk-prod4-node-v175-z0jf kernel: unregister_netdevice: waiting for eth0 to become free. Usage count = 2
Sep 14 17:17:20 vk-prod4-node-v175-z0jf kubelet[7031]: W0914 17:17:20.431517    7031 prober.go:98] No ref for container "docker://5289e32db5286329f9551b8ee5da340735e976e745155c7a53a083234608c075" (nginx-ingress-3585766022-fbmh8_nginx-ingress(2360ebc1-93e8-11e7-9a1b-42010a84000a):ng
Sep 14 17:17:23 vk-prod4-node-v175-z0jf kernel: unregister_netdevice: waiting for eth0 to become free. Usage count = 2
Sep 14 17:17:30 vk-prod4-node-v175-z0jf kubelet[7031]: W0914 17:17:30.431500    7031 prober.go:98] No ref for container "docker://5289e32db5286329f9551b8ee5da340735e976e745155c7a53a083234608c075" (nginx-ingress-3585766022-fbmh8_nginx-ingress(2360ebc1-93e8-11e7-9a1b-42010a84000a):ng
Sep 14 17:17:34 vk-prod4-node-v175-z0jf kernel: unregister_netdevice: waiting for eth0 to become free. Usage count = 2
Sep 14 17:17:40 vk-prod4-node-v175-z0jf kubelet[7031]: W0914 17:17:40.431483    7031 prober.go:98] No ref for container "docker://5289e32db5286329f9551b8ee5da340735e976e745155c7a53a083234608c075" (nginx-ingress-3585766022-fbmh8_nginx-ingress(2360ebc1-93e8-11e7-9a1b-42010a84000a):ng
Sep 14 17:17:44 vk-prod4-node-v175-z0jf kernel: unregister_netdevice: waiting for eth0 to become free. Usage count = 2
Sep 14 17:17:50 vk-prod4-node-v175-z0jf kubelet[7031]: W0914 17:17:50.431396    7031 prober.go:98] No ref for container "docker://5289e32db5286329f9551b8ee5da340735e976e745155c7a53a083234608c075" (nginx-ingress-3585766022-fbmh8_nginx-ingress(2360ebc1-93e8-11e7-9a1b-42010a84000a):ng
Sep 14 17:17:54 vk-prod4-node-v175-z0jf kernel: unregister_netdevice: waiting for eth0 to become free. Usage count = 2
Sep 14 17:18:00 vk-prod4-node-v175-z0jf kubelet[7031]: W0914 17:18:00.431443    7031 prober.go:98] No ref for container "docker://5289e32db5286329f9551b8ee5da340735e976e745155c7a53a083234608c075" (nginx-ingress-3585766022-fbmh8_nginx-ingress(2360ebc1-93e8-11e7-9a1b-42010a84000a):ng
Sep 14 17:18:04 vk-prod4-node-v175-z0jf kernel: unregister_netdevice: waiting for eth0 to become free. Usage count = 2
Sep 14 17:18:10 vk-prod4-node-v175-z0jf kubelet[7031]: W0914 17:18:10.438898    7031 prober.go:98] No ref for container "docker://5289e32db5286329f9551b8ee5da340735e976e745155c7a53a083234608c075" (nginx-ingress-3585766022-fbmh8_nginx-ingress(2360ebc1-93e8-11e7-9a1b-42010a84000a):ng
Sep 14 17:18:14 vk-prod4-node-v175-z0jf kernel: unregister_netdevice: waiting for eth0 to become free. Usage count = 2
Sep 14 17:18:20 vk-prod4-node-v175-z0jf kubelet[7031]: W0914 17:18:20.431436    7031 prober.go:98] No ref for container "docker://5289e32db5286329f9551b8ee5da340735e976e745155c7a53a083234608c075" (nginx-ingress-3585766022-fbmh8_nginx-ingress(2360ebc1-93e8-11e7-9a1b-42010a84000a):ng

When this happens, the pod Docker containers are gone, but the "pause" container is still there. Running docker inspect on it gives this: https://gist.github.com/Dirbaio/df30fa318327270036d3b02779dd2fa8
The caliXXX interface, and the iptables for it are gone.
This is maybe related to the fact that the container is killed ungracefully -- I'm not 100% sure but I think I've only seen this on ungraceful shutdowns.
I've first seen this sporadically for ~6 months already.
Expected Behavior
Pods get deleted successfully
Current Behavior
Pods sometimes get stuck forever in Terminating state.
Possible Solution
The stuck pods don't go away until I reboot the affected node.
Steps to Reproduce (for bugs)

Deploy some pods
Delete them (manually, or through updating a Deployment or something)
Sometimes they get stuck deleting.

Your Environment

Calico version: quay.io/calico/node:v2.4.0 (but it also happens with earlier versions.)
Orchestrator version (e.g. kubernetes, mesos, rkt): k8s. Affects both 1.5.2 and 1.7.5
Operating System and version: Ubuntu 16.04, kernel 4.10.0-32-generic
Cloud: GCE

Sep 14 17:16:43 vk-prod4-node-v175-z0jf kubelet[7031]: Calico CNI deleting device in netns /proc/16673/ns/net

Looks like we're hitting this teardown code and it appears to be returning successfully.  I also don't see any log indicating the CNI plugin returned an error.
It's not obvious to me that this is a Calico issue from the logs above (though that doesn't mean it isn't!).
The "no ref for container" log appears to be coming from the Liveness/Readiness probing code, which seems odd and potentially unrelated, unless perhaps the kubelet is attempting to perform a check on a non-existent container for some reason?

This could be related to?
https://github.com/moby/moby/issues/5618

And I believe the kubelet used to set the bridge as promiscuous to avoid the race condition but that changed with K8S 1.7
See this fix in flynn https://github.com/flynn/flynn/pull/4089/files

@Dirbaio @tobad357 This does indeed look to be related to moby/moby#5618. I've done a bit of digging around and it seems this has been an outstanding issue for at least a couple years, with several attempts to fix it in the kernel, see torvalds/linux@f647821, torvalds/linux@b7c8487, and torvalds/linux@d747a7a. At the moment there doesn't seem to be a valid work around aside from restarting the Node.
I'm not sure the fix in Flynn is actually the correct fix (or at least the issue seems to be present in k8s 1.5 and 1.6 from some of my digging) as @Dirbaio also saw this in k8s 1.5.2.

@heschlie the unqualified feeling I get is that if is a number of race conditions in the kernel related to device teardown some of the fixes have probably mitigated some causes but others are still there. For us K8S 1.6 was rock solid even in a CD/CI env with a lot of pod deletions but 1.7 we can hit it quite regularly.
We have now updated our Centos 7.4 servers to kernel version 4.13 after some promising tests on one node and will see if it helps us

@Dirbaio would you be able to try out a later kernel and see if it reduces (or hopefully stops) these occurrences? As @tobad357 said it is likely that these patches have reduced these issues over time, it does look like 4.13 is the latest stable.

@heschlie we have upgraded our cluster to 4.13 and been running for a week without issues
I will update here in a couple of weeks with results

Sorry to say we hit the issue again but not as frequent as in the past
Think the only way is to wait for more kernel versions and hope more issues have been fixed

Closing this issue as it does not seem like a Calico related problem. Feel free to re-open if you believe this to be in error.

@heschlie It may be related to calico after all, please take a look at comment:
https://github.com/kubernetes/kubernetes/issues/45419#issuecomment-405168344

Please look at this: https://pingcap.com/blog/try-to-fix-two-linux-kernel-bugs-while-testing-tidb-operator-in-k8s/

@ethercflow solution to solve this problem is to patch a kernel?

@miry Sorry to be so late, we found the patch is the solution.

@ethercflow Do you know when this patch will be merged?


Version 1.0.10

Landed in https://github.com/metarhia/metadomain/commit/66820f8cb154a615c53846b37db5619199b0da1c


Reduce question text font size in review mode.

IMPORTANT: All PRs must be linked to an issue (except for extremely trivial and straightforward changes).
Fixes #1716
Description
Issue : Question text font style of edit mode get applied to the question text in review mode.
Fix : Created separate header item view for review mode so that title medium text style can be applied.
Also do not show the help button in the review mode.
Alternative(s) considered
Have you considered any alternatives? And if so, why have you chosen the approach in this PR?
Type
Choose one: Feature
Screenshots (if applicable)
Checklist

[x] I have read and acknowledged the Code of conduct.
[x] I have read the Contributing page.
[x] I have signed the Google Individual CLA, or I am covered by my company's Corporate CLA.
[x] I have discussed my proposed solution with code owners in the linked issue(s) and we have agreed upon the general approach.
[x] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the style guide of this project.
[x] I have run ./gradlew check and ./gradlew connectedCheck to test my changes locally.
[x] I have built and run the demo app(s) to verify my change fixes the issue and/or does not break the demo app(s).

@shelaghm

@shelaghm

@santosh-pingle Great! Can you check the red text color? It looks too light, it should be #B3261E

Addressing review comments, thanks!


fix: ORDER BY window definition should work on null literal

Which issue does this PR close?

Closes #.
Rationale for this change

A small follow up to #8419. In coerce_window_frame, if first literal is Null, it returns an error "Cannot run range queries ...".
What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

Thank you @alamb


[Target] Improve string interpretation in Target creation

SplitString now preserves escape sequences, but still observes quote characters.
Added function Interpret that transforms given string according to interpretation rules:

outermost quotes are removed (if present),
escape sequences inside quotes are preserved verbatim,
unquoted escape sequences produce the escaped character (the escape character (\) is removed.

Interpretation happens every time a value of any type is to be parsed from a string, e.g. Array will first be parsed as an array, then substrings of the input will be parsed as individual elements of that array. In this case, some parts of the initial input will be parsed (and interpreted) twice.
Implement corresponding stringification functionality.

This new scheme enabled encoding nested arrays of string with any degree of nesting. For example
"-field='\\'foo0\\',\\'bar0,bar1\\'','\\'zing0,zing1\\',\\'fred\\''"

would correspond to the target kind attribute
Array<Array<Array<String>>>("field"))

and have the value
{ { {foo0}, {bar0, bar1} }, { {zing0, zing1}, {fred} } }

Short answer: no.
This came up when I was working on adding llvm-options to llvm target.  That is going to be Array<String>, but I wanted a robust way of embedding arbitrary strings as option values, so that we don't place any restrictions there.  So I thought about how to encode string within a string, etc, especially in a context of an array of strings.  This is the result.


changing phases should reset player priority

so players can use the pass priority action to indicate they're passing through phases

I think I implemented this?

TODO: everyone passing priority should skip to the next stopped phase


Factor out generic thread pool to vespajlib.

@havardpe PR
Refactor and fix shutdown bug.

looks good on this end, but missing the actual code...


Bugs: TinyWeb Connection Status & Coordinates

TinyWeb Example needs some rework.

Serial connection does not work unless another device has already opened the connection.

Connection status at top shows "Not connected", even when connection is technically established.

Coordinates do not update.
Does not display the current unit of measurement. (mm/in)

If possable it might be best to design TinyWeb to be a single widget loader. Where you can connect, to a selected widget.

Thanks for reporting this issue. There has been no changes over the past half year for the TinyWeb example, I will update the code to let it work again.
The initial purpose when developing the TinyWeb example is just to provide a demo for showing how to communicate with the server with a simple UI. I may not spend much time on refining the sample code, but it's welcome for everyone to update the code by their own or send PRs to make changes.


Fix build warnings

Docs Build status updates of commit b1ebefb:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-PullRequestMergeConflict] Cannot sync git repo to specified state. Please make sure the pull request is mergeable.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 632b2cf:
:warning: Validation status: warnings

File
Status
Preview URL
Details

api/Visio.EventList.AddAdvise.md
:warning:Warning
View
Details

api/Access.Attachment.md
:bulb:Suggestion
View
Details

api/Project.Application.TextStyles32Ex.md
:bulb:Suggestion
View
Details

Language/Concepts/Forms/tips-on-using-text-boxes.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/column-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/whatsthishelp-property.md
:white_check_mark:Succeeded
View

access/Concepts/Miscellaneous/ado-for-visual-c-plus-plus-syntax-index-with-import.md
:white_check_mark:Succeeded
View

access/Concepts/Miscellaneous/language-specific-properties-and-methods.md
:white_check_mark:Succeeded
View

access/Concepts/Miscellaneous/type-property-columnadox.md
:white_check_mark:Succeeded
View

access/Concepts/Structured-Query-Language/create-and-delete-tables-and-indexes-using-access-sql.md
:white_check_mark:Succeeded
View

access/Concepts/Structured-Query-Language/retrieve-records-using-access-sql.md
:white_check_mark:Succeeded
View

api/Access.AcImeSentenceMode.md
:white_check_mark:Succeeded
View

api/Access.Application.NewAccessProject.md
:white_check_mark:Succeeded
View

api/Access.ComboBox.KeyboardLanguage.md
:white_check_mark:Succeeded
View

api/Access.DoCmd.Hourglass.md
:white_check_mark:Succeeded
View

api/Access.DoCmd.TransferText.md
:white_check_mark:Succeeded
View

api/Access.NavigationControl.KeyboardLanguage.md
:white_check_mark:Succeeded
View

api/PowerPoint.Comment.md
:white_check_mark:Succeeded
View

api/Project.Application.ResetTPStyle.md
:white_check_mark:Succeeded
View

api/Visio.EventList.AddAdvise.md

Line 85, Column 1: [Warning-table-syntax-invalid] Table syntax is invalid. Ensure your table includes a header and is surrounded by empty lines.

api/Access.Attachment.md

Line 80, Column 2: [Suggestion-column-header-missing] Column headers are required for tables. Add appropriate header text, or remove any extra table cells that cause an extra column.

api/Project.Application.TextStyles32Ex.md

Line 44, Column 2: [Suggestion-column-header-missing] Column headers are required for tables. Add appropriate header text, or remove any extra table cells that cause an extra column.
Line 59, Column 2: [Suggestion-column-header-missing] Column headers are required for tables. Add appropriate header text, or remove any extra table cells that cause an extra column.
Line 72, Column 2: [Suggestion-column-header-missing] Column headers are required for tables. Add appropriate header text, or remove any extra table cells that cause an extra column.
Line 84, Column 2: [Suggestion-column-header-missing] Column headers are required for tables. Add appropriate header text, or remove any extra table cells that cause an extra column.
Line 94, Column 2: [Suggestion-column-header-missing] Column headers are required for tables. Add appropriate header text, or remove any extra table cells that cause an extra column.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Update README

Update README with further visualizations and data crunchers.

Sorry, yes. I will send a new PR.


Capitalize translation placeholders

Would you accept a PR that changed :attribute at the beginning of a sentence to :Attribute?
See https://github.com/laravel/framework/pull/11337 and https://github.com/laravel/framework/issues/11285 for details.
I'm personally only using sv, but I could maybe look into other languages as well.

Hello,
no problem


Discussion of alterations to generation of monster attacks.

This is for discussion of the proposed changes by @Girsi in #159.

Changed parameters in monsterattack:

type can now also be a spell attack
removed default values for dmg and dmgtype, since there can be attacks which do not deal damage (see Rug of Smothering)

New parameters in monsterattack:

minrange (e.g. "can't hit targets within 60 feet of it", see trebuchets)
dmgwhen (e.g. "in melee", can be combined with ordmgwhen "at range", see Bugbear)
ordmgtype (see Goblin Projectile from Storm King's Thunder. Default value is dmgtype)
hiteffect (e.g. "and the target must make ...". This could be done with extra but it felt somehow dirty to me.)
miss and hitormiss (full sentences)

Other changes:

\dnd@damage considers all possible (sensible) combinations i encountered so far.  For that I also changed the punctuation a bit. Now there shouldn't be any need to fudge in any commas from outside. On the other hand, all parameters which get one or more full sentences (extra, miss, hitormiss) require a full stop at the end.
The spell lists have been changed to look more like in the books.
Changed 1/10 CR to 1/16. It fits more into the pattern that way.

Open questions:

Should the distinction melee/ranged be seperate from weapon/spell?
monstermelee and monsterranged have not been adapted because of the point above. Also i would be fine with just monsterattack. That seems the simplest option at this point.
How to treat extra? In case a hit or hitormiss exists, should the extra part come after all of that? Or should it come directly after hit? In that case, should it be named hitextra (or something better)?
hiteffect and extra might be combined, but i like the distinction that hiteffect is never a full sentence, but extra is.
dmgtype should be the default value for ordmgtype, but somehow i couldn't get it working in the parameter list, so i used ifcommandkey.

Closing remarks:
I'm not well versed in LaTeX, so any feedback on that front is welcome. Also, this is my first contribution to an open source project. Hooray!

I like a lot of the ideas that @Girsi came up with but I am leery of hardcoding options that only support single edge cases (and leads to bloated macros). A user can always just explicitly code a single attack that does not conform to a supplied macro.
With that in mind, how can we incorporate some handling of edge cases in a way that is straightforward and keeps the code as simple as possible?

Spell Attacks - I can only think of the lich as a WotC monster that has a "melee spell attack". The branching logic of the rest of the attack does not change based on whether it is a spell or weapon attack. I could see this going one of two ways. If we are confidant that we will only have weapon or spell attacks (and can't think up something else), we could change the type enum (both*, melee, ranged) to something like distance and use type for (melee*, spell). Then we don't have duplication of the text determined by whether its melee, ranged, or both.

% Switch on range
% Both - choose weapon or spell text, display reach and range text
% Melee - choose weapon or spell text, display reach text
% Ranged - choose weapon or spell text, display range text.

If we aren't sure that the options here are a closed set of 2 (weapon and spell), then I would instead suggest we let the user overwrite the text used for the type of attack. Then for the lich's attack, the user would choose type=melee and type-text=Melee~Spell~Attack:, overriding the text that would normally be displayed.
2. min-range - This isn't used often but does have an established text pattern (trebuchet, ogre with goblin hucker). The text is normalized enough that min-range could just take a number and pass that on to a caption macro that takes a single parameter.
3. dmg and dmg-type no default values - I originally thought it might be nice to have a dagger if the macro is called with no parameters, but I like the handling of the damage here. No damage means we skip the entirety of the damage text on a hit.
4. hit-effect, miss, hit-or-miss - I think everything here should be handled by extra. Its purpose is to hold all the optional text that occurs after the damage and before the final full stop. Putting all of these other options in, while handling their individual situations well, looks like it is causing feature bloat. In the end, they do the same things as extra, and the user still has to type everything sans a comma or full stop.
5. CR 1/10 to 1/16 - originally I couldn't come up with a better idea than 1/10 to establish it as less than 1/8. The "10" was because it is worth 10 XP. Taking another look, I think that "0/10" might make more sense for "Challenge 0 (10 XP)". Another possibility that shouldn't affect too many people would be have "0" represent "0 (10 XP)" and "00" represent "0 (0 XP)". Either way, we should probably have a deprecated statement in the altered blocks to change it over as this option has been around for a while (and unlike calling the function directly, people might actually use the value by setting the key in the details macro).
6. Spell line spacing - The removal of \smallskip between spell lines looks good; good catch. The gap had been there because it is in the SRD stat blocks. Whether a small skip is included could be handled  by the the bg=print package option in the short term and by themes (i.e. D&D print vs SRD/printer friendly) in the long term.
7. or-dmg-type - I got rid of my physical copy of Storm King's Thunder when I moved, and the Roll20 version has separate attacks for the ogre with goblin hucker for with and without the spiked helmet. Would you be able to post the attack so I can see what it looks like? I think I can guess, but it would be nice to see it.
8. dmg-when - this seems like a very edge case caused by the bugbear's Brute trait. I think this is one of the cases where we are better served by having the user write up the full attack. The increased complexity does not seem worth it for something that will be used very rarely.
Maybe that is the primary decision point on whether we include something or not: how much it is actually going to get used vs how much it increases code complexity. There are many things here which we can include, but should they be included?
tl;dr
A. I can see a change to the text to invoke "Challenge 0 (10 XP)", removing \smallskip from the spell level lines, and removing the default damage/damage type.
B. Including support for min range on attacks and including spell attacks in some form may be possibilities that do not seem to increase complexity too much and could save a user some writing.
C. However I feel that the other cases happen so seldom that the added complexity to the macros outweighs the benefit of saving the user having to write out an attack in full every once in a while.
What does others think?

One additional remark: The change in the spell list was not just the \smallskip, it was also that only the spell names are in italic, the commas seperating them are not. There is quite a visible difference in the positioning of the commas in the output.

Excellent research, @Girsi. Based on that, we definitely need to include spell attacks as an option.
What do others think of which option should be used for the odd CR option?

Keep as is (1/10).
Use the numbers to create the fraction (0/10).
Half of 1/8 (1/16).
Switch the default 0 to represent 0 (10 XP) and use 00 to represent 0 (0 XP).

Any option we choose will become what people are used to using (for the once in a while they actually need a CR 0 creature), but which is most intuitive?

Okay, I added the spell attacks and formatting fixes to #153.

Maybe {weapon,spell} could be called the nature of the attack?

The conversation seems to have moved to #153, so I am going to close this down.


Form builder is broken

Hello,
The form builder is broken. Screenshot:

Can you please fix it?
Thanks in advance.

Apparently due to this issue: https://github.com/reactstrap/reactstrap/issues/2508


Removal of UrlCodingUtils in 0.20.12 causing NoClassDefFoundError at runtime

Tried to upgrade a project from 0.20.11 to 0.20.12 today that uses Rho but get an exception at startup
java.lang.NoClassDefFoundError: org/http4s/util/UrlCodingUtils$
at org.http4s.rho.bits.PathTree$.go$1(PathTree.scala:36)
at org.http4s.rho.bits.PathTree$.splitPath(PathTree.scala:41)
at org.http4s.rho.bits.PathTreeOps.org$http4s$rho$bits$PathTreeOps$$keyToPath(PathTree.scala:86)
at org.http4s.rho.bits.PathTreeOps$Node.walkTree(PathTree.scala:215)
at org.http4s.rho.bits.PathTreeOps$Node.walkTree$(PathTree.scala:214)
at org.http4s.rho.bits.PathTreeOps$MatchNode.walkTree(PathTree.scala:278)
at org.http4s.rho.bits.PathTreeOps$PathTree.getResult(PathTree.scala:78)
at org.http4s.rho.CompileRoutes$.$anonfun$foldRoutes$2(CompileRoutes.scala:48)
at cats.data.KleisliSemigroupK.$anonfun$combineK$1(Kleisli.scala:470)
at cats.data.KleisliSemigroupK.$anonfun$combineK$1(Kleisli.scala:470)
at cats.data.KleisliSemigroupK.$anonfun$combineK$1(Kleisli.scala:470)
at cats.data.Kleisli.apply(Kleisli.scala:83)
at kamon.http4s.middleware.server.KamonSupport$.$anonfun$kamonService$8(KamonSupport.scala:52)
Seems due to https://github.com/http4s/http4s/commit/8074594952b4e5cdef592540883215a1a12c799c
This is a binary compatibility break

You're correct.  We reasoned it was okay because it was private[http4s], but usages can still leak out into our other repos like rho and jdk-http-client.  What we need to do is reinstate the old ones as deprecated and forward to the companion on Uri.  If someone can send a PR to series/0.20 with this, that would be great.  Otherwise, I'll get to it ASAP, and we'll cut another 0.20.x release.

Fixed in 0.20.13


Move breadcrumbs around

It doesn't make sense from a hierarchal perspective to put breadcrumbs ABOVE file tabs. Breadcrumbs all exist within the scope of a file. With that in mind, it would make more sent to place them BELOW tabs but above the editor. However, I still feel there's too much risk of confusion between tabs and crumbs. Perhaps you can have an option to place these crumbs into the footer status bar? Or create a second row at the bottom for crumbs?
Additionally, the crumbs are WAY too big. They don't need to take up so much more room.

I've added customization in settings. Now user can choose position top/bottom for breadcrumbs.

Additionally, the crumbs are WAY too big. They don't need to take up so much more room.

its size depends on theme you're using. I've checked few themes I got installed and in Atom Material are really big:

but in One Dark a little bit smaller:
.
(for me this size is good but it's subjective).
Not sure what to do about it. There are many themes for Atom and making fit for one theme might destroy experience in others. But you could adjust CSS styles locally in your Atom stylesheet  ( http://flight-manual.atom.io/using-atom/sections/basic-customization/ ) , and write something like this:
.lupa-breadcrumbs {
    .btn {
        padding: 0 3px;
        line-height: 1em;
        height: 2em;
        font-size: 0.9em;
        max-width: 120px!important;
    }
}


Discussion: write/send number of bytes based on previous read/recv result for IOSQE_IO_LINK

One use case for IOSQE_IO_LINK is that zero copy IO operation, but it's hard to determine how many bytes is correctly read.
For example echo server. It's just ACCEPT -> RECV -> SEND -> CLOSE, but it's hard / not possible to do in zero copy way. The problem is:

The fd used by RECV/SEND/CLOSE is generated by ACCEPT, there's no way to use it in an IOSQE_IO_LINK chain
The number of bytes received from client is known only after RECV completes. You have to wait for RECV's completion to know how many bytes need to be sent.

For 2, man 2 read says that

It is not an error if this number is smaller than the  number  of  bytes  requested; this  may happen for example because fewer bytes are actually available right now (maybe because we were close to end-of-file,  or  because  we are reading from a pipe, or from a terminal), or because read() was interrupted by a signal.

So that even a simple READ -> WRITE link chain may not always be reliable.
I suggest that add a flag called IOSQE_IO_USE_PREV_RES ( the name is not decided ), which works only with IORING_OP_{WRITE,SEND} must be used together with IOSQE_IO_LINK, indicates that current operation's buffer size is set by previous ret code. If previous ret code <= 0 the operation should generate an error.
What do you think?

According to the man page:

a short read will also terminate the remainder of the chain

Never realized that. Awesome!


Re-enable code_generation test on Windows

This re-enables the code_generation test on Windows. It was disabled some time ago (see https://github.com/rust-lang/cargo/issues/867), but I don't think whatever issue was hitting it is relevant now. There isn't anything unusual about this test, so I think it should be fine. I was unable to get it to fail after running a few thousand times, and also testing on CI.

Thanks!
@bors r+

:pushpin: Commit 16ac6fae1147feb0217873d8a7784056246c23ab has been approved by weihanglo
It is now in the queue for this repository.

:hourglass: Testing commit 16ac6fae1147feb0217873d8a7784056246c23ab with merge c9b89c67723b93151f023ac3a932a471fe9fa6a0...

:sunny: Test successful - checks-actions
Approved by: weihanglo
Pushing c9b89c67723b93151f023ac3a932a471fe9fa6a0 to master...


install Issue

hi there,
I manage to get install all dependencies and load your extension in a docker container, however when i arrive  to te las step in the process, (Statistics) I am getting this error:
SELECT create_statistics('google_vecs_norm', 'word', 'coarse_quantization_ivpq');
ERROR:  function get_vecs_name_ivpq_quantization() does not exist
LINE 1: SELECT get_vecs_name_ivpq_quantization()
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
QUERY:  SELECT get_vecs_name_ivpq_quantization()
CONTEXT:  PL/pgSQL function create_statistics(character varying,character varying,character varying) line 10 at EXECUTE

Could you please help me or point me out some sort of solution?
thanks very much

Hi,
in order to create the statistics the name of the ivpq index tables must be known. I think this is the problem here.
The order of steps in the README seems to be slightly wrong. Before the statistics can be created you have to call init function first or execute CREATE EXTENSION freedy agiain, if you used the same names for the index table as described in the README.
SELECT init('google_vecs', 'google_vecs_norm', 'pq_quantization', 'pq_codebook', 'fine_quantization', 'coarse_quantization', 'residual_codebook', 'fine_quantization_ivpq', 'codebook_ivpq', 'coarse_quantization_ivpq')
I will change this in the README soon...

Guenthermi:
thanks for your fast answer, could you please post me out some resource to follow after i got that working? I mean I already use Gensim vectors, with the Bin file I just compare documents agains that model. in your implementation how should i do that?
with word2vec, I just request vectors to the index and produce a large vector for each sentence and classify that sentence with a Keras model or SVM. However I don't know in your implementation the right path to follow.
thanks
angelo

I think I don't understand what you actually want to do.
There are several ways to compare documents or text values consisting of several tokens by using word embeddings. One very simple method is to represent a larger text value by calculating the centroid (average value) of all word embedding vectors of terms occurring in the text value. This could be done by using the insert_batch function of the extension, which calculate this vector and add it to the index structures. However, if you want to do something more complex you have to implement this yourself.
The purpose of this extension mainly focuses on fast semantic search. If you want to do classification you might use something else. However, you could use the kNN and kNN-Join functions as a kNN classifier if this makes sense in your case.

Guenthermi:
I am trying to find similar words from a corpus I already train wikipedia in my language and I am looking for similar words from that embedding, after that I would like to create a search with an elastic search trying to mimic semantic search, launching a search for every single similar word from the original until certain distance 90% or so of similarity. at the moment that's my main idea.
thanks


Name is missing in LHN tooltip

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Hover over profiles in LHN

Expected Result:
Should show display name w/ email in tooltip
Actual Result:
Only email / login is shown, no display name
Workaround:
Platforms:
Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: main
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:
Issue reported by: @gadhiyamanan
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1686828398711369
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0137b40d29cb6cb326
Upwork Job ID:<PHONE_NUMBER>469900288
Last Price Increase: 2023-06-15

.

Hi I'm Bartek from Callstack - expert contributor group - I can work on this issue.

Proposal
Please re-state the problem that we are trying to solve in this issue.
When hovering over avatars in LHN, display name is not displayed in the tooltio
What is the root cause of that problem?
The issue is caused by the incorrect implementation of the ReportUtils.getAccountIDForLogin method that probably left while working on switching to using accountID as keys in the personalDetails login.
What changes do you think we should make in order to solve the problem?

The root cause is here:
https://github.com/Expensify/App/blob/d39643006874bf5ffec923291afa6b43884a4aec/src/libs/ReportUtils.js#L824-L832
As we can see, it tries to access the personalDetails object by the login as the key. It should be changed as below:
function getAccountIDForLogin(login) {
    const keys = lodashKeys(allPersonalDetails);
    const result = lodashFind(keys, (key) => allPersonalDetails[key].login === login) || '0';
    return Number(result);
}

What alternative solutions did you explore? (Optional)
n/a
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.

@burczu yeppp good catch 👍 Though I think at the end of the 3rd line we want to default to 0, not '0'
Though you did that in the return, so it's probably fine either way 👍

No, it must be '0' because lodashKeys returns an array of strings, so the result of lodashFind will also be a string - the fallback type should be consistent here.

PR is ready for review!

Adding Internal label to get an Upwork job created for the report - I don't think we need a C+ on this though... @Beamanator can you confirm?

Hired @gadhiyamanan as reporter
Upwork job posting:
Internal: https://www.upwork.com/ab/applicants/1669375642469900288/job-details
External: https://www.upwork.com/jobs/~0137b40d29cb6cb326

Folding https://github.com/Expensify/App/issues/20822 and https://github.com/Expensify/App/issues/20820 into this issue, the existing PR for this issue solves both of those as well

I unassigned myself since @fedirjh got a hand on the PR review.


[ALLUXIO-1949] Configuration improvement: making conf properties enum

https://alluxio.atlassian.net/browse/ALLUXIO-1949

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/10903/
Test FAILed.

Merged build finished. Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/10904/Build result: FAILURE[...truncated 4231 lines...][JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/hdfs/target/alluxio-underfs-hdfs-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-hdfs/1.3.0-SNAPSHOT/alluxio-underfs-hdfs-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/pom.xml to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/target/alluxio-underfs-swift-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/target/alluxio-underfs-swift-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/pom.xml to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/target/alluxio-underfs-s3a-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/target/alluxio-underfs-s3a-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/pom.xml to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/pom.xml to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT-tests.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/pom.xml to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/target/alluxio-keyvalue-common-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/target/alluxio-keyvalue-common-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/pom.xml to org.alluxio/alluxio-underfs/1.3.0-SNAPSHOT/alluxio-underfs-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/pom.xml to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/target/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/target/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/integration/pom.xml to org.alluxio/alluxio-integration/1.3.0-SNAPSHOT/alluxio-integration-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/pom.xml to org.alluxio/alluxio-keyvalue/1.3.0-SNAPSHOT/alluxio-keyvalue-1.3.0-SNAPSHOT.pomchannel stopped
Test FAILed.

This PR is ready for review

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/10905/Build result: FAILURE[...truncated 2771 lines...][JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/hdfs/target/alluxio-underfs-hdfs-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-hdfs/1.3.0-SNAPSHOT/alluxio-underfs-hdfs-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/pom.xml to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/target/alluxio-underfs-swift-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/target/alluxio-underfs-swift-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/pom.xml to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/target/alluxio-underfs-s3a-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/target/alluxio-underfs-s3a-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/pom.xml to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/pom.xml to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT-tests.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/pom.xml to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/target/alluxio-keyvalue-common-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/target/alluxio-keyvalue-common-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/pom.xml to org.alluxio/alluxio-underfs/1.3.0-SNAPSHOT/alluxio-underfs-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/pom.xml to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/target/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/target/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/integration/pom.xml to org.alluxio/alluxio-integration/1.3.0-SNAPSHOT/alluxio-integration-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/pom.xml to org.alluxio/alluxio-keyvalue/1.3.0-SNAPSHOT/alluxio-keyvalue-1.3.0-SNAPSHOT.pomchannel stopped
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/10911/Build result: FAILURE[...truncated 3204 lines...][JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/hdfs/target/alluxio-underfs-hdfs-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-hdfs/1.3.0-SNAPSHOT/alluxio-underfs-hdfs-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/pom.xml to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/target/alluxio-underfs-swift-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/target/alluxio-underfs-swift-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/pom.xml to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/target/alluxio-underfs-s3a-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/target/alluxio-underfs-s3a-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/pom.xml to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/pom.xml to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT-tests.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/pom.xml to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/target/alluxio-keyvalue-common-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/target/alluxio-keyvalue-common-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/pom.xml to org.alluxio/alluxio-underfs/1.3.0-SNAPSHOT/alluxio-underfs-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/pom.xml to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/target/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/target/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/integration/pom.xml to org.alluxio/alluxio-integration/1.3.0-SNAPSHOT/alluxio-integration-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/pom.xml to org.alluxio/alluxio-keyvalue/1.3.0-SNAPSHOT/alluxio-keyvalue-1.3.0-SNAPSHOT.pomchannel stopped
Test FAILed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/10912/
Test PASSed.

Merged build finished. Test PASSed.

@apc999 thanks for this great improvement, I did a pass and left some minor comments
I think @aaudiber should also take a look

@apc999 Thanks for changing to an enum, it helps a lot with type safety and cuts down on bloat in Constants.java. I've taken a pass and left some comments.
I'm most concerned about the change to configuration for LocalAlluxioClusterResource. I think it's much harder to read and reason about, especially in places like the shell tests where we have the awkward resetShellTest method. Could we go back to putting the config in the annotation? We could do this by storing the property key string names in PropertyKey as described here.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11078/
Test FAILed.

@jsimsa @aaudiber, I have addressed the comments. PTAL

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11080/
Test FAILed.

@apc999 I'm most concerned about the change to configuration for LocalAlluxioClusterResource. I think it's much harder to read and reason about, especially in places like the shell tests where we have the awkward resetShellTest method. Could we go back to putting the config in the annotation? We could do this by storing the property key string names in PropertyKey as described here.

@apc999 thank you for addressing my comment ... I did another pass ... @aaudiber suggestion for using named constants for the enum string values works for me (but it will be pain in the butt to make the change) ... I would call the nested class PropertyKey.Name

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11085/
Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11087/
Test FAILed.

Merged build finished. Test FAILed.

@jsimsa @aaudiber , I addressed all comments. PLTA. thanks

@apc999 Thanks for addressing all the comments! This change is definitely a big improvement to how we manage configuration. I took another pass and left one last comment, after that LGTM.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11088/
Test PASSed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11089/Build result: FAILURE[...truncated 2739 lines...][JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/hdfs/target/alluxio-underfs-hdfs-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-hdfs/1.3.0-SNAPSHOT/alluxio-underfs-hdfs-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/pom.xml to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/target/alluxio-underfs-swift-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/swift/target/alluxio-underfs-swift-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-swift/1.3.0-SNAPSHOT/alluxio-underfs-swift-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/pom.xml to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/target/alluxio-underfs-s3a-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/s3a/target/alluxio-underfs-s3a-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-s3a/1.3.0-SNAPSHOT/alluxio-underfs-s3a-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/pom.xml to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/examples/target/alluxio-examples-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-examples/1.3.0-SNAPSHOT/alluxio-examples-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/pom.xml to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/core/server/target/alluxio-core-server-1.3.0-SNAPSHOT-tests.jar to org.alluxio/alluxio-core-server/1.3.0-SNAPSHOT/alluxio-core-server-1.3.0-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/pom.xml to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/target/alluxio-keyvalue-common-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/common/target/alluxio-keyvalue-common-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-keyvalue-common/1.3.0-SNAPSHOT/alluxio-keyvalue-common-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/pom.xml to org.alluxio/alluxio-underfs/1.3.0-SNAPSHOT/alluxio-underfs-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/pom.xml to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/target/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.jar to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/underfs/glusterfs/target/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT-sources.jar to org.alluxio/alluxio-underfs-glusterfs/1.3.0-SNAPSHOT/alluxio-underfs-glusterfs-1.3.0-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/integration/pom.xml to org.alluxio/alluxio-integration/1.3.0-SNAPSHOT/alluxio-integration-1.3.0-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/workspace/Alluxio-Pull-Request-Builder/keyvalue/pom.xml to org.alluxio/alluxio-keyvalue/1.3.0-SNAPSHOT/alluxio-keyvalue-1.3.0-SNAPSHOT.pomchannel stopped
Test FAILed.

Merged build finished. Test FAILed.

Updated @aaudiber  @jsimsa . ready for you to review.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11090/
Test PASSed.

@apc999 sorry for the delay ... left a couple of last minor comments ... thank you very much for this big improvement to configuration

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11096/
Test FAILed.

Merged build finished. Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11097/
Test PASSed.

LGTM

+1 LGTM