Do we need a "MasterClear"?

Hey,
I find that I cannot re-use my plot code.  My running Forms App looks like:

When I selected "One" in the ListBox, the plot appears ok.
However, subsequent clicks on other items in the ListBox does not redraw the plot with its new data.
My code is:
using ScottPlot;
using System.Diagnostics;

namespace ScottPlotBug;
public partial class Form1 : Form
{
    ScottPlot.WinForms.FormsPlot? formsPlot;
    string? symbol;
    public Form1()
    {
        InitializeComponent();

        InitListBox();
    }
    private void InitListBox()
    {
        listBox1.Items.Clear();
        listBox1.Items.Add("One");
        listBox1.Items.Add("Two");
        listBox1.Items.Add("Three");
    }
    private void listBox1_Click(object sender, EventArgs e)
    {
        if (listBox1.SelectedItem == null) { return; }
        symbol = listBox1.SelectedItem.ToString();
        Debug.Assert(symbol != null);
        DrawCandleChart(symbol, 100);
    }
    public void DrawCandleChart(string symbol, int n)
    {
        string version = ScottPlot.Version.VersionString;
        if (version != "5.0.19")
        {
            throw new InvalidOperationException($"ScottPlot was expected to be 5.0.19 but is actually {version}");
        }
        if (string.IsNullOrEmpty(symbol)) { return; }

        formsPlot = new() { Dock = DockStyle.Fill };  // Add a formsPlot to formsPlotPanel
        formsPlotPanel.Controls.Add(formsPlot);
        formsPlot.Plot.ScaleFactor = 2;

        formsPlot.Plot.Clear();
        formsPlot.Refresh();

        var ohlcData = Generate.RandomOHLCs(n);
        var candlePlot = formsPlot.Plot.Add.Candlestick(ohlcData);
        candlePlot.Axes.YAxis = formsPlot.Plot.Axes.Right;
        candlePlot.Sequential = true;  // Omit gaps

        formsPlot.Plot.Axes.DateTimeTicks(Edge.Bottom);

        formsPlot.Plot.Axes.Bottom.Label.Text = symbol;
        formsPlot.Plot.Axes.Bottom.Label.FontName = "Verdana";
        formsPlot.Plot.Axes.Bottom.Label.Bold = false;
        formsPlot.Plot.Axes.Bottom.Label.FontSize = 12;

        formsPlot.Plot.Axes.AutoScale();
        formsPlot.Refresh();
    }
}

And the Designer code behind is:
namespace ScottPlotBug
{
    partial class Form1
    {
        private System.ComponentModel.IContainer components = null;
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        private void InitializeComponent()
        {
            formsPlotPanel = new Panel();
            listBox1 = new ListBox();
            SuspendLayout();
            //
            // formsPlotPanel
            //
            formsPlotPanel.BackColor = SystemColors.ControlLight;
            formsPlotPanel.Location = new Point(61, 35);
            formsPlotPanel.Name = "formsPlotPanel";
            formsPlotPanel.Size = new Size(954, 882);
            formsPlotPanel.TabIndex = 0;
            //
            // listBox1
            //
            listBox1.FormattingEnabled = true;
            listBox1.Location = new Point(425, 935);
            listBox1.Name = "listBox1";
            listBox1.Size = new Size(240, 164);
            listBox1.TabIndex = 2;
            listBox1.Click += listBox1_Click;
            //
            // Form1
            //
            AutoScaleDimensions = new SizeF(13F, 32F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(1077, 1125);
            Controls.Add(listBox1);
            Controls.Add(formsPlotPanel);
            Name = "Form1";
            Text = "Form1";
            ResumeLayout(false);
        }

        private Panel formsPlotPanel;
        private ListBox listBox1;
    }
}

Do we need a "MasterClear"?
Charles

Hi @CBrauer, I think your problem is here
formsPlot = new() { Dock = DockStyle.Fill };  // Add a formsPlot to formsPlotPanel
formsPlotPanel.Controls.Add(formsPlot);

The user should not need to new a FormsPlot
As it is written, every time this is called a new plot is added to the window. After several calls there will be several plots overlapping each other. I recommend creating a forms plot once (ideally by dragging/dropping it from the toolbox onto your window) and interacting with it as desired.
Related, see https://github.com/ScottPlot/ScottPlot/issues/3249

I got this code from the ScottPlot 5 Cookbook where you use new(). See:
ScottPlot 5
public partial class Form1 : Form
{
    readonly ScottPlot.WinForms.FormsPlot formsPlot1;

    public Form1()
    {
        InitializeComponent();

        // Add the FormsPlot
        formsPlot1 = new() { Dock = DockStyle.Fill };
        this.Controls.Add(formsPlot1);

        // Add sample data to the plot
        double[] data = ScottPlot.Generate.Sin();
        formsPlot1.Plot.Add.Signal(data);
        formsPlot1.Refresh();
    }
}

Hi @CBrauer, thanks for the clarification! Although it's possible to add a control programmatically, that documentation is there just for people using really old and/or buggy versions of Visual Studio that don't allow dragging-and-dropping a FormsPlot from the toolbar.
If a FormsPlot is to be created and added to the Window, that's okay, but make sure it only happens once. In your original code listBox1_Click() can get called multiple times, which called DrawCandleChart() multiple times, which kept creating and adding new FormsPlot controls to the window, likely causing the unexpected behavior you first wrote about.
A solution to make sure that doesn't happen by accident is to change:
ScottPlot.WinForms.FormsPlot? formsPlot;

to:
readonly ScottPlot.WinForms.FormsPlot formsPlot = new() { Dock = DockStyle.Fill };

then interact with it as desired:
formsPlot.Plot.Clear();
formsPlot.Refresh();

Hope it helps!

Thanks Scott. For these that come across this problem, here is my revised code that now works:
using ScottPlot;
using System.Diagnostics;

namespace ScottPlotBug;
public partial class Form1 : Form
{
    readonly ScottPlot.WinForms.FormsPlot formsPlot = new() { Dock = DockStyle.Fill };
    string? symbol;
    public Form1()
    {
        InitializeComponent();

        InitListBox();
    }
    private void InitListBox()
    {
        listBox1.Items.Clear();
        listBox1.Items.Add("One");
        listBox1.Items.Add("Two");
        listBox1.Items.Add("Three");
    }
    private void listBox1_Click(object sender, EventArgs e)
    {
        if (listBox1.SelectedItem == null) { return; }
        symbol = listBox1.SelectedItem.ToString();
        Debug.Assert(symbol != null);
        DrawCandleChart(symbol, 100);
    }
    public void DrawCandleChart(string symbol, int n)
    {
        string version = ScottPlot.Version.VersionString;
        if (version != "5.0.20")
        {
            throw new InvalidOperationException($"ScottPlot was expected to be 5.0.20 but is actually {version}");
        }
        if (string.IsNullOrEmpty(symbol)) { return; }

        formsPlotPanel.Controls.Add(formsPlot);  // Add a formsPlot to formsPlotPanel
        formsPlot.Plot.ScaleFactor = 2;

        formsPlot.Plot.Clear();
        formsPlot.Refresh();

        var ohlcData = Generate.RandomOHLCs(n);
        var candlePlot = formsPlot.Plot.Add.Candlestick(ohlcData);
        candlePlot.Axes.YAxis = formsPlot.Plot.Axes.Right;
        candlePlot.Sequential = true;  // Omit gaps

        formsPlot.Plot.Axes.DateTimeTicks(Edge.Bottom);

        formsPlot.Plot.Axes.Bottom.Label.Text = symbol;
        formsPlot.Plot.Axes.Bottom.Label.FontName = "Verdana";
        formsPlot.Plot.Axes.Bottom.Label.Bold = false;
        formsPlot.Plot.Axes.Bottom.Label.FontSize = 12;

        formsPlot.Plot.Axes.AutoScale();
        formsPlot.Refresh();
    }
}

Thanks Scott. For these that come across this problem, here is my revised code that now works:

I'm glad you reached a solution that works for you!
Note that the code you followed-up with still contains an error: every time listBox1_Click() is called formsPlotPanel.Controls.Add() is called, adding another copy of the control to the panel. I suspect this is resulting in many copies of the control being layered on top of each other like an infinitely growing deck of cards, but you only see the topmost card.
Creating controls and adding them to the layout is probably best performed in your initializer code (not in response to mouse events).

To fix the error, I move formsPlotPanel.Controls.Add() to the Constructor:
    public Form1()
    {
        InitializeComponent();

        formsPlotPanel.Controls.Add(formsPlot);  // Add a formsPlot to formsPlotPanel
        InitListBox();
    }

I ran the program, and I watched The Process Memory in the Diagnostic Tools as I clicked on different items in the ListBox.
I did not see any noticeable increase the Process Memory.


Issues with 4.19 RC4 UI on EL8

Found some UI quirks and issues:

Unable to copy the console URL by clicking the copy button in the VM instance view

Upon deployment of a VM the notification will not go away and found these errors in console:

It seems some background API is always running (needs more tracing, and this could be related to (2) above)

ISSUE TYPE

Bug Report

COMPONENT NAME

UI

CLOUDSTACK VERSION

<IP_ADDRESS> RC4

Couldn't reproduce with a Rocky8 MS and 2x Rocky8 KVM hosts. @rohityadavcloud could it be some caching issue or do I need to follow some specific steps?

https://github.com/apache/cloudstack/assets/153340/1ecbe0ce-6acb-437f-9712-918f2257b49a
2 and 3. Fixed by https://github.com/apache/cloudstack/commit/f86c62e49a58c628edc934fb86cc8f61b94fb33a


Lab 3, Appearance in RStudio vs HTML

As I'm working on Lab 3 and trying to get it to match the original NYT chart, way things fit is different in RStudio than once I knit to preview in HTML. For example, some of the labels are overlapping in RStudio, but fit right in HTML. Is this normal? If so, is the expectation that the HTML version is the final product so the goal is to have that be the most attractive version?
Screenshots side by side to show the differences I'm seeing.

This is actually a super complicated topic that requires more discussion. Every single device you work on has a different screen size and resolution, so graphics are constantly adjusting.
The answer to your question is chunk options. You can adjust the figure width and height so the graphic is predictable:
```{r fig.height=8, fig.width=10}

You can also change the retina settings and DPI.
http://zevross.com/blog/2017/06/19/tips-and-tricks-for-working-with-images-and-figures-in-r-markdown-documents/
In core R you would use a function like png() to save a figure in order to preserve dimensions.

Thanks @lecy!  Indeed, @Johaning, setting your figure dimensions in the "chunk options" (anything in {r}, e.g. {r echo = FALSE}, is going to help ensure your plot will usually have the same size.
Where things get tricky is in Lab 04, where you'll likely encounter this issue again, as it uses the same graphic you make for Lab 03.  The issue is that it's made as a dynamic Shiny dashboard and it's "responsive" - that is, when you resize the dashboard, your dimensions will resize in turn.  Smaller monitors, RStudio previews, and web browser windows will cause some elements to overlap, while larger windows will cause elements to become significantly smaller, to the point of illegibility and bad visualization practices.
A major influence on this lack of proper resizing is when you specifically designate the size of text with argument cex = ("character expansion").  It's a double-edged sword.  By reproducing the NYT graphic, you want to specify larger and smaller font sizes with cex =.  This allows for precise replication of the graphic.  However, you lose flexibility when you're able to resize that graphic in, say, a Shiny dashboard.  At least that has been my experience!
@lecy please correct me if I'm inaccurate!

@jamisoncrawford Agree on all points.
The term for dynamic website rescaling is called "reactive" content. Graphics are much harder to rescale than text.
If you are creating dashboards or visualizations when you are unsure of the screen size and you want the graphical elements to scale (not always the case) then you want to use packages that are designed for the task like plotly and some versions of ggplot (there are many others - those are just examples).

@lecy thank you!
I wasn't going to say "That's why I typically prefer ggplot2", but that is why I prefer ggplot2! 😄
I do think replicating the NYT visualization in base R's package graphics is likely much easier if using the element-by-element, additive approach to creating graphics.  Anything in ggplot2 would probably require a lot of suppression of default graphical elements or getting really deep into custom themes() arguments.


Better support for sharding in lifecycle callbacks

@pat I wanted to create this issue to start this discussion to make sure we've exhausted all of the documented solutions.
Right now, we have a model with enough records that a single index is not practical, so instead, we have something like this:
N.times do |i|
  ThinkingSphinx::Index.define :document, name: "document_#{i}", :with => :active_record, :delta => ThinkingSphinx::Deltas::SidekiqDelta do

    where "MOD(...) = #{i}"
  end
end

However, this as the problem that when a record is modified, it ends up creating N delta jobs, one for each index. If N is large enough, this becomes a problem.
It looks like the offending code is here: https://github.com/pat/thinking-sphinx/blob/1adcf8159fdbcb96a70fb01f5d8a15c2070090e6/lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb#L16
So the question is: Is there a better way to do sharding that avoids this landmine? Or conversely, if this is the best way to shard, then would a PR to help solve this problem be welcome?

Hi @lunaru
This is a great point, and you're right that the existing solutions aren't ideal. I was thinking about whether a custom IndexSet class could help, or a subclass of ThinkingSphinx::Deltas::SidekiqDelta, but neither is going to provide the ability to filter indices based on the current model instance, just the model.
If there are ideas for PRs, please do share, because I'd love your experience (especially given I'm not using a sharding approach for any of my apps). I'm currently wondering if changing IndexSet filtering to accept an instance (much like it accepts a model class, see line 46 of that delta callback file), and then that would allow picking and choosing specific shards based on that instance. Other ideas are welcome too!
Also: I guess another way is to use real-time indices rather than deltas, and then you've got a touch more control over the callbacks in the model, and can invoke them a little more specifically. But that is a significant change if you're comfortable with SQL-backed indices.

@pat thanks for sharing your thoughts. The idea that we have to solve this would be to allow the model to optionally implement ts_index_names.
Each of the Callback classes would then check instance.respond_to? :ts_index_names and if it does, it will select the indices against those names to narrow the indices that get update/delete/etc calls.
If you think this approach is agreeable, we'll take a stab at the PR ASAP.

Hi @lunaru - sorry for the delay in getting back to you, but I've just merged some changes into the develop branch that should help solve this issue: I've reworked IndexSet so it accepts specific instances, and that's what the callbacks pass through. Which means that something like the following should help:
class IndexSet < ThinkingSphinx::IndexSet
  private

  def indices
    return super if instances.empty?

    super.select do |index|
      # this block below will return all core and delta indices for the
      # instance's model, filtered by the shard id for the instance.
      instances.any? { |instance| index.name[/_#{instance.shard_id}_$/] }
    end
  end
end

# This line would go in an initialiser:
ThinkingSphinx::Configuration.instance.index_set_class = IndexSet

The shard_id method in the example could be replaced with your MOD logic, and thus returns the integer of the index an instance is tied to. If you'd like to give this a shot and confirm if it works for you, that'd be great! Then I can look into getting a new gem release published.

@pat awesome, we’ll give this a try this week (hopefully Monday) and let you know. I take it that your refactor is already live on the master branch and we’d just need to pin our gemfile to master to use it?

master is for released gem versions, so it's only in develop for now, but that's considered stable so there shouldn't be any issues using that branch as the source.

@pat Good news: It looks like this works brilliantly. The only difference with the index_set_class call had to be done differently because it looks like the configuration was getting wiped upon initialization. Here's how we ended up doing it:
class ShardedIndexSet < ThinkingSphinx::IndexSet
  private

  def indices
    return super if instances.empty?

    super.select do |index|
      # this block below will return all core and delta indices for the
      # instance's model, filtered by the shard id for the instance.
      instances.any? { |instance| !instance.respond_to?(:shard_id) || instance.shard_id.blank? || index.name[/_#{instance.shard_id}_/] }
    end
  end
end

# this needs to be set after initializers for the thinking-sphinx gem are run
Rails.application.config.to_prepare do
  ThinkingSphinx::Configuration.instance.index_set_class = ShardedIndexSet
end

Specifically Rails.application.config.to_prepare runs late enough to let us override the default index set class.

I'll go ahead and close this issue and await the next release version

Thanks for the confirmation, and the note about the initialiser. I'll try to get the new gem release out soon!

I know I've already noted this in #1173, but wanted also to mention that the newly released v5.0 includes the change discussed here with instances being available in custom IndexSet subclasses :)


feat(tests): add initial integration tests

@t8 @johnletey I feel we should merge this - nothing breaking yet but the upcoming changes are most likely to be breaking so I'll prefer it to be a seperate PR.


Feature Request: Error Msg

Is your feature request related to a problem? Please describe.
No response
Describe the solution you'd like.
I think all error messages, especially compile-time error messages should include Ashneer's: 'Bhai kya kar raha hai tu?'
Describe alternatives you've considered
No response
Additional context.
Bhai kya kar raha hai tu?

Also it would be more funny if in multiple compile time errors, it gave error messages as "Oh bhai Maro muje Maro " and then listed the error

Bhai  Galat Sandesh na De!

Bhai Hamse Se na ho Pai!


scenarios missing from repository

Following scenarios are missing from the repository.

libtiff-bug-2007-07-08-bd2f947-ccc10c7 / ibtiff-bug-cb57a69f-740a6187
libtiff-bug-2007-07-08-c766cb7-0cc95fb / libtiff-bug-b675f33d-5d9d496d
libtiff-bug-2007-07-13-09e8220-f2d989d / libtiff-bug-031c6a9b-14f51686
libtiff-bug-2008-04-15-2e8b2f1-0d27dc0 / libtiff-bug-806c4c9-366216b
libtiff-bug-2008-09-05-d59e7df-5f42dba / libtiff-bug-34285ec-b0492c2

Also, bug-info folder is missing from many of the existing libtiff scenarios.

Hey Manish, I'll take a look at these this evening. I need to realign the libtiff scenarios and to ensure that they match up with their newer versions provided in the ManyBugs dataset.

Just added all of the ManyBugs Libtiff scenarios, although they're failing in an unexpected way.

Rebuilt all Libtiff, Python, PHP and GZip scenarios from source.


Use correct boolean variable in two places.

Hi @CBonnell. I noticed this whilst mirroring your ETSI certificate type detection logic in this pkimetal commit just now.

Thanks Rob for finding and opening this PR. I'll merge and cut a new release with your fix in the next day or so.


JSII end of support message

What did you do?
Ran yarn build
What did you expect to happen?
No warnings would be displayed.
What actually happened?
A warning about the end of life of jsii was displayed.
👾 build » compile | jsii --silence-warnings=reserved-word
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!                                                                                !!
!!  The 5.1 release line of jsii will reach End-of-Support soon, on 2024-02-28T00:00:00.000Z.          !!
!!  We strongly recommend you upgrade to the current release line (5.3) at your earliest convenience.  !!
!!                                                                                !!
!!

Web Browser
N/A
OS
MacOS
Other information
It appears the current version of the package is "jsii": "5.1.x", while the latest stable release is in the 5.3.x range.

upgraded jsii


CON-4896: check if cronPlugin is activated in import settings

when the user tries to load the images with cronjob it is checked that the
Cronjob Plugin is activated if not an error message is shown
and the config value can't be changed
if cron Plugin is activated the SwagConnectImageCronJob is
automatically activated when the settig is set to import images with Cron
accordingly the cronjob gets automatically deactivated if images
are imported on first import.
branch recreated with cherry pick

Coverage increased (+0.05%) to 40.003% when pulling f4f9b22550e435a09b52d7ada9da287c865a7dca on CON-4896 into 43940b28fb16d5a26f12e7faf7035269fc3e55c1 on master.


Question: Is there a example for projects created using create-react-ap to use this library with SSR

If not, would be it possible to create one?

I think i've figured it out. will try to prepare some docs or example repo


Binary Ops: Adds Squared Difference

This PR adds binary operation squared difference to the API.
https://www.tensorflow.org/api_docs/python/tf/squared_difference

This change is

Manraj, this is Awesome work! Just couple small comments regarding dl. -> tf. in the doc code snippets.

Reviewed 8 of 8 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

src/ops/binary_ops.ts, line 474 at r1 (raw file):

   *
   * ```js
   * const a = dl.tensor1d([1, 4, 3, 16]);

replace dl. with tf. - only in the doc code snippets so when we regenerate our TF.js docs, it will work.

src/ops/binary_ops.ts, line 482 at r1 (raw file):

   * ```js
   * // Broadcast squared difference  a with b.
   * const a = dl.tensor1d([2, 4, 6, 8]);

replace dl. with tf.

Comments from Reviewable

Reviewed 8 of 8 files at r2.
Review status: all files reviewed at latest revision, 2 unresolved discussions, some commit checks failed.

Comments from Reviewable


Include  for std::sin and std::cos

std::sin and std::cos are not part of the std namespace on all build systems. Including cmath fixes the issue.

I think it has been decided to use ImCos and ImSin instead https://github.com/brenocq/implot3d/pull/7#issuecomment-2551400056

Heeey @khurramjaved96! Thank you for the issue, if you are still interested in contributing to ImPlot3D, feel free to look into the features and improvements discussion topic! We are collecting feature requests there, you can just comment on one of them if you are interested in implementing it (I can help you if needed 😄)


adds group field to form

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


chore: QoL changes

Style changes

Normalize end-of-line
Add pre-commit config
Run pre-commit on all files
Exclude repo-wide style changes from blaming

CI changes

Update Dependabot config, and GitHub workflows

We probably don't need Prettier 🤔


Add Thick of it by KSI

Song Name
Thick of it
Artist Name
KSI
Source
Youtube
Youtube Link
At8v_Yc044Y
Direct File Link
No response
Song ID
555888
Start Offset [ms]
4000
Extra
Created from Auto Nong.
Created for level: 111135568
Downloaded: Yes

ok


can support xorm  ？

xorm.io/xorm
github.com/xormplus/xorm

github.com/xormplus/xorm no update for four years, xorm.io/xorm not a github project， If you need it, you can contribute to this project

can support github.com/lib/pq?

can support github.com/lib/pq?

Yes, I will support pg sql later.


Sphinx 6.1.1 bug: AttributeError: 'BuildEnvironment' object has no attribute '_search_index_titles'

Error message:
Exception occurred:
  File "/code/.nox/docs-3-11/lib/python3.11/site-packages/sphinx/search/__init__.py", line 256, in __init__
    self._titles: dict[str, str] = env._search_index_titles
                                   ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'BuildEnvironment' object has no attribute '_search_index_titles'
The full traceback has been saved in /tmp/sphinx-err-pwll7cvf.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!

Resolution: Roll back to 6.0.1
Determine if this is a local configuration issue

This error was resolved after deleting the .nox/docs-3.11 directory and
re-running the tests again.


New GM runtime parameter to allow in/excluding dynamically computed Kappa contributions in Redi-tensor

What changes does this PR introduce?
New feature
What is the current behaviour?
The dynamically computed variable kappa contribution of the Visbeck, etc. parameterisations is hardwired to be included in the Redi-tensor (see discussion in PR #674), although it is not always clear, if this intended.
What is the new behaviour
A new runtime parameter GM_isoFac_calcK (=1 by default) can be used to turn off the variable kappa contribution to the Redi-tensor.
In my humble opinion, this change makes the code even a little easier to read, because I found the GM_advect parameter adding a contribution the Redi-tensor, when we do not use the skew flux form, a little confusing. Now it is replaced by (GM_isoFac_calcK - GM_skewflx) which makes it clear that the terms can cancel.
Does this PR introduce a breaking change?
No
Other information:
The code changes are based on insights by @nicolasdettling.
This is a suggestion intended to serve as a basis for discussion.
These changes may have an effect on PR #641
Suggested addition to tag-index

pkg/gmredi: add runtime parameter GM_isoFac_calcK to allow in/excluding dynamically computed Kappa contribution in the Redi-tensor

@mjlosch I took a look at this PR and I think it's a valuable addition to enable this switch.
I have few comments regarding variable/parameter names and settings:

I could think of removing logical param "GM_useVarKforRedi" and put dirrectly "GM_varKredi" in namelist
so that I could set it to, e.g., just half if needed.
If we keep the logical run-time param "GM_useVarKforRedi" , I would be in favor of renaming it to "GM_useVarKinRedi" since it's just one of many contribution to isopycnal diffusivity.
regarding the name "GM_varKredi": (a) it's a bit sad that "Redi" is not capitalized, but it's a detail ; (b) "var" (for variable) might leads to confusion with fixed in time, spacially varying K. We had issues before with CPP options names when setting 3-D kappa from files. (c) since it's a scaling factor (no units), could put "Fac" in the name.

I did not think too much about an alternative name for "GM_varKredi" but we might consider something like "GM_isoFac_calcK" (similar to "GM_isoFac2d" & "GM_isoFac1d") or a bit longer, "GM_isopycFac_calcK" (similar to "GM_isopycK"). Also we could think of introducing different scaling factor for the different schemes, like "GM_isoFac_Visbeck", "GM_isoFac_Bates" and "GM_isoFac_LeithQG" but this might not be really useful since the likelyhood to have 2 of these schemes turned on is low.

@jm-c thanks for looking at this. I am fine with the name GM_isoFac_calcK, and I can also live with putting this directly into the namelist and thus getting rid of GM_useVarKforRedi.
I also though of having different parameters for the different scheme, but then I thought (as you did), it's unlikely that we will use more than one of the schemes at a time.
I can make this change tomorrow (unless you want to beat me to it tonight).

@mjlosch I am not going to make changes here soon, and it's also nice to wait until tomorrow in case someone want to suggest a different name.

in gmredi_calc_tensor.F I don't see the new factor GM_isoFac_calcK inside the Kwz coeff, so I think it's missing there (around lines 591-601).

Thanks for catching this. I fixed this in 32d769f.
I think it is OK to leave the
#ifdef GM_READ_K3D_GM
     &           + GM_skewflx*op5*( GM_inpK3dGM(i,j,km1,bi,bj)
     &                            + GM_inpK3dGM(i,j,k,bi,bj) )
#else
     &           + GM_skewflx*bolus_K*GM_bolFac2d(i,j,bi,bj)
#endif

without any factor.

the setting of GM_ExtraDiag in gmredi_readparams.F needs to be updated for the skew-flux form (previously, there was an exact cancellation from calcK contributions).

OK, see if I got it right with the latest commit 32d769f

a detail: I think GM_advect parameter is no longer used so it could be removed.

I agree, so far it is used in gmredi_check.F, from which it is now removed. See my modification.

@mjlosch Thanks for the cleaning.
I would  like to fix the setting of GM_ExtraDiag for  GM_useBatesK3d and GM_useLeithQG. This is not directly related to GM_isoFac_calcK addition (this PR) but depends on this new factor ; so easier to fix this here.  Do you agree ?

@mjlosch I think the setting of internal params "GM_ExtraDiag" is now fixed (please take a look and check) and as a results, the test experiment MLAdjust.QGLthGM is failing. Also, in verification_other the 2 global_ocean.gm_3d & gm_res test are failing too. Since I did not checked the OpenAD test, I added the label "adjoint" to this PR.
I've adjusted a little bit the parameter summary (printed from gmredi_check.F) and brought back the report of "GM_advec*K ="  while updating the report of GM_background_K ; but I think we could keep only 1 of the 2, either "GM_advec*K" or GM_background_K. I personally like the pair "GM_advec*K" and "GM_skewflx*K" but could change this.

@mjlosch I cleaned up a little bit (mostly the changes I made earlier) and updated one test exp. ref. output (the one using QGLeith in GM).
I think this PR is getting ready to be merged, unless you want to make some changes.
Regarding this PR description, do you want to add something about the bug fixed or do you prefer that I do it ?

@jm-c LGTM, please update the description, as you know better what you have done.

@mjlosch I updated this PR description (+ suggested addition to tag-index). Please review and change as you like.
After this, we could merge this PR soon (like tomorrow) unless someone wants to add something.

@mjlosch I have a follow up question regarding ALLOW_KAPREDI_CONTROL and ALLOW_KAPGM_CONTROL:
Do we need to set GM_ExtraDiag (to True) if one of these is defined ?
I did that for the global_oce_latlon TAF test (where GM_ExtraDiag was not set) but did not see any differences there.
And I forgot what the grdchkvarindex = 201 is testing.

@mjlosch Update reagarding this:

I did that for the global_oce_latlon TAF test (where GM_ExtraDiag was not set) but did not see any differences there.

The STDOUT are unchanged (with grdchkvarindex = 201) but binary files "ADJkapgm" and "adxx_kapgm" are different.
So at the end, I pushed my (last) changes to gmredi_readparms.F.

According to s/r ctrl_check, ALLOW_KAPREDI_CONTROL and ALLOW_KAPGM_CONTROL require GM_READ_K3D_REDI and GM_READ_K3D_GM, but I guess GM_K3dRedi/GMFile can be empty, so your changes look good. I changed the PR descriptions slightly (mostly because it now contains more than one change).
I think that this is ready to be merged.
PS. I never know about they grdchkvarindex, after inspecting the stdout, I usually come to the conclusion that it refers to the reported index (so xx_theta in the case of global_oce_latlon):
(PID.TID 0000.0001)  -> 3d control, genarr3d no.  1 is in use
(PID.TID 0000.0001)       file       = xx_theta
(PID.TID 0000.0001)       weight     = ones_64b.bin
(PID.TID 0000.0001)       index      =  0201     <<<<<<<<<<<<USE THIS FOR GRDCHKVARINDEX<<<<<<<<<
(PID.TID 0000.0001)       ncvarindex =  0301
(PID.TID 0000.0001)  -> 3d control, genarr3d no.  2 is in use
(PID.TID 0000.0001)       file       = xx_salt
(PID.TID 0000.0001)       weight     = ones_64b.bin
(PID.TID 0000.0001)       index      =  0202
(PID.TID 0000.0001)       ncvarindex =  0302
(PID.TID 0000.0001)  -> 3d control, genarr3d no.  3 is in use
(PID.TID 0000.0001)       file       = xx_diffkr
(PID.TID 0000.0001)       weight     = ones_64b.bin
(PID.TID 0000.0001)       index      =  0203
(PID.TID 0000.0001)       ncvarindex =  0303
(PID.TID 0000.0001)  -> 3d control, genarr3d no.  4 is in use
(PID.TID 0000.0001)       file       = xx_kapgm
(PID.TID 0000.0001)       weight     = ones_64b.bin
(PID.TID 0000.0001)       index      =  0204
(PID.TID 0000.0001)       ncvarindex =  0304

it's also confusing that index and ncvarindex are not the same ... oh, well. Maybe we should change index to grdchkvarindex in the report? (not in this PR).

@mjlosch Thanks for the comments. I will merge this PR later today.


Enable Starlark language linting in pushes and pull requests

Is it the right direction that setting up github actions for downloading skylint and running skylint to do Starlark linting?

I would guess so, but I'm deferring this decision to @asraa - I think she knows best this part of the infrastructure.

We use only Buildifier for both .bzl files and BUILD files (I think you can? https://github.com/bazelbuild/buildtools/tree/master/buildifier). But yes, a GitHub workflow works.
I suppose you could also buildifier on BUILDs and skylint on any *.bzl.
buildifier -mode=check $(find . -type f \( -name BUILD.bazel -or -name BUILD \)
I recently also learned you can filter actions workflow to only trigger on certain paths, this might be helpful here
https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpaths

I recently also learned you can filter actions workflow to only trigger on certain paths, this might be helpful here
https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpaths

Oh, that's really nice! @tengpengli, in that case can you also make sure the C++ linter only runs on C++ files (.h, .cc, .cpp)?

Sounds great to me! I will look into it


Support multiple upstreams service behind the same SSO proxy

The oauth2_proxy supports multiple upstream services for which it does path based routing.
e.g. by defining the upstreams as follows:
upstreams: [
   http://kube-svc1/app1/
   http://kube-svc2/app2/
]

The proxy will route:
https://public-domain/app1 ==> http://kube-svc1/app1
https://public-domain/app2 ==> http://kube-svc2/app2

In this way, It is possible to have Single Sign-On for both app1&app2.

/remove-lifecycle stale

/remove-lifecycle rotten


Fix ctc_batch_cost() error when batch_size = 1

Fix issue #7049:
When batch size is 1,
label_length = tf.to_int32(tf.squeeze(label_length))
input_length = tf.to_int32(tf.squeeze(input_length))

squeeze out all axes so that label_length and input_length become tensors with shape (). The functions will crush because of the shape error. Hence, just squeezing the last axis to keep the tensors with shape (samples, ).

Change axis=1 to axis=-1. The test case with one sample only is added

Change axis=1 to axis=-1. The test case with one sample only is added


Update Installation-Troubleshooting.rst

Added mention of failed to create process
Relates to #3914
I came across this in https://robotics.stackexchange.com/q/104081/36342. I figured a mention here would be worthwhile.
I would suggest to merge this both for the Humble tag and latest, if possible.

@Mergifyio backport rolling iron


Fix for #3 Firefox MacOS paste problem

Coverage remained the same at 78.774% when pulling 73de95795640925201a32b5b127f2515dd0991a8 on stereobooster:master into 34223fb0f5f17660cbd0742849a944bb6668764c on jcubic:master.

Can you create this pull request to devel branch? I have there few fixes that I want in 1.0.7 version.

Also please modify jquery.terminal-src.js file.


Debugging options after finished setup

Hi,
is there a way to manually check the OTP-key-generation after the setup finished?
Reason is that I tried to install it under Fedora 34 / Gnome 40 by adding auth required pam_google_authenticator.so to the file /etc/pam.d/gdm-password and I just cannot log in into Gnome any more.
Once I change the line to auth sufficient pam_google_authenticator.so Gnome lets me log in, though I can use any string for the OTP-stage as long as the user password is correct.
Regards,
Sören Klein

Any time you change any login stuff, including PAM stuff, you should have a spare root shell as your backup. And try to log in again (and gain root) before logging that root shell out.
I think that's the only proper way to test it. There are so many things that can go wrong with SSH config, login manager config, PAM config, your OTP, your system clock, your phone, etc… There's no way to simulate all that.

Thank you for the quick reply.
I am not using SSH, it's for the desktop manager only (Gnome 40). I have root shell access to the system and I can correct bad configurations. Password, OTP and system clock are correct. Smartphone (Authy on Android) should not be the problem either - I can use it successfully for my work laptop (similar setup, though using Ubuntu LTS 20.04) and the setup-task "enter code from app (-1 to skip)" is successfull on the Fedora-device.
Btw, I found out that the emergency scratch codes do not work either.
Regarding my main question: There is corrently no way to verify a finished setup directly, e.g. with google-authenticator verify?
I would just like to rule out problems with this library under Fedora - although all things considered it is more likely a problem with the OS / my configuration.

The equivalent for local logins is to press Ctrl-Alt-F3 or similar to get a console login, and log that in as root.
When you set up TOTP google-authenticator will ask you for a code before completing. That's the closest thing to confirming the Google Authenticator part of it.
The verification flow you ask for would only be useful as a second step, to check a very tiny problem space. There would be no point to doing it unless a full login was first tried and failed.
None of the components are likely to be broken. Authy is great, android is great (sometimes Samsung screws this up with timezones and time corrections), PAM is great, Linux is great, SSH is great, etc… The problem is likely to be with the configuration, and/or the interface between the components.
This PAM module works. It's not like it doesn't. So if the module says no, that means it's not being passed the right input. A test where it is passed the right input seems kinda pointless.
I think you're thinking of a way to troubleshoot a failure with configs that's not actually the best way to do it. The best way is probably to turn on debugging on the module, and check the logs.


USB mass sample not working for FAT FS

Describe the bug
The USB mass sample  does not work for the FAT filesystem.
I want the USB mass sample with the FAT FS configuration as a basis for a new project on the Nordic nRF52840 DK. However, when I configure the sample to use FAT, the FS cannot be mounted.
To Reproduce
Compile the USB mass sample for the nRF52840 DK platform using the following prj.conf:
CONFIG_STDOUT_CONSOLE=y

#USB related configs
CONFIG_USB_DEVICE_STACK=y
CONFIG_USB_DEVICE_PRODUCT="Zephyr MSC sample"
CONFIG_LOG=y
CONFIG_USB_DRIVER_LOG_LEVEL_ERR=y
CONFIG_USB_MASS_STORAGE=y
CONFIG_USB_DEVICE_LOG_LEVEL_ERR=y
CONFIG_USB_MASS_STORAGE_LOG_LEVEL_ERR=y

CONFIG_MAIN_STACK_SIZE=1536

CONFIG_APP_MSC_STORAGE_FLASH_FATFS=y

Expected behavior
The sample should show a successful empty FAT FS over RTT and USB log.
Impact
Was showstopper, now fixed due to great help at Nordic Devzone.
Logs and console output
RTT log output:
[00:00:00.254,333] <err> usb_msc: Storage init ERROR !!!! - Aborting USB init
[00:00:00.258,514] <err> fs: fs mount error (-5)
[00:00:00.258,544] <err> main: Failed to mount filesystem
[00:00:00.258,728] <inf> main: The device is put in USB mass storage mode.

Environment (please complete the following information):

OS: Windows 11
Toolchain: Zephyr SDK v2.1.0
Commit SHA or Version used

Additional context
Simon over at the Nordic Devzone has already solved the problem. His fix should be added to the repo.

The simple solution is to change the "MX25R64" to "mx25r6435f@0" and "GD25Q16" to "gd25q16@0" in samples/subsys/usb/mass/Kconfig. However, it was deemed inappropriate and much more complex solution, involving defining the flashdisk via devicetree binding is in review. See #50856 for more information.

@jfischer-no @desowin Could you propose a multiline output which would validate that full workflow?

Example output when the sample works correctly is:
Area 4 at 0x0 on mx25r6435f@0 for 131072 bytes
Mount /NAND:: 0
/NAND:: bsize = 512 ; frsize = 512 ; blocks = 216 ; bfree = 216
/NAND: opendir: 0
End of files
[00:00:00.323,852] <inf> main: The device is put in USB mass storage mode.

Looking for "End of files" in addition to "The device is put in USB mass storage mode" would have caught the issue.

Resolved by #50856 and #51884


add feedstock for faiss

Force pushed a resync with tip of master, but Travis build didn't kick off for some reason. Will close and resubmit a clean request.


Using 'sample_weight_eval_set' - AssertionError assert len(sample_weight_eval_set) == len(eval_set) - Lengths are equal

Hi,
I am getting the following error when using sample weights for the eval_set
"File "/usr/local/lib/python3.8/dist-packages/xgboost/sklearn.py", line 903, in fit
train_dmatrix, evals = self._wrap_evaluation_matrices(
File "/usr/local/lib/python3.8/dist-packages/xgboost/sklearn.py", line 259, in _wrap_evaluation_matrices
assert len(sample_weight_eval_set) == len(eval_set)
AssertionError"
However, i checked the number observations and they are equal:
number of training observations:  1510809
number of training weights 1510809
number of cv observations:  149251
number of cv weights:  149251
Here is my training code
model_xgb = XGBClassifier(max_depth=20,
                              learning_rate=0.01,
                              min_child_weight=4,
                              colsample_bytree=0.5,
                              subsample=0.5,
                              scale_pos_weight=5,
                              n_estimators=400,
                              objective='binary:logistic'
                              )

    model_xgb.fit(train_x,
                  train_y,
                  eval_set=[(cv_x, cv_y)],
                  eval_metric='auc',
                  early_stopping_rounds=25,
                  verbose=True,
                  sample_weight=weights,
                  sample_weight_eval_set=cv_weights)

    print('model fitted')

Let me know if there is additional information needed.  Thank you.

Hi, please pass them as lists:
clf.fit(X, y, sample_weight=weight, eval_set=[(valid_X, valid_y)], sample_weight_eval_set=[valid_weight])


Blank margo.go file after installation

reloading settings Packages/User/GoSublime-aux.sublime-settings
[20:02:38] margo: agent#007: log: ``` "C:\\Users\\errashe\\AppData\\Roaming\\Sublime Text 3\\Packages\\GoSublime\\bin\\margo.sublime.exe" -codec msgpack ```
[20:02:38] margo: agent#007: log: store.go:137: started
[20:02:39] margo: agent#007: log: restart.go:146: Mg/Restart: exit status 1
[20:02:39] margo: agent#007: log: ``` go install -v -tags=margo margo.sh/cmd/margo.sublime ```
[20:02:39] margo: agent#007: log: press ` ctrl+. `,` ctrl+x ` to configure margo or check console for errors
[20:02:39] margo: agent#007: log: *Not* using margo extension: Error: cannot find package "margo" in any of:
[20:02:39] margo: agent#007: log: 	C:\Go\src\margo (from $GOROOT)
[20:02:39] margo: agent#007: log: 	C:\Users\errashe\AppData\Roaming\Sublime Text 3\Packages\User\GoSublime\src\margo (from $GOPATH)
[20:02:39] margo: agent#007: log: 	C:\Users\errashe\AppData\Roaming\Sublime Text 3\Packages\GoSublime\src\margo
[20:02:39] margo: agent#007: log: agent GOPATH is C:\Users\errashe\AppData\Roaming\Sublime Text 3\Packages\User\GoSublime;C:\Users\errashe\AppData\Roaming\Sublime Text 3\Packages\GoSublime
[20:02:39] margo: agent#007: log:

** 2018-10-06 20:03:48.927598 **:
mg.extension_file: Cannot create default margo extension package
GoSublime: Traceback (most recent call last):
  File "C:\Users\errashe\AppData\Roaming\Sublime Text 3\Packages\GoSublime\gosubl\margo.py", line 400, in extension_file
    s = open(self.example_extension_file(), 'r').read()
  File "./python3.3/encodings/cp1251.py", line 23, in decode
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 787: character maps to <undefined>
--------------------------------

And after all installation process my margo.go file empty. Tried to reinstall go, sublime, gosublime and everything in any combinations. Of course working with development branch. Win10 latest update. Any ideas?

Does it work if you edit C:\Users\errashe\AppData\Roaming\Sublime Text 3\Packages\GoSublime\gosubl\margo.py and replace line ~400 s = open(self.example_extension_file(), 'r').read() with s = open(self.example_extension_file(), 'rb').read() i.e. 'r' with 'rb' and then press ctrl+.,ctrl+x?

After deleting margo.go file, and pressing ctrl+.,ctrl+x i've got
** 2018-10-06 20:46:57.851328 **:
mg.extension_file: Cannot create default margo extension package
GoSublime: Traceback (most recent call last):
  File "C:\Users\errashe\AppData\Roaming\Sublime Text 3\Packages\GoSublime\gosubl\margo.py", line 401, in extension_file
    f.write(s)
TypeError: must be str, not bytes
--------------------------------

Change the 'x' on the line above the one you just edited to 'xb' and try again. That should fix the TypeError.

Yep, that's fixed everything. Awesome, thanks for fast answer :)

Thanks for the confirmation. I will push an update shortly. You will probably need to undo the changes when you're ready to do a git pull to update.


Add required: true option to env: to fail when variable missing

Request: Add required: true option to env: to fail when variable missing
- env:
    name: THE_VAR
    variable: the_var
    required: true
    message: "Required for blah" # optional. Error would include both the name (THE_VAR) and this message

Required environment variable unset: THE_VAR
Required for blah

To clarify: you're asking to require that an environment variable be set before sample-tester will execute a test or a suite? Sounds reasonable.
What's the use case? Project IDs? Is this a blocking need?


Rocketwatch: Fix install stanza to reflect the change in the filename.

The zip file contains the version of the mod, thus netkan can't autoindex it when it updates.

https://github.com/KSP-CKAN/CKAN-netkan/issues/41 is relevant as it would have prevented this problem.

Could you please also add a filter for .DS_Store since I doubt we need to install that?

Hello!
New message, please read http://crfrj.com.br/became.php?kgnq
<EMAIL_ADDRESS>

Just take a look at this stuff, it's reaaly good, more info here http://ngukugebe.veloxmotorwerks.com/aexmi
See you around<EMAIL_ADDRESS>

Hey,
This is just something really astonishing, I'm telling you, you have to take a look http://shythimeme.contemporarysingles.com/aeangq
Best regards<EMAIL_ADDRESS>

Hello!
I've got  some  news for you,  I'm so excited that I couldn't  fall asleep last night. Read it here please http://original.beverlypicture.com/aegqzl
Sent from my iPhone, blue

Dear friend!
There is something  nice I wanted to show you, just take a  look http://system.nextcubes.com/aefmfii
Sincerely yours, blue


Enable tests of recurring events against Xandikos

Enable tests of recurring events against Xandikos.

Hurray!

But maybe the test requirement list in setup.py needs to be updated to reflect the minimum version of xandikos to be used?

That's a good point. I'll release a new version this weekend and will send you a pull request to bump the minimum version.

What's the status on this?  I had to reintroduce the incompatibility flags as the tests breaks with 0.2.3 - and 0.2.4 and 0.2.5 breaks even more.

On Wed, Mar 10, 2021 at 02:25:08PM -0800, Tobias Brox wrote:

What's the status on this?  I had to reintroduce the incompatibility flags as the tests breaks with 0.2.3 - and 0.2.4 and 0.2.5 breaks even more.
This is on my list of things to look at - will hopefully get to it
this week.

Jelmer
--
Jelmer Vernooĳ @.***>
PGP Key: https://www.jelmer.uk/D729A457.asc


vhosts page in admin UI is not "seeing" custom config and incorrectly flagging missing htdocs

ISSUE TYPE

Bug Report

Checklist

[x] .env file is attached
[x] ./check-config.sh output is added below
[x] docker-compose logs output is added below
[x] docker-compose.override.yml is attached (if exists)
[x] Custom configs from cfg/ dir are attached (if exist)
[x] I've looked through the docs: https://devilbox.readthedocs.io/en/latest/
[x] I've looked through existing issues: https://github.com/cytopia/devilbox/issues
[x] I've read troubleshooting: https://devilbox.readthedocs.io/en/latest/support/troubleshooting.html

OS / ENVIRONMENT

Host operating system and version: Mac osx 10.14.6
Docker version: 3.1.0
Docker Compose version: ?
What git commit hash are you on?: cdfb55ec2d061bb20bb6aad1792034d995a855a2

SUMMARY

I've set up a number of projects, some using the default directory of htdocs for files, other using custom apache24.yml file to indicate a different directory to serve files from. The Virtual Hosts page in the UI marks the projects using the default as "OK", the others are marked "ERR". However, the projects are served as expected. It's just a problem in the UI.
STEPS TO REPRODUCE

Create two projects. For project-a add an htdocs directory inside. For project-b add a dist directory, and add .devilbox/apache24.yml file. Only customize the vhost directory section of that file with:
vhost: |
  <VirtualHost __DEFAULT_VHOST__:__PORT__>
      ServerName __VHOST_NAME__
      Protocols  __HTTP_PROTO__

      CustomLog  "__ACCESS_LOG__" combined
      ErrorLog   "__ERROR_LOG__"

  __REDIRECT__
  __SSL__
  __VHOST_DOCROOT__
  __VHOST_RPROXY__
  __PHP_FPM__
  __ALIASES__
  __DENIES__
  __SERVER_STATUS__
      # Custom directives
  __CUSTOM__
  </VirtualHost>

###
### vHost Type (normal or reverse proxy)
###
vhost_type:
  # Normal vHost (-p)
  docroot: |
    # Define the vhost to serve files
    DocumentRoot "/shared/httpd/project-b/dist"
    <Directory "/shared/httpd/project-b/dist">
        DirectoryIndex __INDEX__

        AllowOverride All
        Options All

        RewriteEngine on
        RewriteBase /

        Order allow,deny
        Allow from all
        Require all granted
    </Directory>

  # Reverse Proxy (-r)
  rproxy: |
    # Define the vhost to reverse proxy
    ProxyRequests On
    ProxyPreserveHost On
    ProxyPass __LOCATION__ __PROXY_PROTO__://__PROXY_ADDR__:__PROXY_PORT____LOCATION__
    ProxyPassReverse __LOCATION__ __PROXY_PROTO__://__PROXY_ADDR__:__PROXY_PORT____LOCATION__

EXPECTED BEHAVIOUR

The admin UI will pick up that files are being served from that vhost
ACTUAL BEHAVIOUR
the admin UI only "sees" the files being served out of the default htdocs directory.
OTHER INFORMATION
Start command

$ docker-compose up

Outputs

$ ./check-config.sh

everything is good here

$ docker-compose logs

httpd_1  | [req_distinguished_name]
httpd_1  |
httpd_1  | [ v3_req ]
httpd_1  | basicConstraints = critical, CA:FALSE
httpd_1  | subjectKeyIdentifier = hash
httpd_1  | keyUsage = critical, digitalSignature, keyEncipherment
httpd_1  | authorityKeyIdentifier = keyid:always,issuer:always
httpd_1  | extendedKeyUsage = serverAuth, clientAuth
httpd_1  | subjectAltName=${ALT_NAMES}") -keyout /etc/httpd/cert/mass/campus-map.local.key -subj<EMAIL_ADDRESS>-out /etc/httpd/cert/mass/campus-map.local.csr
httpd_1  | $ openssl x509 -req -sha256 -extensions v3_req -extfile <(echo "[req]
httpd_1  | distinguished_name = req_distinguished_name
httpd_1  | x509_extensions = v3_req
httpd_1  |
httpd_1  | [req_distinguished_name]
httpd_1  |
httpd_1  | [ v3_req ]
httpd_1  | basicConstraints = critical, CA:FALSE
httpd_1  | subjectKeyIdentifier = hash
httpd_1  | keyUsage = critical, digitalSignature, keyEncipherment
httpd_1  | authorityKeyIdentifier = keyid:always,issuer:always
httpd_1  | extendedKeyUsage = serverAuth, clientAuth
httpd_1  | subjectAltName=${ALT_NAMES}") -days 825 -in /etc/httpd/cert/mass/campus-map.local.csr -CA /ca/devilbox-ca.crt -CAkey /ca/devilbox-ca.key -CAcreateserial -out /etc/httpd/cert/mass/campus-map.local.crt
httpd_1  | Certificate:
httpd_1  |     Data:
httpd_1  |         Version: 3 (0x2)
httpd_1  |         Serial Number:
httpd_1  |             52:ac:15:22:ec:20:f1:53:e8:32:08:91:b2:11:0c:d1:a1:36:07:e0
httpd_1  |         Signature Algorithm: sha256WithRSAEncryption
httpd_1  |         Issuer: C = DE, ST = Berlin, L = Berlin, O = Devilbox, OU = Devilbox, CN = Devilbox Root CA, emailAddress =<EMAIL_ADDRESS>dnQualifier = aYnUy/y58HHPern9yNQWrwexHiA=
httpd_1  |         Validity
httpd_1  |             Not Before: Feb 23 21:41:45 2021 GMT
httpd_1  |             Not After : May 29 21:41:45 2023 GMT
httpd_1  |         Subject: C = DE, ST = Berlin, L = Berlin, O = Devilbox, OU = Devilbox, CN = campus-map.local, emailAddress =<EMAIL_ADDRESS>httpd_1  |         Subject Public Key Info:
httpd_1  |             Public Key Algorithm: rsaEncryption
httpd_1  |                 RSA Public-Key: (2048 bit)
httpd_1  |                 Modulus:
httpd_1  |                     00:c2:04:38:21:15:68:69:b9:30:ce:f6:d0:4b:8d:
httpd_1  |                     51:ad:4a:9e:99:76:3e:97:12:df:42:97:11:c1:a9:
httpd_1  |                     40:49:95:94:37:2e:2d:5f:a4:18:f1:f0:d3:fb:ed:
httpd_1  |                     2a:62:f2:f0:43:26:87:b5:95:14:32:66:01:12:73:
httpd_1  |                     65:bf:ff:69:62:b2:45:30:32:0d:8b:56:f2:7b:2a:
httpd_1  |                     8f:c0:67:23:0e:ad:7c:40:17:88:53:07:b6:d7:12:
httpd_1  |                     a6:ad:cc:3c:b2:b1:d6:68:de:9d:5b:bb:7a:88:65:
httpd_1  |                     b4:96:be:04:a6:85:13:54:fa:54:bf:84:76:df:db:
httpd_1  |                     55:46:01:8c:27:e9:d4:6b:53:04:1c:0f:87:1e:1f:
httpd_1  |                     26:9d:52:ae:60:ae:ed:e3:81:02:7e:5a:06:3f:3f:
httpd_1  |                     b5:ef:d7:eb:ae:2c:57:92:88:90:c1:ea:b4:21:b2:
httpd_1  |                     05:4f:05:cb:03:75:f8:05:1b:f7:88:4e:a5:42:a5:
httpd_1  |                     91:3b:d7:16:3b:a2:36:b0:88:9c:12:ee:b3:bc:be:
httpd_1  |                     03:13:d7:41:11:8c:91:a0:02:41:30:ac:ed:28:fb:
httpd_1  |                     08:06:8b:a9:9c:17:47:18:72:d8:f3:a1:8f:64:c3:
httpd_1  |                     c0:fe:2a:12:49:19:93:34:10:25:a7:14:0c:14:03:
httpd_1  |                     b6:67:09:91:78:db:a4:b6:97:97:7f:5f:82:84:70:
httpd_1  |                     0e:4f
httpd_1  |                 Exponent: 65537 (0x10001)
httpd_1  |         X509v3 extensions:
httpd_1  |             X509v3 Basic Constraints: critical
httpd_1  |                 CA:FALSE
httpd_1  |             X509v3 Subject Key Identifier:
httpd_1  |                 25:12:66:E7:1F:6F:F5:A9:B8:A8:41:BB:D8:90:48:D9:CA:EF:59:07
httpd_1  |             X509v3 Key Usage: critical
httpd_1  |                 Digital Signature, Key Encipherment
httpd_1  |             X509v3 Authority Key Identifier:
httpd_1  |                 keyid:69:89:D4:CB:FC:B9:F0:71:CF:7A:B9:FD:C8:D4:16:AF:07:B1:1E:20
httpd_1  |                 DirName:/C=DE/ST=Berlin/L=Berlin/O=Devilbox/OU=Devilbox/CN=Devilbox Root<EMAIL_ADDRESS>httpd_1  |                 serial:0F:7A:E6:B6:63:5E:23:98:08:E3:14:4C:A2:A0:E6:E4:B7:0E:4C:55
httpd_1  |
httpd_1  |             X509v3 Extended Key Usage:
httpd_1  |                 TLS Web Server Authentication, TLS Web Client Authentication
httpd_1  |             X509v3 Subject Alternative Name:
httpd_1  |                 DNS:campus-map.local, DNS:*.campus-map.local
httpd_1  |     Signature Algorithm: sha256WithRSAEncryption
httpd_1  |          45:51:39:83:f6:99:26:58:1c:8e:37:d9:73:5c:de:91:10:66:
httpd_1  |          9a:55:ee:4f:90:2c:60:f3:f1:a5:8b:10:6e:3a:b8:9b:9b:46:
httpd_1  |          8f:e6:c3:32:3c:80:aa:75:3a:55:13:89:9b:16:8d:a1:a9:3f:
httpd_1  |          ea:47:91:12:0e:15:3c:3f:2a:fe:77:fa:b9:15:4b:2c:af:a8:
httpd_1  |          e1:55:75:56:23:0c:55:10:f4:91:2b:92:3b:ec:5a:48:92:fa:
httpd_1  |          ae:29:eb:e3:09:94:29:4d:7f:bf:fd:51:9d:45:90:5a:38:e7:
httpd_1  |          8b:00:af:83:2f:b1:2f:e7:b0:44:48:42:6e:02:88:57:60:8b:
httpd_1  |          8e:5a:29:df:03:e5:e1:29:9b:f9:a8:08:36:45:08:a8:35:36:
httpd_1  |          86:1d:f1:b4:d0:de:75:79:71:24:c8:9a:5d:06:1e:b9:3d:f5:
httpd_1  |          8d:79:d8:72:0a:78:3d:e4:70:81:23:64:e7:ed:68:bc:6c:55:
httpd_1  |          58:f3:1b:89:bc:c1:05:98:65:96:46:9f:88:bc:57:76:ef:85:
httpd_1  |          47:91:3f:a9:de:1a:57:81:eb:e4:f0:38:24:99:8c:c2:3b:09:
httpd_1  |          76:1a:d4:2c:17:ee:95:1d:87:ca:8f:db:87:92:10:a6:a5:6d:
httpd_1  |          26:2f:52:c8:88:60:c1:b6:89:6b:f9:d7:6b:df:79:32:04:5a:
httpd_1  |          36:25:4c:f4
httpd_1  | /etc/httpd/cert/mass/campus-map.local.crt: OK
httpd_1  | $ vhost-gen -p "/shared/httpd/campus-map" -n "campus-map" -c /etc/vhost-gen/mass.yml -o "/shared/httpd/campus-map/.devilbox/" -s -v -m both
httpd_1  | vhost-gen: [INFO]  (2021-02-23 16:41:45): Loading configuration file        (-c): /etc/vhost-gen/mass.yml
httpd_1  | vhost-gen: [INFO]  (2021-02-23 16:41:45): Loading vhost template (global)   (-t): /etc/vhost-gen/templates/apache24.yml
httpd_1  | vhost-gen: [INFO]  (2021-02-23 16:41:45): Loading vhost template (override) (-o): /shared/httpd/campus-map/.devilbox/apache24.yml
httpd_1  | vhost-gen: [INFO]  (2021-02-23 16:41:45): Creating vhost type: https and http (both)
httpd_1  | vhost-gen: [INFO]  (2021-02-23 16:41:45): Using vhost name: campus-map.local
httpd_1  | vhost-gen: [INFO]  (2021-02-23 16:41:45): Log setting: dir -> True
httpd_1  | vhost-gen: [INFO]  (2021-02-23 16:41:45): Log setting: Not specified
httpd_1  | vhost-gen: [INFO]  (2021-02-23 16:41:45): Vhost config written to: /etc/httpd/vhost.d/campus-map.conf
httpd_1  | watcherd: [2021-02-23 16:41:45] [OK]  ADD: succeeded: /shared/httpd/campus-map
httpd_1  | $ openssl req -newkey rsa:2048 -sha256 -nodes -extensions v3_req -config <(echo "[req]
httpd_1  | distinguished_name = req_distinguished_name
httpd_1  | x509_extensions = v3_req

[x]  .env file is attached

Where can I see the .env file?

Sorry about that, here you are.
###
###  ---------------------------------------------------
###  D E V I L B O X   R U N - T I M E   S E T T I N G S
###  ---------------------------------------------------
###
###  All the following settings are applied during
###  $ docker-compose up
###
###  No need to rebuild any docker images!
###
###  IMPORTANT:
###  ----------
###  When changing any values ensure to stop, rm and restart:
###  $ docker-compose stop
###  $ docker-compose rm -f
###  $ docker-compose up
###
###  NOTE:
###  -----
###  For you own custom variables, scroll to the bottom
###

# The following line will disable any shellcheck warnings throughout this file
# shellcheck disable=SC2034,SC2125

###
### Show all executed commands in each
### docker image during docker-compose up?
###
### 0: Quiet
### 1: Verbose
### 2: More verbose
DEBUG_COMPOSE_ENTRYPOINT=2

###
### Log to file or Docker logs.
###
### Logging to file means log files are available under log/
### on your host operating system.
### Logging to Docker logs means log files are streamed to
### stdout and stderr.
###
### 1: Log to Docker logs
### 0: Log to file
###
DOCKER_LOGS=0

###
### Relative or absolute path to the devilbox repository.
### (Used as a prefix for all mount paths)
### There is no need to change this.
###
### The only exception is for OSX users wanting to use NFS
### mounts instead of Filesystem mounts due to degraded performance
### on OSX.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
DEVILBOX_PATH=.

###
### At what IP address should the docker services listen
### on the Host computer?
###
### The specified default should be fine for Linux and OSX (<IP_ADDRESS>:).
### If you are on windows, you will probably have to change
### it to the IP address of the docker machine.
###
### a.) Leave blank, to listen on all interfaces (no trailing colon ':')
###    LOCAL_LISTEN_ADDR=
### b.) If an IP is specified, note the trailing colon ':'
###    LOCAL_LISTEN_ADDR=<IP_ADDRESS>:
###
LOCAL_LISTEN_ADDR=<IP_ADDRESS>:

###
### This is the domain suffix your projects will be made available
### with mass-virtual-hosting.
### It is also required for the internal DNS server to be setup.
###
### Note: Only ALPHA ([a-zA-Z]+) characters are supported.
###
### Example:
###   TLD_SUFFIX=loc
### Makes your project available under xxxx.loc
###
### Example:
###   TLD_SUFFIX=local
### Makes your project available under xxxx.local
###
TLD_SUFFIX=local

###
### Optional DNS configuration
### Allows you to add extra DNS records (above the wildcard entry)
### Useful if your host computer run other Docker services that you want to connect to or reach
### from within the Devilbox network by a custom hostname.
###
### Format:
### -------
### Resolve any custom defined hostname to an IP address (useable inside container and host os)
###     EXTRA_HOSTS=<hostname>=<ip>[,<hostname>=<ip>]
###
### Resolve any custom defined hostname to whatever IP address a CNAME resolves to
### (Useable inside the container and host OS).
### Note: CNAME must be resolvable by Google DNS
###     EXTRA_HOSTS=<hostname>=<CNAME>[,<hostname>=<CNAME>]
###
### Examples:
### ---------
### EXTRA_HOSTS=hostname.loc=<IP_ADDRESS>
### EXTRA_HOSTS=host.loc=<IP_ADDRESS>,host.example.org=<IP_ADDRESS>
EXTRA_HOSTS=

###
### Set your user id and group id
###
### This should be changed to the value of your local
### users uid and gid
###
### Type `id` on the terminal to find out your values
###
NEW_UID=267164627
NEW_GID=701479588

###
### Timezone for PHP Docker container (system and php.ini)
###
TIMEZONE=EST

################################################################################
###
### INTRANET SETTINGS
###
################################################################################

###
### TLD_SUFFIX domains are checked if they are set in the
### host computer /etc/hosts or available via attached DNS server.
### Timeout is done on vhosts.php (intranet) via ajax calls.
### In order to keep performance, set this to a low value.
### DNS checks might not succeed in time on slow machines.
### If DNS is valid, but timeout is expired, set this to a higher value.
###
### DNS_CHECK_TIMEOUT value is how many seconds to time out
### Default is to timeout after 1 second (DNS_CHECK_TIMEOUT=1)
###
DNS_CHECK_TIMEOUT=1

###
### Devilbox UI SSL Certificate generation
###
### When using SSL each certificate requires names for which it is responsible:
### Common Name as well as alternative names.
###
### Specify comma separated hostnames below by which you want to access the Devilbox.
### Those hostnames will be included in the SSL certificate for the Devilbox intranet.
### This has nothing to do for SSL certificates for projects, it is just for the intranet
### itself.
###
DEVILBOX_UI_SSL_CN=localhost,*.localhost,devilbox,*.devilbox,httpd

###
### Devilbox UI Password protection enable/disable (1/0)
###
### Set DEVILBOX_UI_PROTECT to 1 in order to password protect the
### intranet.
###
### Example:
###   DEVILBOX_UI_PROTECT=1
###   DEVILBOX_UI_PROTECT=0
###
DEVILBOX_UI_PROTECT=0

###
### Devilbox UI Password
###
### When DEVILBOX_UI_PROTECT=1, use the following password
### to log in. The password can always be changed.
### When changing the password, make sure to restart your
### PHP container.
###
### Example:
###   DEVILBOX_UI_PASSWORD=my-very-secure-password
###   DEVILBOX_UI_PASSWORD=Some pass with spaces
###
### The default username is 'devilbox'
###
DEVILBOX_UI_PASSWORD=password

###
### Enable the Devilbox Intranet?
###
### Example:
###   DEVILBOX_UI_ENABLE=1
###   DEVILBOX_UI_ENABLE=0
###
DEVILBOX_UI_ENABLE=1

###
### Automatically be logged in into phpMyAdmin
###
### Example:
###   DEVILBOX_VENDOR_PHPMYADMIN_AUTOLOGIN=1
###   DEVILBOX_VENDOR_PHPMYADMIN_AUTOLOGIN=0
###
DEVILBOX_VENDOR_PHPMYADMIN_AUTOLOGIN=1

###
### Automatically be logged in into phpPgAdmin
###
### Example:
###   DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN=1
###   DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN=0
###
DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN=1

################################################################################
###
### 1. Choose Images (Version)
###
################################################################################

###
### You can choose any combination of httpd, mysql, postgresql or php.
### Each of them are fully compatible between one another.
###

###
### 1.1 Choose PHP Server Image
###
### Note: PHP 5.2 is not officially supported. Intranet won't work (due to lack of namespace support).
###       PHP 5.2 only works with Apache 2.4, Nginx stable and Nginx mainline.
###       Use at your own risk.
###
#PHP_SERVER=5.2
#PHP_SERVER=5.3
#PHP_SERVER=5.4
#PHP_SERVER=5.5
#PHP_SERVER=5.6
#PHP_SERVER=7.0
#PHP_SERVER=7.1
#PHP_SERVER=7.2
#PHP_SERVER=7.3
PHP_SERVER=7.4
# PHP_SERVER=8.0
# PHP_SERVER=8.1

###
### 1.2 Choose HTTPD Server Image
###
#HTTPD_SERVER=apache-2.2
HTTPD_SERVER=apache-2.4
# HTTPD_SERVER=nginx-stable
#HTTPD_SERVER=nginx-mainline

###
### 1.3 Choose MySQL Server Image
###
#MYSQL_SERVER=mysql-5.5
#MYSQL_SERVER=mysql-5.6
#MYSQL_SERVER=mysql-5.7
#MYSQL_SERVER=mysql-8.0
#MYSQL_SERVER=mariadb-5.5
#MYSQL_SERVER=mariadb-10.0
#MYSQL_SERVER=mariadb-10.1
#MYSQL_SERVER=mariadb-10.2
#MYSQL_SERVER=mariadb-10.3
#MYSQL_SERVER=mariadb-10.4
MYSQL_SERVER=mariadb-10.5
#MYSQL_SERVER=percona-5.5
#MYSQL_SERVER=percona-5.6
#MYSQL_SERVER=percona-5.7
#MYSQL_SERVER=percona-8.0

###
### 1.4 Choose PostgreSQL Server Image
###
### IMPORTANT: Alpine based images might cause issues on Docker Toolbox or OSX
###            https://github.com/docker/toolbox/issues/510
###
#PGSQL_SERVER=9.0
#PGSQL_SERVER=9.1
#PGSQL_SERVER=9.2
#PGSQL_SERVER=9.2-alpine
#PGSQL_SERVER=9.3
#PGSQL_SERVER=9.3-alpine
#PGSQL_SERVER=9.4
#PGSQL_SERVER=9.4-alpine
#PGSQL_SERVER=9.5
#PGSQL_SERVER=9.5-alpine
#PGSQL_SERVER=9.6
#PGSQL_SERVER=9.6-alpine
#PGSQL_SERVER=10.0
#PGSQL_SERVER=10.0-alpine
#PGSQL_SERVER=10.1
#PGSQL_SERVER=10.1-alpine
#PGSQL_SERVER=10.2
#PGSQL_SERVER=10.2-alpine
#PGSQL_SERVER=10.3
#PGSQL_SERVER=10.3-alpine
#PGSQL_SERVER=10.4
#PGSQL_SERVER=10.4-alpine
#PGSQL_SERVER=10.5
#PGSQL_SERVER=10.5-alpine
#PGSQL_SERVER=10.6
#PGSQL_SERVER=10.6-alpine
#PGSQL_SERVER=10.7
#PGSQL_SERVER=10.7-alpine
#PGSQL_SERVER=10.8
#PGSQL_SERVER=10.8-alpine
#PGSQL_SERVER=10.9
#PGSQL_SERVER=10.9-alpine
#PGSQL_SERVER=10.10
#PGSQL_SERVER=10.10-alpine
#PGSQL_SERVER=10.11
#PGSQL_SERVER=10.11-alpine
#PGSQL_SERVER=11.0
#PGSQL_SERVER=11.0-alpine
#PGSQL_SERVER=11.1
#PGSQL_SERVER=11.1-alpine
#PGSQL_SERVER=11.2
#PGSQL_SERVER=11.2-alpine
#PGSQL_SERVER=11.3
#PGSQL_SERVER=11.3-alpine
#PGSQL_SERVER=11.4
#PGSQL_SERVER=11.4-alpine
#PGSQL_SERVER=11.5
#PGSQL_SERVER=11.5-alpine
#PGSQL_SERVER=11.6
#PGSQL_SERVER=11.6-alpine
#PGSQL_SERVER=11.7
#PGSQL_SERVER=11.7-alpine
#PGSQL_SERVER=11.8
#PGSQL_SERVER=11.8-alpine
#PGSQL_SERVER=11.9
#PGSQL_SERVER=11.9-alpine
#PGSQL_SERVER=12.0
#PGSQL_SERVER=12.0-alpine
#PGSQL_SERVER=12.1
#PGSQL_SERVER=12.1-alpine
#PGSQL_SERVER=12.2
#PGSQL_SERVER=12.2-alpine
#PGSQL_SERVER=12.3
#PGSQL_SERVER=12.3-alpine
PGSQL_SERVER=12.4
#PGSQL_SERVER=12.4-alpine
#PGSQL_SERVER=13.0
#PGSQL_SERVER=13.0-alpine
#PGSQL_SERVER=latest
#PGSQL_SERVER=alpine

###
### 1.5 Choose Redis Server Image
###
### IMPORTANT: Alpine based images might cause issues on Docker Toolbox or OSX
###            https://github.com/docker/toolbox/issues/510
###
#REDIS_SERVER=2.8
#REDIS_SERVER=3.0
#REDIS_SERVER=3.0-alpine
#REDIS_SERVER=3.2
#REDIS_SERVER=3.2-alpine
#REDIS_SERVER=4.0
#REDIS_SERVER=4.0-alpine
#REDIS_SERVER=5.0
#REDIS_SERVER=5.0-alpine
REDIS_SERVER=6.0
#REDIS_SERVER=6.0-alpine
#REDIS_SERVER=latest
#REDIS_SERVER=alpine

###
### 1.6 Choose Memcached Server Image
###
### IMPORTANT: Alpine based images might cause issues on Docker Toolbox or OSX
###            https://github.com/docker/toolbox/issues/510
###
#MEMCD_SERVER=1.4
#MEMCD_SERVER=1.4-alpine
#MEMCD_SERVER=1.5
#MEMCD_SERVER=1.5-alpine
MEMCD_SERVER=1.6
#MEMCD_SERVER=1.6-alpine
#MEMCD_SERVER=latest
#MEMCD_SERVER=alpine

###
### 1.7 Choose Mongo Server Image
###
#MONGO_SERVER=2.8
#MONGO_SERVER=3.0
#MONGO_SERVER=3.2
#MONGO_SERVER=3.4
#MONGO_SERVER=3.6
#MONGO_SERVER=4.0
#MONGO_SERVER=4.2
MONGO_SERVER=4.4
#MONGO_SERVER=latest

################################################################################
###
### 2. Host Mounts (Your computer)
###
################################################################################

###
### Global mount options
###
### Note: When adding custom mount options, ensure to start with a
###       leading ',' (comma), as those options are prepended to already
###       existing mount options.
###
### Note: If no mount options are specified, leave this variable empty
###       and do not add a leading ',' (comma).
###
### MOUNT_OPTIONS=,cached
### MOUNT_OPTIONS=
###
### Example: Allow to share mounts accross container with SELINUX enabled
###
### MOUNT_OPTIONS=,z
###
MOUNT_OPTIONS=,cached

###
### Local filesystem path to www projects.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_HTTPD_DATADIR=~/www

###
### Local filesystem path to where your backups are stored
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_BACKUPDIR=./backups

###
### The path on your host OS of the ssh directory to be mounted into the
### PHP container into /home/devilbox/.ssh.
###
### IMPORTANT: The path is mounted read-only to ensure you cannot accidentally
##             delete anything inside the php container.
###
HOST_PATH_SSH_DIR=~/.ssh

################################################################################
###
### 3. PHP Docker Settings
###
################################################################################

###
### Enable certain PHP modules which are not enabled by default
###
### Currently the only modules that can be enabled are 'ioncube' and 'blackfire'
### Also ensure to disable xdebug when using any of the above:
### https://xdebug.org/docs/install#compat
###
### PHP_MODULES_ENABLE=ioncube, blackfire
###
PHP_MODULES_ENABLE=imagick

###
### Disable any PHP modules that you don't require
###
### Specify a comma separated list without spaces of modules to disable
###
### PHP_MODULES_DISABLE=xdebug,imagick,swoole
###
PHP_MODULES_DISABLE=oci8,PDO_OCI,pdo_sqlsrv,sqlsrv,rdkafka,swoole

###
### Postfix settings for email catch-all
###
### When set to '1' postfix is normally started and made available. However you still need
### to configure it to your needs yourself. For that you can use the autostart scripts
### and define a couple of 'postconf -e name=value' commands.
###
### When set to '2' (email catch-all), no mail will leave the Devilbox. It is automatically
### internally routed the the devilbox mail account and you can see each sent mail
### in the bundled intranet: https://localhost/mail.php
###
### Values:
### 0: Disable postfix (do not start it)
### 1: Enable/Start postfix
### 2: Enable/Start postfix and enable email catch-all
###
PHP_MAIL_CATCH_ALL=2

###
### Configure everything else about PHP in
### * cfg/php-ini-X.X/*.ini
### * cfg/php-fpm-X.X/*.conf

################################################################################
###
### 4. HTTPD Docker Settings
###
################################################################################

###
### Expose HTTPD Port to Host
###
HOST_PORT_HTTPD=80
HOST_PORT_HTTPD_SSL=443

###
### SSL (HTTP/HTTPS) settings for automated vhost generation
###
### By default each project will have two vhosts (one for HTTP and one for HTTPS).
### You can control the SSL settings for your projects via the below stated values.
###
### This is internally achieved via the '-m' argument of https://github.com/devilbox/vhost-gen
###
### Values:
###   * both:  Serve HTTP and HTTPS for all projects
###   * redir: HTTP always redirects to HTTPS
###   * ssl:   Only serve HTTPS
###   * plain: Only serve HTTP
###
HTTPD_VHOST_SSL_TYPE=both

###
### Document Root Subdirectory
###
### In your project directory, which subfolder should
### serve your files?
###
### When changing this value, restart the devilbox.
###
HTTPD_DOCROOT_DIR=htdocs

###
### Per vHost Config Subdirectory
###
### In your project directory, which subfolder should
### hold apache, nginx templates for a customized vhost?
###
### When changing this value, restart the devilbox.
###
HTTPD_TEMPLATE_DIR=.devilbox

###
### Webserver timeout (in seconds) to upstream PHP-FPM server
###
### This value should be greater than PHP's max_execution_time,
### otherwise the php script could still run and the webserver will
### simply drop the connection before getting an answer by PHP.
###
HTTPD_TIMEOUT_TO_PHP_FPM=180

###
### NGINX ONLY
###
### Set worker_processes and worker_connections
###
### https://nginx.org/en/docs/ngx_core_module.html#worker_processes
### https://nginx.org/en/docs/ngx_core_module.html#worker_connections
###
HTTPD_NGINX_WORKER_PROCESSES=auto
HTTPD_NGINX_WORKER_CONNECTIONS=1024

################################################################################
###
### 5. MySQL Docker Settings
###
################################################################################

###
### MySQL root user password
###
### The password is required for the initial creation of the MySQL database
### as well as the Devilbox intranet to display schema and configuration settings.
###
### If you change your MySQL root user password via mysql cli, phpMyAdmin or other tools
### after the database has been created, ensure to adjust the value here accordingly as well.
###
### If you only change this value here after the database has been created,
### the MySQL root user password will not actually be changed and the Devilbox intranet
### won't be able to connect to the MySQL service.
###
MYSQL_ROOT_PASSWORD=

###
### Expose MySQL Port to Host
###
HOST_PORT_MYSQL=3306

################################################################################
###
### 6. PostgreSQL Docker Settings
###
################################################################################

###
### PostgreSQL 'root' user name (usually postgres)
###
PGSQL_ROOT_USER=postgres

###
### PostgreSQL 'root' user password
###
### If you want to set a password, ensure to remove 'trust' from
### PGSQL_HOST_AUTH_METHOD below
###
PGSQL_ROOT_PASSWORD=

###
### In order to not use a password for PostgreSQL, keep this value at 'trust'
###
PGSQL_HOST_AUTH_METHOD=trust

###
### Expose PostgreSQL Port to Host
###
HOST_PORT_PGSQL=5432

################################################################################
###
### 7. Redis Docker Settings
###
################################################################################

###
### Expose Redis Port to Host
###
HOST_PORT_REDIS=6379

###
### Custom startup arguments
###
### Apply custom startup arguments to redis
###
### Example: Password protection
###   Add password protection to the Redis server by specifying it should
###   require a password.
###   Note: Do not add quotes or spaces to the password
###
###   REDIS_ARGS=--requirepass my-redis-root-password
###
### Example: Verbosity
###
###   REDIS_ARGS=--loglevel verbose
###
REDIS_ARGS=
#REDIS_ARGS=--loglevel verbose --requirepass my-redis-root-password

################################################################################
###
### 8. Memcached Docker Settings
###
################################################################################

###
### Expose Memcached Port to Host
###
HOST_PORT_MEMCD=11211

################################################################################
###
### 9. MongoDB Docker Settings
###
################################################################################

###
### Expose MongoDB Port to Host
###
HOST_PORT_MONGO=27017

################################################################################
###
### 10. Bind Docker Settings
###
################################################################################

###
### Expose Bind Port to Host
###
# HOST_PORT_BIND=1053
HOST_PORT_BIND=53

###
### Add comma separated DNS server from which you want to receive DNS
### You can also add DNS servers from your LAN (if any are available)
###
BIND_DNS_RESOLVER=<IP_ADDRESS>,<IP_ADDRESS>

###
### Validate DNSSEC
###
### Values:
###  no:    DNSSEC validation is disabled
###  yes:   DNSSEC validation is enabled, but a trust anchor must be manually configured.
###  auto:  DNSSEC validation is enabled, and a default trust anchor for root zone is used.
###
BIND_DNSSEC_VALIDATE=no

###
### Bind timing options (time in seconds)
###
### Leave empty for defaults.
### Only change when you know what you are doing.
###
BIND_TTL_TIME=
BIND_REFRESH_TIME=
BIND_RETRY_TIME=
BIND_EXPIRY_TIME=
BIND_MAX_CACHE_TIME=

###
### Show DNS Queries in Docker logs output?
###
### 1: Yes
### 0: No
BIND_LOG_DNS_QUERIES=0

################################################################################
###
### 11. Custom variables
###
################################################################################

###
### Any variable defined in this file will be available
### as environment variables to your PHP/HHV Docker container.
###
### This might be useful to set application environment and retrieve
### them via: <?php getenv('MY_APPLICATION_ENV'); ?>
###

###
### Example:
### <?php echo getenv('Foo'); ?> would produce: 'some value'
###
#Foo=some value

HOST_PORT_NGROK=4040
# Share project1.loca over the internet
NGROK_HTTP_TUNNELS=webservices.local:httpd:80
# No license token specified
NGROK_AUTHTOKEN=

I just did that:
 tree project-a/ -a
project-a/
├── .devilbox
│   └── apache24.yml
└── htdocs

apache24.yml contents copied from what you've specified. Works totally fine.
/vhosts.php

/info_vhostgen.php?name=project-a

I would assume you might have added the file to a wrong path.

In your screenshots, it shows the problem:

That should be an "OK" in the valid column, with the url pointing to the docroot for that vhost.

The above was just an example and I did not add a DNS record. Here you go:

Ok, I'm sorry, my initial point was not perfectly clear. In your example, you have an htdocs directory, that's why it's working. My issue is that I am trying to serve the docs out of a different directory, in my example, the dist directory.
The apache24.yml example from my first post is mean to be for that vhost.

Just symlink the dist/ directory to vhost:
https://devilbox.readthedocs.io/en/latest/vhost-gen/example-add-subdomains.html?highlight=symlink#directory-structure

Ok, that works for the vhost page to "see" the custom docroot, even without the .devilbox/apache24.yml file.
But also, so does creating an empty htdocs directory and using the apache24.yml.
In both cases, just the presence of the htdocs is enough for the vhost to show "OK", even though the docroot is actually something else entirely. This feels a little hacky, though. Is it possible for the vhosts list to recognize the root as specified in the apache24.yml file, without having to also create an htdocs directory, just to fake it out?

No, vhosts are served by default from the htdocs directory. If this is present, then it is served. It is up to you what you put inside. If you have your data in a different directory and add a htdocs directory, then only the htdocs directory is served.
If you symlink the htdocs directory to someplace else, then the content of that place is served.
This is the agreed protocol of how it works. ;-)

Thank you for your time and help!


Bump Microsoft.Identity.Client to remove CVE

Is your feature request related to a problem? Please describe.
I want  my software to be free from CVE's
Describe the solution you'd like
A newer version of: Microsoft.Identity.Client is used ie 4.61.3
Describe alternatives you've considered
Transitive pinning in all my projects to remove it.
Additional context
Add any other context about the feature request here.

Duplicate of #2568

Azure.Identity depends on Microsoft.Identity.Client and 1.11.4 uses 4.61.3

Bur there is however an explicit dependency on the mackage.

@thompson-tomo I have a PR to remove the explicit dependency #2568

Closing as duplicate of #2568 Please follow that thread for updates


windows-bindgen release 0.60 request

Suggestion
Hi,
Previously, I've requested a 0.60 release here: #3232 We've decided back then that it wasn't necessary.
Since then, issue #3242 has been addressed, and a new 0.60 release has been published.
I would like to request a 0.60 release of the windows-bindgen crate now (and probably the windows crate as well, because it's generated by the newer bindgen) since the new release has happened, to incorporate the changes made for #3242.
Thank you!

Thanks for the official request - I only publish crates as needed to avoid the proliferation of versions. Are you ready for production, tested against the repo?

Thank you for such a quick reply! I’ve tested against an earlier version, but my project is extremely small so I can’t say it’s “production” grade. If it’s too much work or for any other reason is an issue, I guess I could say it’s not a big deal for now. It would be important when new win32metadata is released though.

No problem - ping me when you're back in the office and we can figure something out. Enjoy your vacation!


Issue with Firefox >=69, image is not showing

Describe the bug
When using Firefox >=69 (I only tested with 69 and 70-beta)
The lazyloading is acting in a weird way. The image is not loaded until the transition of the slider is finished.
It does not affect all images; (weird);
To Reproduce
Steps to reproduce the behavior:

Visit https://hexagon-plaquistes.experts-plaquistes.fr/
The slider initializes (slick slider); with a living room picture (OK)
The slider starts changing slides; It's loading an image of a white ceiling (OK)
The slider changes again the slides back to the initial image (the living room), and the bug appears there: the image is not showing until the transition finishes; (NOT OK)

Expected behavior
The image should show before the transitions ends
LazyLoad version
12.0.0
Desktop (please complete the following information):

OS: [MacOS, Windows]
Browser [Firefox]
Version [69, 70]

Screenshots

Additional context
May be related to #368 ?
Thanks :)

Hey @tristanbes,
this issue is known and it's because Slick Slider inject that image at the end of the slider after the transition ended.
Due to this specific behaviour, you shouldn't use LazyLoad to load slick slider images lazily, but the native Slick slider option. You can find documentation about it in the Slick slider website.

Also, if I may suggest you another slider library, please check out Swiper JS. It provides a much smoother and seamlessly native swiping effect, and it's library independent.

Thank you for this recommendation; I thought slick was the most recommendable one :). Will check that;


[Overview] Rapid-test

#239 - EXPOSUREAPP-3496 Entering negative test result should influence displayed risk status
#263 - EXPOSUREAPP-3672 After negative antigen rapid test: Show status: "Cannot spread virus" for some hours
#298 - EXPOSUREAPP-4714 Add information about rapid test results to app
#365 - EXPOSUREAPP-5140 Rapid test feature using cough detection
https://github.com/corona-warn-app/cwa-wishlist/issues/371 - // -Rapid Ag-Test infrastructur
https://github.com/corona-warn-app/cwa-wishlist/issues/374 - EXPOSUREAPP-5391 Warn contacts on positive home-use rapid test

Internal Tracking ID: EXPOSUREAPP-5469

@dsarkar If you want I can open a new issue and copy the text in there (so I can help keep the overview up to date) 🙂

@Ein-Tim Great! Go ahead! Thanks!

@dsarkar See #379


Permanent warnings are shown as "past" warnings in the list

When you /warn a player, the webinterface shows them as "Past warning". This doesn't make sense though.

Fixed by #126


Implement search in non native select

[x] This is a v1.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior
When select is opened and you start typing, it should find matching options.
Current Behavior
When non native select is opened and you start typing nothing happens
Examples

Context
Select is unusable for ling lists, like country selection for example.

@jbojcic1 I would encourage you to use the auto complete demos for this.

@oliviertassinari there is no input where user can type the value so I don't think autocomplete fits.

there is no input where user can type the value

Are we both talking about: https://material-ui.com/demos/autocomplete/?

Yes. What I am trying to say that for my use case (phone number input where click on flag opens country selector), there is no input so select is better match. This was supported in old version.

Any update on this? I'm also interested in this feature!

I'm closing as a duplicate of #8191.


udf: add WasmEdge bindings

Depends on having libwasmtime.so installed,
which can be done e.g. manually by compiling from source
and invoking make install later.
WasmEdge may not come with wat2wasm capabilities - in which case
only binary input will be accepted. That's still a very good
deal, because WasmEdge's slim runtime weighs just ~1.5MiB.
Tests need to be amended to fall back to using binary blobs
if wat2wasm is not available.
Fixes #94

(input text parameters now work)

The latest update has all the type mappings working. The test suite still needs to be updated to work with binary wasm if wat2wasm is not available.

@juntao @hydai if somebody from WasmEdge devs is willing to skim through the code and see if I followed good practices and avoided pitfalls, we'd be obliged!

One thing I still need to add is detecting if libwasmedge is available when configuring with ./configure

done


Add files via upload

I have included two sample filters : White Eyeball and evergreen dog filter.

Hello @phpduke! Thanks for opening this PR.

In the file microbots/Sample/dog.py:

Line 12:1: E303 too many blank lines (3)
Line 13:7: E231 missing whitespace after ','
Line 14:10: E231 missing whitespace after ','
Line 16:16: E226 missing whitespace around arithmetic operator
Line 16:27: E261 at least two spaces before inline comment
Line 16:28: E262 inline comment should start with '# '
Line 17:31: E226 missing whitespace around arithmetic operator
Line 17:40: E231 missing whitespace after ','
Line 17:42: E231 missing whitespace after ','
Line 19:16: E226 missing whitespace around arithmetic operator
Line 19:27: E261 at least two spaces before inline comment
Line 19:28: E262 inline comment should start with '# '
Line 20:26: E231 missing whitespace after ','
Line 20:33: E226 missing whitespace around arithmetic operator
Line 20:42: E231 missing whitespace after ','
Line 22:21: E261 at least two spaces before inline comment
Line 22:22: E262 inline comment should start with '# '
Line 23:26: E231 missing whitespace after ','
Line 23:42: E231 missing whitespace after ','
Line 27:5: E265 block comment should start with '# '
Line 29:13: E117 over-indented (comment)
Line 29:13: E265 block comment should start with '# '
Line 30:13: E117 over-indented
Line 30:36: E226 missing whitespace around arithmetic operator
Line 30:57: E226 missing whitespace around arithmetic operator
Line 31:13: E122 continuation line missing indentation or outdented
Line 31:21: E231 missing whitespace after ','
Line 31:23: E231 missing whitespace after ','
Line 31:38: E231 missing whitespace after ','
Line 31:40: E231 missing whitespace after ','
Line 31:43: E226 missing whitespace around arithmetic operator
Line 31:52: E222 multiple spaces after operator
Line 31:77: E226 missing whitespace around arithmetic operator
Line 31:98: E226 missing whitespace around arithmetic operator
Line 31:101: E501 line too long (133 > 100 characters)
Line 31:122: E231 missing whitespace after ','
Line 31:124: E231 missing whitespace after ','
Line 31:127: E226 missing whitespace around arithmetic operator
Line 34:1: E265 block comment should start with '# '
Line 35:1: E265 block comment should start with '# '
Line 36:1: E302 expected 2 blank lines, found 1
Line 36:60: E251 unexpected spaces around keyword / parameter equals
Line 36:62: E251 unexpected spaces around keyword / parameter equals
Line 37:14: E231 missing whitespace after ','
Line 38:17: E226 missing whitespace around arithmetic operator
Line 38:28: E226 missing whitespace around arithmetic operator
Line 39:35: E231 missing whitespace after ','
Line 39:61: E261 at least two spaces before inline comment
Line 40:14: E231 missing whitespace after ','
Line 42:13: E222 multiple spaces after operator
Line 42:24: E226 missing whitespace around arithmetic operator
Line 42:57: E261 at least two spaces before inline comment
Line 42:101: E501 line too long (117 > 100 characters)
Line 43:21: E261 at least two spaces before inline comment
Line 43:22: E262 inline comment should start with '# '
Line 43:101: E501 line too long (122 > 100 characters)
Line 44:13: E117 over-indented
Line 44:42: E231 missing whitespace after ','
Line 44:44: E231 missing whitespace after ','
Line 44:47: E261 at least two spaces before inline comment
Line 44:48: E262 inline comment should start with '# '
Line 45:23: E261 at least two spaces before inline comment
Line 45:24: E262 inline comment should start with '# '
Line 49:1: E302 expected 2 blank lines, found 1
Line 49:36: E231 missing whitespace after ','
Line 49:38: E231 missing whitespace after ','
Line 49:40: E231 missing whitespace after ','
Line 49:56: E251 unexpected spaces around keyword / parameter equals
Line 49:58: E251 unexpected spaces around keyword / parameter equals
Line 50:36: E231 missing whitespace after ','
Line 51:5: E265 block comment should start with '# '
Line 54:30: E231 missing whitespace after ','
Line 54:37: E231 missing whitespace after ','
Line 56:1: E265 block comment should start with '# '
Line 58:1: E302 expected 2 blank lines, found 1
Line 59:7: E231 missing whitespace after ','
Line 59:10: E231 missing whitespace after ','
Line 59:13: E231 missing whitespace after ','
Line 60:15: E226 missing whitespace around arithmetic operator
Line 60:23: E226 missing whitespace around arithmetic operator
Line 60:43: E226 missing whitespace around arithmetic operator
Line 60:48: E226 missing whitespace around arithmetic operator
Line 60:52: E226 missing whitespace around arithmetic operator
Line 65:31: E231 missing whitespace after ','
Line 66:31: E231 missing whitespace after ','
Line 67:31: E231 missing whitespace after ','
Line 68:31: E231 missing whitespace after ','
Line 69:14: E231 missing whitespace after ','
Line 69:16: E231 missing whitespace after ','
Line 69:18: E231 missing whitespace after ','
Line 71:1: E302 expected 2 blank lines, found 1
Line 73:11: E231 missing whitespace after ','
Line 73:13: E231 missing whitespace after ','
Line 73:15: E231 missing whitespace after ','
Line 73:54: E261 at least two spaces before inline comment
Line 73:55: E262 inline comment should start with '# '
Line 75:11: E231 missing whitespace after ','
Line 75:13: E231 missing whitespace after ','
Line 75:15: E231 missing whitespace after ','
Line 75:54: E261 at least two spaces before inline comment
Line 75:55: E262 inline comment should start with '# '
Line 77:11: E231 missing whitespace after ','
Line 77:13: E231 missing whitespace after ','
Line 77:15: E231 missing whitespace after ','
Line 77:54: E261 at least two spaces before inline comment
Line 77:55: E262 inline comment should start with '# '
Line 79:11: E231 missing whitespace after ','
Line 79:13: E231 missing whitespace after ','
Line 79:15: E231 missing whitespace after ','
Line 79:54: E261 at least two spaces before inline comment
Line 79:55: E262 inline comment should start with '# '
Line 81:11: E231 missing whitespace after ','
Line 81:13: E231 missing whitespace after ','
Line 81:15: E231 missing whitespace after ','
Line 81:54: E261 at least two spaces before inline comment
Line 81:55: E262 inline comment should start with '# '
Line 83:11: E231 missing whitespace after ','
Line 83:13: E231 missing whitespace after ','
Line 83:15: E231 missing whitespace after ','
Line 83:54: E261 at least two spaces before inline comment
Line 83:55: E262 inline comment should start with '# '
Line 84:14: E231 missing whitespace after ','
Line 84:16: E231 missing whitespace after ','
Line 84:18: E231 missing whitespace after ','
Line 137:17: E265 block comment should start with '# '
Line 137:17: E303 too many blank lines (2)
Line 139:13: E265 block comment should start with '# '
Line 140:17: E265 block comment should start with '# '

In the file microbots/Sample/eyes.py:

Line 38:5: E265 block comment should start with '# '
Line 43:101: E501 line too long (102 > 100 characters)
Line 45:101: E501 line too long (107 > 100 characters)
Line 50:101: E501 line too long (118 > 100 characters)
Line 81:30: E231 missing whitespace after ','
Line 83:22: E231 missing whitespace after ','
Line 83:24: E231 missing whitespace after ','
Line 86:18: E231 missing whitespace after ','
Line 86:20: E231 missing whitespace after ','
Line 91:1: E302 expected 2 blank lines, found 1
Line 92:1: E101 indentation contains mixed spaces and tabs
Line 92:1: W191 indentation contains tabs
Line 92:2: E117 over-indented (comment)
Line 93:1: W191 indentation contains tabs
Line 93:2: E117 over-indented
Line 95:1: W191 indentation contains tabs
Line 96:1: W191 indentation contains tabs
Line 97:1: W191 indentation contains tabs
Line 98:1: W191 indentation contains tabs
Line 98:3: E117 over-indented
Line 100:1: W191 indentation contains tabs
Line 101:1: W191 indentation contains tabs
Line 105:1: E303 too many blank lines (3)
Line 106:1: E101 indentation contains mixed spaces and tabs
Line 106:4: E111 indentation is not a multiple of four
Line 107:4: E111 indentation is not a multiple of four
Line 108:4: E111 indentation is not a multiple of four
Line 109:4: E111 indentation is not a multiple of four
Line 110:7: E111 indentation is not a multiple of four

In the file microbots/Sample/faceSwap.py:

Line 38:32: E703 statement ends with a semicolon
Line 43:44: E703 statement ends with a semicolon
Line 64:101: E501 line too long (115 > 100 characters)
Line 89:74: E703 statement ends with a semicolon
Line 102:101: E501 line too long (103 > 100 characters)
Line 103:5: E122 continuation line missing indentation or outdented
Line 105:101: E501 line too long (110 > 100 characters)
Line 238:13: E303 too many blank lines (2)
Line 241:1: W391 blank line at end of file

Do see the Hitchhiker's guide to code style


Positioning the viewport

Hi, is it possible yet?
I save the status and want users to be able to restore it. To do this, I would have to reposition the viewport. Croppie had something with points

Can you clarify what exactly you want to save and restore?