Twitter G+ Facebook YouTube Donate

News

EFL 1.22.4 release

  • 2019-09-04 - by Mike Blumenkrantz
Fixes:
  • edje signal - let's not crash if something odd happens
  • edje signal matches - try number 3 to try plug all the holes
  • edje - backport fix to opt that actually was a fix to existing bug
  • evas -gl engines - buffer age - bring back fix for changing buffer age
  • eio - don't call cb's after a cancel
  • elm sel mgr - remove event handlers when no drop targets are left
  • theme: fix fileselector search button layout
  • evas vector: set proper parents of clone objects.
  • evas svg: fix missing node opacity attribute.
  • ecore: also error when trying to add an event handler for a type 0 event
  • elm_actionslider: fix internal state when programmatically changing value
  • evas/box: avoid triggering smart_move callback
  • ecore: avoid breaking next main loop start if quit occurs outside of loop
  • evas: fix type checking of Evas pointers in legacy functions
  • evas/map: permit evas_map_free(NULL)
  • ecore_evas buffer: fix a deadlock issue.
  • efl_ui_widget: add safety checks to verify parents aren't being added as children
  • [elm] Add missing sizing eval hook at radio
  • elm/glview: fix glview to (again) return null if context creation fails
  • elm_test/plug: fix error handling
  • elm/ctxpopup: check list existence before trying to delete list items
  • efl_ui/popup: implement efl.file.unload for popup backwall part
  • efl_ui/popup: unset callbacks on win object when parent is removed
  • elm/config: monitor MODIFIED events on config files
  • elm/config: fix config usage with EFL_RUN_IN_TREE set
  • efl_ui/flow.box: fix item calc with mixed weights
  • elm/hoversel: avoid calling api functions on null hoversel objects
  • efl/io: fix race condition with child model deletion
  • eio/poll: avoid ever dereferencing the backend's parent in a thread
  • evas events: fix corrupted mouse events behavior on mapped object.
  • evas_vg: fix alpha animation bug in case of partial update
Download:
LINK SHA256
efl-1.22.4.tar.xz 454002b98922f5590048ff523237c41f93d8ab0a76174be167dea0677c879120

EFL 1.23.0 alpha 1

  • 2019-09-02 - by Stefan Schmidt

With this alpha release we are marking the freeze and start of the stabilization phase for the efl 1.23 release cycle. Please give it some testing and report problems to us so we can work towards a well working release. Its our first official release based on the meson build system, be extra careful if you see problems with this.

Features:

  • ecore-drm2: Add background_color to crtc atomic properties
  • ecore-drm2: Fill in crtc background color (if supported) during atomic commits
  • ecore-drm2: Add API function to set crtc background color
  • eolian: remove @nullable keyword
  • ecore-drm2: Add API to check if vblank is supported
  • eolian: remove param @nonull
  • eolian: rename @warn_unused and its associated API
  • eolian: initial versioning implementation
  • evas: enable setting any object as a clipper
  • eina/hash: add direct variants of list append/prepend functions
  • edje: improve user-defined data caching to handle data before file is set
  • edje: Add support for map zoom to use other part center.
  • efl_ui_textpath: introduce efl_ui_textpath_circular_set() interface.
  • efl_ui/layout_base: add “finger_size_multiplier” property (T8059)
  • evas: add 'has_fixed_size' property for canvas objects
  • efl/hints: add restricted and combined max size hints (T8122)
  • efl_ui_animation_view: introduce a new widget for controlling vector animation.
  • efl_ui: add scrollable_content mixin

Fixes:

  • remove vpath test for user dir the test was broken and fixing is insane (T7728)
  • tests - fix check header to always include eina due to windows
  • tests - remove one of the eina strtod tests as libc is failing
  • ecore_imf: do not loop forever on shutdown when there is no more a display
  • efl_ui_list: fix to delete sub objects in efl_object_invalidate
  • efl_ui_widget: Fix disabled set calling without meaning. (T7799)
  • evas - fix crash/junk pixel content but with tiled rotate at 270 + neon
  • ecore-drm2: Make atomic property values support uint64_t
  • evas image: check format more strong way for wbmp.
  • elm_atspi_bridget: Fix resource leak (CID1399424)
  • elput: Remove useless call to eldbus_message_unref
  • efl_core_command_line: Fix resource leak (CID1399105)
  • ecore-evas-x: Fix double free (CID1382851)
  • static_libs/vg_common: Fix resource leak (CID1382215)
  • elm_theme: Check the ref count to delete or unref.
  • elc_hoversel: Fix crash when no sd->last_location
  • ecore drm2 - fix timeout in case case called from thread
  • eina_test_file: Fix memory leak (CID1401072)
  • efl_check: Fix memory leak (CID1401070)
  • elm_test_widget_focus: Fix memory leak (CID1401069)
  • emile_test_base64: Fix resource leak (CID1401062)
  • evas_test_mesh: Fix memory leak (CID1401009)
  • eina_test_binbuf: Fix memory leak (CID1401004)
  • efl_ui_test_widget: Fix memory leak (CID1401003)
  • efl_ui_test_widget: Fix memory leak (CID1400844)
  • eina_bench_stringshare: Fix resourcce leak (CID1400975)
  • evas_test_image: Fix resource leak (CID1400945)
  • eina_test_file: Fix resource leak (CID1400926)
  • eldbus_test_eldbus_message: Fix resource leak (CID1400921)
  • efl_ui_test_widget: Fix memory leak (CID1400889)
  • emile_test_base64: Fix resource leak (CID1400868)
  • efl_ui_test_widget: Fix resource leak (CID1400857)
  • emile_test_base64: Fix resource leak (CID1400852)
  • ecore_test_ecore_file: Fix resource leak (CID1400825)
  • efl_ui_test_widget: Fix resource leak (CID1400824)
  • emile_test_base64: Fix resource leak (CID1400820)
  • emile_test_base64: Fix memory leak (CID1400815)
  • eina_test_ustr: Fix resource leak (CID1400784)
  • eina_test_tiler: Fix resource leak (CID1401068)
  • eo_test_manager_xattr: Fix resource leak (CID1400953)
  • eina_test_strbuf: Fix resource leak (CID1400952)
  • evas_object_textblock: Fix binary search fail.
  • eolian: refactor parsing API and path handling (T7820)
  • evas/image: fix broken auto_fill mechanism when manually changing fill
  • elm_test: fix some bugs in elm_image tests
  • ecore-evas-drm: Check if vblank is supported
  • benchmarks: Fix copy-paste error (CID1401052)
  • evas/render: fix proxy clipping when source_clip is disabled
  • elm_color_class: use legacy event for genlist selection
  • efl_ui_focus_manager_sub: handle manager change when tree is set to unfocusable
  • edje/calc: correctly handle swallow/group objects as clippers for state clips
  • gl_generic: handle image orientation setting when texture has not been created
  • ecore/timer: fix handling of timer freeze during construction
  • edje/load: (more) correctly handle part updates after changing edje group
  • efl_canvas_layout: permit part_type_get on invalid parts
  • eina/prefix: ignore magic files when running in tree
  • efl_ui_focus_manager/calc: handle redirect setting if no previous redirect set
  • elm/layout: do not trigger sizing eval on subobj deletion if no resize_obj set
  • elm/layout: do not trigger sizing eval at end of canvas_group_add
  • elm/colorselector: return early from theme apply if object is not yet finalized
  • elm/diskselector: fix handling in theme data setup
  • elm/diskselector: trigger sizing eval during theme set only if finalized
  • elm/entry: use edje functions directly for interacting with edje objects
  • elm/gengrid: handle cache item deletion without errors
  • elm/gengrid: more null checks for setting mirrored state during construction
  • elm/gengrid: handle focus events when no previous focus item was set
  • elm/hovers: don't trigger more errors when setting null hover parent
  • elm: fix value of datadir when running in tree
  • elm/map: ignore zoom events during construction which cannot be handled
  • elm/slider: avoid emitting double events when range slider value changes
  • elm/slider: check for interval/range state before using that functionality
  • efl_ui/button: check icon swallow existence before getting its content
  • ecore-evas: check for internal evas presence before using it during free
  • ecore-x: protect ecore_x_shutdown from creating a negative init count
  • efl/io_model: check for parent object existence before removing wref
  • eldbus: don't print warnings for user-canceled calls
  • efl_ui/check: check icon swallow existence before getting its content
  • efl_ui/image: check image object existence before using it in sizing
  • efl_ui/layout: do not trigger sizing eval on hint change if object is dead
  • efl_ui/layout: do not trigger sizing eval on subobj delete if layout is dead
  • efl_ui/layout: only freeze internal layout during delete if it exists
  • efl_ui/progressbar: check for part existence before using parts
  • efl_ui/video: do not set 0x0 aspect hint
  • efl_ui/widget: skip updating access info during parent_set(NULL) if dead
  • elm/fileselector: return early in theme_apply during construction
  • elm/popup: remove del callback for internal table object during destruction
  • elm/code: check for cursor layout existence before emitting signals to it
  • elm/gengrid: trigger unrealize event after unsetting unrealized flag
  • elm/gen*: only call focus_object_setup_order_non_recursive if realized
  • elm/genlist: unify all creation of calc jobs, skip if genlist is dead
  • elm/genlist: trigger unrealize event after unsetting unrealized flag
  • elm/genlist: handle cache item deletion without errors
  • elm/genlist: handle genlist finding of nearest visible item when not realized
  • elm/index: create event_rect[0] earlier in construction
  • elm/interface_scrollable: return immediately from setting region if no content
  • elm/list: return early from min_limit_cb if list object is dead
  • elm/map: move setting initial zoom to later in construction
  • elm/scroller: return immediately from updating focused scroll region without content
  • elm_widget_item_static_focus: check for adapter existence in unrealize cb
  • emotion: don't update crop clipper geometry if crop clipper doesn't exist
  • ecore-imf/xim: only call ecore_x_shutdown if init was previously called
  • elm/gengrid: handle gengrid finding of nearest visible item when not realized
  • elm/fileselector_button: null fileselector model pointer on delete
  • gl_generic: directly copy existing image when changing orientation
  • theme: fix fileselector search button layout
  • efl sel manager - flush wl conenction in cnp to avoid hangs…
  • ecore_x - restore move event skipper that was removed long ago
  • efl_ui_textpath: fix a center align but that doesn't happen at text_set().
  • evas vector: set proper parents of clone objects.
  • evas svg: fix missing node opacity attribute.
  • elm - cursor - clear cursor job late to avoid crash
  • edje - double make sure edje messages are zero'd due to a segv i saw
  • ecore: also error when trying to add an event handler for a type 0 event
  • edje: fix reapplying markup text on file/group change
  • elm_actionslider: fix internal state when programmatically changing value
  • elm/scrollable: avoid unnecessary edje recalcs
  • evas/box: avoid triggering smart_move callback
  • ecore: avoid breaking next main loop start if quit occurs outside of loop
  • evas: fix type checking of Evas pointers in legacy functions
  • evas/map: permit evas_map_free(NULL)
  • ecore wl2 - fall back to shm if dmabuf fails in buf init
  • ecore_evas buffer: fix a deadlock issue.
  • efl_ui_widget: add safety checks to verify parents aren't being added as children
  • [elm] Add missing sizing eval hook at radio
  • [elm] Add missing sizing eval hook at check
  • elm/glview: fix glview to (again) return null if context creation fails
  • elm_test/plug: fix error handling
  • elm/ctxpopup: check list existence before trying to delete list items
  • efl_ui/popup: implement efl.file.unload for popup backwall part
  • efl_ui/popup: unset callbacks on win object when parent is removed
  • elm/config: monitor MODIFIED events on config files
  • elm/config: fix config usage with EFL_RUN_IN_TREE set
  • edje/calc: clamp part calc size to 0
  • efl_ui: always set restricted_min size hints internally (T8059)
  • evas events - fix segv if pointer data is freed by cb
  • efl_ui/flow.box: fix item calc with mixed weights
  • elm toolbar - fix packing options at start to avoid visual layout bugs
  • elm toolbar - fix toolbar item separators and refactor aling/fill of item
  • evas - gl_drm - delete old surfaces before creating new ones
  • efl_ui_textpath: clear up path data when it's destructed.
  • evas - png loader - fix leake in error case of pixels (CID1403027)
  • elm - dnd - fix drop target del to not nuke handler all the time
  • elm hoversel - avoid crash when items modified while popping down
  • evas svg: fix svg spec compatibility.
  • elm/hoversel: avoid calling api functions on null hoversel objects
  • edje signal matches/patterns - handle re/alloc errors and missing ptrs
  • edje - handle errors and eina file handles and vpath properly
  • elm theme - handle error cases and eina file handles properly
  • evas - font rendering - dont crash if we have color fonts and gl and sw
  • eina file refs in edje/evas - audit them and plug holes where refs stay
  • edje - signal callback matches/patterns try fix number 2
  • emotion - webcam fix deletion of webcam still left in webcam list
  • efl/io: fix race condition with child model deletion
  • eio/poll: avoid ever dereferencing the backend's parent in a thread
  • edje signal - let's not crash if something odd happens
  • edje signal matches - try number 3 to try plug all the holes
  • scalecache - handle possible use after free with sci still in list
  • evas events: fix corrupted mouse events behavior on mapped object.
  • evas -gl engines - buffer age - bring back fix for changing buffer age
  • eio - don't call cb's after a cancel
  • elm sel mgr - remove event handlers when no drop targets are left

Download

LINK SHA256
http://download.enlightenment.org/rel/libs/efl/efl-1.23.0-alpha1.tar.xz 107b6e81fa111d286f6f8fa958691fa5e6c76ac6ef3533db294a48962b3673e4

Rage Video and Media Player 0.3.1 Release

  • 2019-08-24 - by Raster

This is a new release of Rage 0.3.1 with bug fixes of course and almost 2 years of work.

Download

Enlightenment DR 0.23.0 Release

  • 2019-08-24 - by Carsten Haitzler

Highlights:

  • New padded screenshot option
  • Meson build now is the build system
  • Music Control now supports rage mpris dbus protocol
  • Add Bluez5 support with totally new and redone module and gadget
  • Add dpms option to turn it off or on
  • Alt-tab window switcher allows moving of windows while alt-tabbing
  • Lots of bug fixes, compile warning fixes etc.
  • Massive improvements to Wayland support
Download
LINK SHA256
Enlightenment DR 0.23.0 XZ b8c5d040875576d3d3ad8572644f92a65e21291bcee6b0d62f74fbfd482afdf8
Building and Dependencies
  1. xcb
  2. xcb-shape
  3. xcb-keysyms
  4. libpam (Linux only)

Highly recommended to ensure proper functionality (though you can live without these):

  1. connman (For network configuration support)
  2. bluez5 (For bluetooth configuration and control)
  3. bc (For the evrything module calculator mode)
  4. pulseaudio (For proper audio device control and redirection)
  5. acpid (For systems with ACPI for lid events, AC/Battery plug in/out etc.)
  6. packagekit (For the built in system updates monitoring and updater)
  7. udisks2 (For removable storage mounting/unmounting)
  8. gdb (If you want automatic backtraces on a crash in ~/.e-crashdump.txt - don't forget to build EFL and E with gdb debugging to make this useful)

Note: Enlightenment 0.23.0 depends on EFL v1.22.3 or newer.

EFL 1.22.3 release

  • 2019-08-23 - by Mike Blumenkrantz
Fixes:
  • evas_object_textblock: Fix binary search fail.
  • evas/image: fix broken auto_fill mechanism when manually changing fill
  • elm_test: fix some bugs in elm_image tests
  • benchmarks: Fix copy-paste error (CID1401052)
  • evas/render: fix proxy clipping when source_clip is disabled
  • elm_color_class: use legacy event for genlist selection
  • efl_ui_focus_manager_sub: handle manager change when tree is set to unfocusable
  • edje/calc: correctly handle swallow/group objects as clippers for state clips
  • gl_generic: handle image orientation setting when texture has not been created
  • ecore/timer: fix handling of timer freeze during construction
  • edje/load: (more) correctly handle part updates after changing edje group
  • efl_canvas_layout: permit part_type_get on invalid parts
  • eina/prefix: ignore magic files when running in tree
  • efl_ui_focus_manager/calc: handle redirect setting if no previous redirect set
  • elm/layout: do not trigger sizing eval on subobj deletion if no resize_obj set
  • elm/layout: do not trigger sizing eval at end of canvas_group_add
  • elm/colorselector: return early from theme apply if object is not yet finalized
  • elm/diskselector: fix handling in theme data setup
  • elm/diskselector: trigger sizing eval during theme set only if finalized
  • elm/entry: use edje functions directly for interacting with edje objects
  • elm/gengrid: handle cache item deletion without errors
  • elm/gengrid: more null checks for setting mirrored state during construction
  • elm/gengrid: handle focus events when no previous focus item was set
  • elm/hovers: don't trigger more errors when setting null hover parent
  • elm: fix value of datadir when running in tree
  • elm/map: ignore zoom events during construction which cannot be handled
  • elm/slider: avoid emitting double events when range slider value changes
  • elm/slider: check for interval/range state before using that functionality
  • efl_ui/button: check icon swallow existence before getting its content
  • ecore-evas: check for internal evas presence before using it during free
  • ecore-x: protect ecore_x_shutdown from creating a negative init count
  • efl/io_model: check for parent object existence before removing wref
  • eldbus: don't print warnings for user-canceled calls
  • efl_ui/check: check icon swallow existence before getting its content
  • efl_ui/layout: do not trigger sizing eval on hint change if object is dead
  • efl_ui/layout: do not trigger sizing eval on subobj delete if layout is dead
  • efl_ui/layout: only freeze internal layout during delete if it exists
  • efl_ui/progressbar: check for part existence before using parts
  • efl_ui/video: do not set 0x0 aspect hint
  • efl_ui/widget: skip updating access info during parent_set(NULL) if dead
  • elm/fileselector: return early in theme_apply during construction
  • elm/popup: remove del callback for internal table object during destruction
  • elm/code: check for cursor layout existence before emitting signals to it
  • elm/gengrid: trigger unrealize event after unsetting unrealized flag
  • elm/gen*: only call focus_object_setup_order_non_recursive if realized
  • elm/genlist: unify all creation of calc jobs, skip if genlist is dead
  • elm/genlist: trigger unrealize event after unsetting unrealized flag
  • elm/genlist: handle cache item deletion without errors
  • elm/genlist: handle genlist finding of nearest visible item when not realized
  • elm/index: create event_rect[0] earlier in construction
  • elm/interface_scrollable: return immediately from setting region if no content
  • elm/list: return early from min_limit_cb if list object is dead
  • elm/map: move setting initial zoom to later in construction
  • elm/scroller: return immediately from updating focused scroll region without content
  • elm_widget_item_static_focus: check for adapter existence in unrealize cb
  • emotion: don't update crop clipper geometry if crop clipper doesn't exist
  • ecore-imf/xim: only call ecore_x_shutdown if init was previously called
  • efl sel manager - flush wl conenction in cnp to avoid hangs…
  • ecore_x - restore move event skipper that was removed long ago
  • elm - cursor - clear cursor job late to avoid crash
  • edje - double make sure edje messages are zero'd due to a segv i saw
  • ecore wl2 - fall back to shm if dmabuf fails in buf init
  • evas events - fix segv if pointer data is freed by cb
  • elm toolbar - fix packing options at start to avoid visual layout bugs
  • elm toolbar - fix toolbar item separators and refactor aling/fill of item
  • evas - gl_drm - delete old surfaces before creating new ones
  • elm - dnd - fix drop target del to not nuke handler all the time
  • elm hoversel - avoid crash when items modified while popping down
  • edje - handle errors and eina file handles and vpath properly
  • elm theme - handle error cases and eina file handles properly
  • evas - font rendering - dont crash if we have color fonts and gl and sw
  • eina file refs in edje/evas - audit them and plug holes where refs stay
  • edje signal matches/patterns - handle re/alloc errors and missing ptrs
  • edje - signal callback matches/patterns try fix number 2
  • emotion - webcam fix deletion of webcam still left in webcam list
Download:
LINK SHA256
efl-1.22.3.tar.xz 7e7a4199b1e90d400dab2491db6032f8e0b26bab65ec19c9f8a97a82394331c8

Arch Linux + Enlightenment for Raspberry Pi

  • 2019-07-29 - by Carsten Haitzler

 Arch Linux + Enlightenment for Raspberry Pi Setup Screen

This is a first cut at a pre-built Arch Linux disk image for the Raspberry Pi with Enlightenment, EFL, Terminology and Rage all installed from git (as AUR packages). It includes a setup tool to configure the system to your liking in basic ways. It sets up a repository for updates of the overlaid/added AUR packages used as well as regular Arch Linux ARM (alarm).

This should work on the Raspberry Pi 2 and 3. It will not work on the Raspberry Pi 4 as Arch Linux ARM still is missing full support at the base. It also will not work on the Raspberry Pi 1 or Zero as these are ARMv6 based. In future I imagine the Raspberry Pi 4 will work, but not at this point. It is a 32bit ARMv7 image, not 64bit (aarch64).

You can download the pre-made disk image here:

Arch Linux ARMv7 32bit for Raspberry Pi disk image XZ

To install this on a MicroSD card, simply plug one into some card reader you have and do the following, simply replacing /dev/sdX with the correct device for your MicroSD card. You will need at least a 4GB card for this to work, but larger cards will give you more room to install packages and user files later on.

xz -d ArchLinuxARM-Rpi-ARMv7-Enlightenment-Wayland.img.xz
dd if=ArchLinuxARM-Rpi-ARMv7-Enlightenment-Wayland.img of=/dev/sdX bs=4M status=progress conv=fdatasync oflag=sync

Once the above dd command complete, power down your Raspberry Pi, plug the card in, then power it up and wait for the desktop to come up. Double-click on the “Install & Setup” icon on the desktop to begin the setup process. Please forgive the roughness of this tool as it's a first-cut shell script to be replaced in future by a proper GUI tool.

Terminology 1.5.0 Release

  • 2019-07-20 - by Boris Faure
A society grows great when old men plant trees whose shade they know they shall never sit in.

After few months of work, Terminology 1.5.0 is out with a new theme, ability to auto-hide the mouse cursor, some improvements and quite some important bug fixes:

Additions
  • Handle emoji has double-width character, introduced in Unicode 9.0.
  • Add option Treat Emojis as double-width characters, on by default.
  • Hide mouse cursor when idle, with parameter to set idle time
  • Add papercolor theme
Improvements
  • Themes can now set background color through a color-class
  • Handle OSC-11 escape-code to report background color
  • Update Italian and French translations
Fixes
  • Fix initial window size hints
  • Fix focus issues
Download
LINK SHA256
Terminology 1.5.0 XZ de55e503b382bb7c42a7def04c5ef7bff01e3e1fb0b379a4591544899eab8a6c

Terminology v1.4.1

  • 2019-05-24 - by Boris Faure

A few weeks after having released Terminology v1.4.0, few issues were found and fixed in this new 1.4.1 version.

Fixes
  • Decode pasted string as UTF-8, fixing some characters being skipped
  • Fix theme to ensure default size is 80×24
  • Fix focus disappearing after going to Settings and back
Download
LINK SHA256
Terminology 1.4.1 XZ d7b8b35fa38cb6a8746435c44f3517c47324d4c8362b35878ec90c9254d9a956

EFL 1.22.2 release

  • 2019-05-01 - by Mike Blumenkrantz
Fixes:
  • ecore-drm2: Make atomic property values support uint64_t
  • elm_atspi_bridget: Fix resource leak (CID1399424)
  • elput: Remove useless call to eldbus_message_unref
  • efl_core_command_line: Fix resource leak (CID1399105)
  • ecore-evas-x: Fix double free (CID1382851)
  • elm_theme: Check the ref count to delete or unref.
  • elc_hoversel: Fix crash when no sd->last_location
  • ecore drm2 - fix timeout in case case called from thread
Download:
LINK SHA256
efl-1.22.2.tar.xz 1699891f825911622de0aa77fe1140eff7335aba619d2352485e54dcff6b1cd0

EFL 1.22.1 release

  • 2019-04-17 - by Mike Blumenkrantz

Our first update on the 1.22 release series.

Fixes:
  • remove vpath test for user dir the test was broken and fixing is insane (T7728)
  • tests - fix check header to always include eina due to windows
  • evas - fix crash/junk pixel content but with tiled rotate at 270 + neon
  • tests - remove one of the eina strtod tests as libc is failing
  • ecore_imf: do not loop forever on shutdown when there is no more a display
  • efl_ui_list: fix to delete sub objects in efl_object_invalidate
  • efl_ui_widget: Fix disabled set calling without meaning. (T7799)
Download:
LINK SHA256
efl-1.22.1.tar.xz 20d3e5e945d54ae46ec916c7341b5dec24f904b6c0123b4d3ecb8cd8d596ae12

Add News Article

How do you add a new news article? Simple - go to:

http://www.enlightenment.org/news/news-article-name

Where news-article-name simply is the name of your article. Make it unique or if you are lazy use this link:

http://www.enlightenment.org/news/2019-11-20-2107520616

Where the page name uses current date plus a random number.