MantisBT not listing changelog - mantis

I am making use of MantisBT to track issues and have so far collected a number of issues. However, my changelog remains empty
No Change Log information available. Issues are included once projects
have versions and issues are resolved with "fixed in version" set.
Each bug report has
Product version, target version (needed for roadmap) and a fixed in version (needed for changelog).
Likewise I have released certain versions.
I have customized my workflow and I suspect this is part of the reason.
# custom access list
$g_access_levels_enum_string = '10:VIEWER,20:REPORTER,30:ENGINEER,40:CCB,90:ADMINISTRATOR';
# custom resolution list
$g_resolution_enum_string = '10:OPEN,20:REOPEN,30:WONTFIX,60:DISPOSITIONED, 70:FIXED';
From what I have been able to determine, for a changelog to appear you need
1) a released version (done)
2) a bug with a fixed in version matching this (done
3) a bug closed as "fixed"
now in a fresh MantisBT (and testing shows changelog works), FIXED has a constant of 20 so part of me suspect it is my g_resolution_enum_string but this would also imply that there should be another variable that sets which threshold should be used
$g_bug_resolution_fixed_threshold = FIXED;
This does not work
What am I missing? Also if it is of importance... my versions are labeled: v0.0, v0.1, v0.2 (ie prepended by 'v')

I suggest you read the documentation's Enumerations section, in particular
The strings included in the enumerations here are just for documentation purposes
So, your enum definition of 70:FIXED does not actually match the constant FIXED which, as you have pointed out, is still set to 20 which means that $g_bug_resolution_fixed_threshold actually points to your 20:REOPEN... You may want to define your own constants.
Also note that there is another important threshold in this context, $g_bug_resolution_not_fixed_threshold - resolutions above it are considered to be resolved in an unsuccessful way. By default it is set to _UNABLE_TO_REPRODUCE_ (40).
In other words, for an issue to appear in the Changelog, it must match all of the following criteria (reference):
status >= bug_resolution_fixed_threshold
resolution >= bug_resolution_fixed_threshold
resolution < bug_resolution_not_fixed_threshold
Note that this standard behavior can be changed with a custom function.
So your problem is indeed caused by your custom resolution_enum_string, most likely in combination with the values in the 2 above-mentioned thresholds.

Related

Microsoft Visual Studio extension (VSIX) lower case $safeprojectname$

Context
I'm developing a Microsoft Visual Studio extension, for which I've seen there are:
$projectname$ variable to get the name given to the project,
$safeprojectname$ variable to get the name given to the project with all unsafe characters and spaces replaced by underscore.
Source: https://learn.microsoft.com/en-us/visualstudio/ide/template-parameters?view=vs-2019
For example with project name "Tata yoyo" variables will be:
$projectname$ = "Tata Yoyo SWIG",
$safeprojectname$ = "Tata_Yoyo_SWIG".
The extension I'm building is for SWIG projects that will generate Java from C++, and in this context there is a swig.exe call that, among others, takes the Java package as parameter, for which I want it to be all lower case, but for now it is com.company.$safeprojectname$, then, not necessarily lower case (pointing the obvious: if project name is not lower case, package will not be lower case) and I then have to convert it manually to lower case.
What I'm looking for
From source page above (and other documentation pages) I've already seen there is no $lowercasesafeprojectname$ for example, then if anybody knows a way to do it from a function, script or any other way I would be glad.
Edit: while I want for this purpose a lower case safe project name I still want to keep the original $safeprojectname$, then even if #Ed Dore answer is relevant it is not the solution for me.
In any case, do not hesitate if this is not clear or you want more information.
Thanks
If you implement a custom wizard (IWizard) with your template, you can replace the respective token values in the ReplacementsDictionary passed to your IWizard.RunStarted method, with lowercased equivalents.
Sincerely,

Delete Bigtable row in Apache Beam 2.2.0

In Dataflow 1.x versions, we could use CloudBigtableIO.writeToTable(TABLE_ID) to create, update, and delete Bigtable rows. As long as a DoFn was configured to output a Mutation object, it could output either a Put or a Delete, and CloudBigtableIO.writeToTable() successfully created, updated, or deleted a row for the given RowID.
It seems that the new Beam 2.2.0 API uses BigtableIO.write() function, which works with KV<RowID, Iterable<Mutation>>, where the Iterable contains a set of row-level operations. I have found how to use that to work on Cell-level data, so it's OK to create new rows and create/delete columns, but how do we delete rows now, given an existing RowID?
Any help appreciated!
** Some further clarification:
From this document: https://cloud.google.com/bigtable/docs/dataflow-hbase I understand that changing the dependency ArtifactID from bigtable-hbase-dataflow to bigtable-hbase-beam should be compatible with Beam version 2.2.0 and the article suggests doing Bigtble writes (and hence Deletes) in the old way by using CloudBigtableIO.writeToTable(). However that requires imports from the com.google.cloud.bigtable.dataflow family of dependencies, which the Release Notes suggest is deprecated and shouldn't be used (and indeed it seems incompatible with the new Configuration classes/etc.)
** Further Update:
It looks like my pom.xml didn't refresh properly after the change from bigtable-hbase-dataflow to bigtable-hbase-beam ArtifactID. Once the project got updated, I am able to import from the
com.google.cloud.bigtable.beam.* branch, which seems to be working at least for the minimal test.
HOWEVER: It looks like now there are two different Mutation classes:
com.google.bigtable.v2.Mutation and
org.apache.hadoop.hbase.client.Mutation ?
And in order to get everything to work together, it has to be specified properly which Mutation is used for which operation?
Is there a better way to do this?
Unfortunately, Apache Beam 2.2.0 doesn't provide a native interface for deleting an entire row (including the row key) in Bigtable. The only full solution would be to continue using the CloudBigtableIO class as you already mentioned.
A different solution would be to just delete all the cells from the row. This way, you can fully move forward with using the BigtableIO class. However, this solution does NOT delete the row key itself, so the cost of storing the row key remains. If your application requires deleting many rows, this solution may not be ideal.
import com.google.bigtable.v2.Mutation
import com.google.bigtable.v2.Mutation.DeleteFromRow
// mutation to delete all cells from a row
Mutation.newBuilder().setDeleteFromRow(DeleteFromRow.getDefaultInstance()).build()
I would suggest that you should continue using CloudBigtableIO and bigtable-hbase-beam. It shouldn't be too different from CloudBigtableIO in bigtable-hbase-dataflow.
CloudBigtableIO uses the HBase org.apache.hadoop.hbase.client.Mutation and translates them into the Bigtable equivalent values under the covers

Latest SDK version 0.4.150414 giving never seen before warnings

What do these warnings mean when running our pipeline?
1497 [main] WARN com.google.cloud.dataflow.sdk.Pipeline - Transform
AsIterable2 does not have a stable unique name. In the future, this
will prevent reloading streaming pipelines
The warning in question indicates that the specified transform -- AsIterable2 -- isn't uniquely named. A likely cause of this is that there are two applications of an AsIterable transform at the top-level.
You can get rid of the warning by using the PTransform#setName method on the transform in question.
We attempt to infer names from the class names being applied. The only times it should be necessary to set an explicit name are:
When using an anonymous PTransform or DoFn.
When the same named transform is used multiple times within the same PTransform.
Specifically, requirement #2 means that if you use a named PTransform multiple times within an outer PTransform you need to make sure that each application has a different name. For instance:
input.apply(someTransform)
.apply(View.<TableRow>asIterable().withName("iterable1"));
input.apply(someOtherTransform)
.apply(View.<TableRow>asIterable().withName("iterable2"));
instead of:
View.AsIterable<TableRow> iterable = View.TableRow>asIterable().setName("aName");
input.apply(someTransform).apply(iterable);
input.apply(someOtherTransform).apply(iterable);

XTSE1650: net.sf.saxon.trans.LicenseException: Requested feature (xsl:import-schema) requires Saxon-EE

I use java and saxonee-9.5.1.6.jar included build path , when run, getting these errors at different times.
Error at xsl:import-schema on line 6 column 169 of stylesheet.xslt:
XTSE1650: net.sf.saxon.trans.LicenseException: Requested feature (xsl:import-schema)
requires Saxon-EE
Error on line 1 column 1
SXXP0003: Error reported by XML parser: Content is not allowed in prolog.
javax.xml.transform.TransformerConfigurationException: Failed to compile stylesheet. 1 error detected.
I open .xslt file in hex editor and dont see any different character at the beginning AND
I use transformerfactory in a different project but any error I get.
Check what the implementation class of tFactory is. My guess is it is probably net.sf.saxon.TransformerFactoryImpl - which is basically the Saxon-HE version.
When you use JAXP like this, you're very exposed to configuration problems, because it loads whatever it finds sitting around on the classpath, or is affected by system property settings which could be set in parts of the application you know nothing about.
If your application depends on particular features, it's best to load a specific TransformerFactory, e.g. tFactory = new com.saxonica.config.EnterpriseTransformerFactory().
I don't know whether your stylesheet expects the source document to be validated against the schema, but it it does, note that this isn't automatic: you can set properties on the factory to make it happen.
I would recommend using Saxon's s9api interface rather than JAXP for this kind of thing. The JAXP interface was designed for XSLT 1.0, and it's a real stretch to use it for some of the new 2.0 features like schema-awareness: it can be done, but you keep running into limitations.

jira query to compare list fields

I'm trying to write a query that will return all issues where the set of fixed version(s) is not the same as the set of affected version(s).
The naive solution of affectedVersion = fixVersion fails with:
The value 'fixVersion' does not exist for the field 'affectedVersion'.
Trying to use 'is' fails as well.
How can I do this? I'm willing to install any extra plugins if required, but I'm hoping there's just syntax that I dont know.
It's definitely not possible with Jira out of the box. See the documentation on "Advanced Searching" where it says "Be aware that it is not possible to compare two fields."
When I had this problem I didn't find any plugins that can do this, but maybe someone else knows one.
Looked for a solution for this as well and came up with this filter creation.
I'm comparing the planned to the fixed (you can obviously do the same for affected instead).
Limitation is that you need to maintain the query for each release you are fixing to:
("Planned for Version" in ("2.3.0") AND fixVersion not in ("2.3.0")) OR
("Planned for Version" in ("2.4.0") AND fixVersion not in ("2.4.0"))

Resources