Commit Graph

1231 Commits

Author SHA1 Message Date
Jehan 952c24e81b devel-docs: remove gtkbuilder-porting-guide.txt from EXTRA_DIST. 2021-11-15 16:04:19 +01:00
Jehan 74aa6a2e71 devel-docs: remove gtkbuilder-porting-guide.
Over the last few years, we seem to have been in agreement that .ui
files are not so desirable anymore.

For plug-ins, they are completely deprecated in favor of our much nicer
dialog generation API from properties (the metadata plug-in(s) are the
only ones which still have .ui files but we plan to get rid of these
eventually).
For core code even, we also prefer to generate GUI when we can (as we do
for GEGL ops, for symmetries and other places).
GtkBuilder files actually make for more complicated code, imbricated in
both the C code and .ui files, more bug-prone too and we don't seem to
gain anything from the additional complexity.

So let's get rid of this dev guide.
2021-11-15 13:46:37 +01:00
Jehan 4856d725aa devel-docs: add some more tricks to review MR in Gitlab.
- The trick to fetch automatically all MRs in read-only branches.
- How to temporarily checkout and push to a contributor's remote without
  actually hard-naming their remote repo and polluting your local repo
  with every new MR.
2021-11-03 15:20:25 +01:00
Jehan 3e58204908 devel-docs: GIMP_VERSIONS was renamed some time ago. 2021-10-20 00:55:40 +02:00
Jehan ee46618d7f devel-docs: release howto update. 2021-10-17 21:48:28 +02:00
Jacob Boerema 352ef68c46 app, libgimp: Add metadata preference for saving thumbnail by default
Saving a thumbnail is closely related to the other metadata preferences,
but so far this was the only one that didn't have a preference for a
default user value.
This commit adds a preference in the metadata section where a user can
select whether thumbnail saving is enabled by default or not.
2021-10-12 13:20:47 -04:00
Jehan fadda1b8db devel-docs: we must still restart a plug-in to debug with SIGCONT.
Commit 59f2ba44c7 changed the devel docs to tell that on Linux, just
running the gdb command `continue` is enough to restart the plug-in
process. Maybe it is true on some specific setups, so I leave this part
of the note, but for sure it never worked for me. I may run `continue`
as many times as I want, the process stays stopped until I explicitly
send a SIGCONT signal (our code raises itself a SIGSTOP which requires a
SIGCONT for continuation of the process).

Maybe in some configurations, gdb actually sends a SIGCONT when
`continue` is run but not in others? No idea.

Anyway I add back the part about sending a SIGCONT too, then people can
test and choose which procedure works for them.
2021-08-22 19:01:10 +02:00
Jehan 2749706442 devel-docs: update release-howto file. 2021-08-05 00:14:22 +02:00
Stanislav Grinkov c87d6d96f2 Fix issue with generating GIR API docs in meson
Caused by using a non-absolute path to .gir files in
meson.build rules

Resolves: #6362
2021-08-03 18:04:25 +06:00
Jehan 81b076aed4 devel-docs: some info on new Gitlab MR feature to create test packages.
How to create the packages through MR labels and where to find the
resulting test packages…

Note that it would be nice if we had automatic messages on the MR
writing down the procedure (with generated links for the specific
pipeline ID) once a pipeline succeeds.
It would simplify the whole process even further. We can see some other
day how such a thing could be automated.
2021-05-28 21:30:12 +02:00
lloyd konneker 1c537b0cfd Add devel doc 2021-05-24 13:28:50 +00:00
Jehan 3027b4eb4c devel-docs: update a bit the release-howto.
In particular add the need to wait a bit for installers before actually
publishing news. Also add a few usage examples for the gimp-web helper
tools for binary file publishing (torrent creation and mirror checking).
2021-05-06 02:47:18 +02:00
Jehan 8d8c77730c devel-docs: release-howto updated.
Update in particular the tarball creation steps. We now use tarballs
generated by the CI. I still leave information for doing it locally in
this howto, but mostly so that we can easily find this info for testing
or fixing dist bugs when needed. Other than this, if the CI works
flawlessly, a successful pipeline ends up with a proper tarball.

The main advantages of this approach are:

- Transparency: the full distribution process is now fully accessible on
  Gitlab, from the source, through the build (including all the logs)
  and up to the final tarball. Even the checksums are generated by the
  CI, making it easy to recognize if different tarballs were published
  on the download website or mirrors. This makes for a much safer and
  trustworthy publication process.

- Less bus factor: we don't rely as much on a single person to take care
  of the whole process.

- More automatization: a release still has to be prepared and verified
  manually (it always will), but at least the whole tarball creation is
  now automated. The next step will be to automate also the publication
  on the download server.
2021-04-29 20:21:30 +02:00
Jehan 9b978467c1 devel-docs: update release-howto. 2021-04-26 12:05:16 +02:00
Jehan 88e6a8ec83 devel-docs: update the removed_functions table. 2021-04-21 00:40:28 +02:00
Jehan 70a9576f27 app, devel-docs, libgimpbase: s/gimp_parasite_name/gimp_parasite_get_name/…
… and s/gimp_parasite_flags/gimp_parasite_get_flags/

It is better to have a consistent API and the fact is that most
getter/setter functions use the _get|set_ naming, but these didn't.

I wondered if this was such a great idea to rename these anyway because
even though we are breaking API in GIMP 3, is it the best idea to rename
when no functional change happened? After discussing with Wormnest, we
still agreed it was still better to go for consistency rather than
regret later (and be stuck with these names for many more years).

Also this fixes these warnings:

> [649/1205] Generating gimp-3.0.vapi with a custom command
> Gimp-3.0.gir:24162.7-24162.56: warning: Field `Gimp.Parasite.flags' conflicts with method of the same name
> Gimp-3.0.gir:24318.7-24318.52: warning: Field `Gimp.Parasite.name' conflicts with method of the same name
2021-04-05 18:36:44 +02:00
Jehan f3ee39c3c4 devel-docs: quick command to get the right flatpak runtime version.
For debugging the flatpak, we often ask people to install the SDK and
debug data. Yet there might be several branches of the GNOME SDK
installed at once, hence flatpak will ask which version to install.

This quick command can be copy-pasted as it's a way to detect which
runtime is being used by your flatpak-ed GIMP.
2021-03-28 17:18:52 +02:00
luz paz 6457394069 Issue #6446: Typo fixes. 2021-02-24 12:33:03 +01:00
Niels De Graef dffab0e9a4 Remove GimpInt16Array
It isn't being used by any plug-in or any code in GIMP at all even.
Let's get rid of it while we can still break API, so we can cut down on
all the complexity of the gimp-param stuff a bit.
2021-02-18 11:32:45 +00:00
Jehan 015f49467d Issue #6435: Off canvas guides.
Allow guides with off-canvas position since we can now view and work
outside the canvas.

The guide deletion interaction does not change too much, except you
don't delete a guide because it's dropped off-canvas but off the display
viewport area instead.

The XCF format is technically unchanged as PROP_GUIDES was already
expecting an int32 coordinate (with max value at GIMP_MAX_IMAGE_SIZE,
way below uint32 max anyway). Yet our code and XCF docs was explicitly
asking to ignore negative coordinate guides, which makes a change in
behavior for the XCF parser, hence a new version XCF 15. Loading will
still ignore negative position guides (even also bigger than image
dimension guides now) for XCF 14 and below, but will now accept any
position for XCF 15 and above.
2021-02-15 22:52:27 +01:00
Jehan 72af40b427 devel-docs: generate both gjs (Javascript) and Python API docs.
Apparently g-ir-doc-tool does not support other language than C, Python
and gjs right now (in particular neither Lua nor Vala bindings).
2021-01-29 18:04:20 +01:00
Jehan eae3d47e32 devel-docs, meson: g-ir-doc option to generate introspected API docs.
Similar to the --enable-g-ir-doc option I just added on autotools. Also
separate this option from gtk-doc as it is unrelated (not everything
under devel-docs is related to gtk-doc!).
2021-01-29 16:51:47 +01:00
Jehan 4b39217181 devel-docs: generate Python API (GObject Introspected) documentation.
So much easier to write in autotools! Anyway here it is, also with a new
option --enable-g-ir-doc (by default set to false).
2021-01-29 15:22:36 +01:00
Jehan 82209920a9 devel-docs: Introspected Python libgimp and libgimpui docs generation.
Based on the proposed process proposed by Akkana Peck. Thanks Akk!
For now, it's only in the meson build, which is fairly terrible to use
as soon as we do custom build rules. Here are the list of issues:

- meson does not allow building in subdir (issue 2320 on meson tracker).
  Sure I could make several subdirs with meson in them. But here the
  future goal would be to be able to generate docs for other
  introspected languages, and maybe also other output formats (epub or
  whatnot). For this, since these are basically the same commands which
  are used, the best practice would be to have loops generating one
  target per language/format combination, reusing code rather than ugly
  copy-pasting in subdirectories' meson files).
- custom_target() requires the output parameter to be the complete list
  of generated files. But we have more than a thousand of them. It's not
  practical. Maybe we could try to find a way to generate the list from
  the contents of the .def files which are already exhaustive and exact.
- Install also requires the output list to be complete.
- I temporarily have these docs not generated by default (because the
  gtk-doc option is already crazy slow as it is, making meson near
  unusable for development if it's enabled). If you want to generate the
  docs, the commands are as following (yeah I don't understand what the
  target names are for since meson does not actually create targets with
  these names, so we have to use fake output names instead):

> ninja devel-docs/g-ir-docs/Gimp-python-html
> ninja devel-docs/g-ir-docs/GimpUi-python-html
2021-01-21 16:50:47 +01:00
Niels De Graef 6dc3cb16dd devel-docs: Update libgimpwidgets3-sections.txt
Some functions have been removed while others got added.
2020-12-29 23:07:07 +01:00
Jehan 50a0f49762 devel-docs: some small release-howto updates. 2020-12-23 01:54:10 +01:00
Michael Natterer 82391c136b devel-docs: some updates to release-howto.txt 2020-12-22 20:40:31 +01:00
bootchk 59f2ba44c7 libgimp, devel-docs: enhance GIMP-PLUGIN-DEBUG backtrace 2020-12-18 01:17:54 +01:00
luz paz bb322d94d7 Fix typos
Found via:
```
codespell -q 3 -S ./ChangeLog*,*.po,./.git,./NEWS* -L als,ang,ba,chello,daa,doubleclick,foto,hist,iff,inport,klass,mut,nd,ower,paeth,params,pard,pevent,sinc,thru,tim,uint
```
2020-11-19 21:56:25 +01:00
Akkana Peck a7f40df469 Add some new files to the GIMP3-plug-in-porting-guide, including a README 2020-10-27 10:20:06 -06:00
Jehan 4d67667efc devel-docs: add a "removed functions" table with replacement proposal.
Let's start up some porting guide for plug-in developers. One of the
first things to do is to get rid of any deprecated functions from 2.10
or older versions. In the current stable, these would "just" output
warnings, but in the dev version, all deprecated functions got removed
and the build would fail.

This list may not be complete. I mostly created it by some grep on
deprecated functions from libgimp 2.10.
2020-10-26 15:36:42 +01:00
Michael Natterer 0052803313 devel-docs: REVERT THIS once module.actions get removed automatically
Add the newly generated .actions files to CLEANFILES manually.
2020-10-25 20:18:52 +01:00
Michael Natterer 4e79aaf20c devel-docs: add the newly generated module.actions files to .gitignore 2020-10-25 19:57:30 +01:00
Niels De Graef 43d0f0fbd2 gimppdb: Allow more easy bindable API
Plug-ins that work from different bindings probably want to use their
own list-type to specify arguments, rather than working with a more
cumbersome `GimpValueArray`.

This new API should make it less verbose. For example:

```
args = Gimp.ValueArray.new(5)
args.insert(0, GObject.Value(Gimp.RunMode, Gimp.RunMode.NONINTERACTIVE))
args.insert(1, GObject.Value(Gimp.Image, image))
args.insert(2, GObject.Value(Gimp.Drawable, mask))
args.insert(3, GObject.Value(GObject.TYPE_INT, int(time.time())))
args.insert(4, GObject.Value(GObject.TYPE_DOUBLE, turbulence))
Gimp.get_pdb().run_procedure('plug-in-plasma', args)
```

becomes

```
Gimp.get_pdb().run_procedure('plug-in-plasma', [
    GObject.Value(Gimp.RunMode, Gimp.RunMode.NONINTERACTIVE),
    GObject.Value(Gimp.Image, image),
    GObject.Value(Gimp.Drawable, mask),
    GObject.Value(GObject.TYPE_INT, int(time.time())),
    GObject.Value(GObject.TYPE_DOUBLE, turbulence),
])
```
2020-09-20 11:36:01 +00:00
Niels De Graef 5d3ca7d714 propwidget: Add gimp_prop_switch_new()
Allow developers to add a `GtkSwitch` based on a property. Also start
using it in the first preferences page.
2020-08-22 23:53:49 +00:00
Ell d7de0781ab devel-docs: document new "Messages" performance-log parameter 2020-08-02 11:02:01 +03:00
Ell 0fae46133c devel-docs: use actual em-dashes in performance-logs documentation 2020-07-30 18:27:48 +03:00
Ell ca6f577413 devel-docs: remove old performance-logs-parameters section 2020-07-30 18:19:50 +03:00
Ell 1d70fee1fd devel-docs: fix image URL in performance-logs documentation 2020-07-30 18:17:59 +03:00
Ell d72e6b3aed devel-docs: update documentation of performance-log parameters 2020-07-30 18:15:32 +03:00
Jehan b5af88a563 devel-docs: add some debugging tricks for Flatpak.
The `info line` in particular was given by Ell and will make trace
handling a lot easier as it means we may not have to ask for traces with
debug symbols or gdb with Flatpak. We can indeed get these infos back
ourselves since we are guaranted to use the exact same binaries.

This together with the change in verbose version output I did 2 weeks
ago (commit bc5f6371e9), allowing us to check the exact Flatpak hash
commit used by a reporter, Flatpak debugging should be a lot easier with
just the simpler stack trace format.
2020-07-30 16:55:46 +02:00
Jehan 6449dd7c14 devel-docs: add a tip for testing an older GIMP version with flatpak.
Flatpak repositories can store successive builds (up to 20 in the
Flathub repository in particular), even though by default it installs
only the last build.
I added in `debugging-tips.txt` the commands to search for and
explicitly install an older build of our official GIMP build. This can
be useful to compare some behaviorial changes as reported by users,
without having to re-compile old commits just for a quick test.
2020-06-01 17:21:29 +02:00
Jehan 7e0adbc282 devel-docs: update XCF docs with XCF 14 changes. 2020-05-17 18:32:16 +02:00
Niels De Graef ec7db847d0 docs: libgimp3: Add missing GimpProgressVtable*Func
We added these entries for the GObject introspection annotations, but
forgot to add them to the gtk-doc sections.
2020-05-12 22:55:19 +02:00
Niels De Graef 7a8a300adc gimpconfig-iface: Use G_DECLARE_INTERFACE 2020-05-10 14:45:19 +00:00
Niels De Graef 65b12c108d libgimpwidgets: UnitStore: Fix conflicting names
`gimp_unit_store_get_value()` clashes with the `get_value()` method of
its parent class GtkTreeStore. This means trouble for bindings, as seen
here in some pseudocode:

```vala
var unit_store = new Gimp.UnitStore();
// Which function are we referencing here, the one from GtkTreeStore or
// the one from GimpUnitStore? Worse, they both have different arguments
unit_store.get_value( ... )
```
2020-05-10 12:06:33 +00:00
Jehan 29b1d91b76 devel-docs: update debugging-tips with GEGL's meson option names. 2020-05-05 18:42:26 +02:00
Niels De Graef cf41d1fdf8 colorselector: Rename signal emitters
The GIR parser is giving warnings because both e.g. a signal, a
corresponding vfunc and a method emitting it are named
"channel_changed", which can and will give issues in some bindings.

The easiest option is to follow the general convention of starting the
signal emitters with `emit_`, which also makes clear the intention of
the method.
2020-05-03 23:23:44 +02:00
Niels De Graef 878804fb01 Cleanup GObject signal marshallers
* Don't generate our own marshallers if they are available in GLib
  already
* Don't set the c_marshaller parameter in `g_signal_new()` if it's a
  default marshaller provided by GLib. See commit message of commit
  39e4aa3c57 on why this is the case.
2020-04-01 21:20:01 +00:00
Tobias Ellinghaus 9908c14fbf
devel-docs: Fix id of PROP_BLEND_SPACE 2020-03-30 11:04:59 +02:00