A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.
  • v2.14.0

    Locked
    1
    0 Votes
    1 Posts
    2k Views
    MichMichM
    https://github.com/MichMich/MagicMirror/releases/tag/v2.14.0 [2.14.0] - 2021-01-01 Special thanks to the following contributors: @Alvinger, @AndyPoms, @ashishtank, @bluemanos, @flopp999, @jakemulley, @jakobsarwary1, @marvai-vgtu, @mirontoli, @rejas, @sdetweil, @Snille & @Sub028. ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install. Added Added new log level “debug” to the logger. Added new parameter “useKmh” to weather module for displaying wind speed as kmh. Chuvash translation. Added Weatherbit as a provider to Weather module. Added SMHI as a provider to Weather module. Added Hindi & Gujarati translation. Added optional support for DEGREE position in Feels like translation. Added support for variables in nunjucks templates for translate filter. Added Chuvash translation. Calendar: new options “limitDays” and “coloredEvents”. Added new option “limitDays” - limit the number of discreet days displayed. Added new option “customEvents” - use custom symbol/color based on keyword in event title. Added GitHub workflows for automated testing and changelog enforcement. Updated Merging .gitignore in the config-folder with the .gitignore in the root-folder. Weather module - forecast now show TODAY and TOMORROW instead of weekday, to make it easier to understand. Update dependencies to latest versions. Update dependencies eslint, feedme, simple-git and socket.io to latest versions. Update lithuanian translation. Update config sample. Highlight required version mismatch. No select Text for TouchScreen use. Corrected logic for timeFormat “relative” and “absolute”. Added missing function call in module.show() Translator variables can have falsy values (e.g. empty string) Fix issue with weather module with DEGREE label in FEELS like Deleted Removed Travis CI intergration. Fixed JSON Parse translation files with comments crashing UI. (#2149) Calendar parsing where RRULE bug returns wrong date, add Windows timezone name support. (#2145, #2151) Wrong node-ical version installed (package.json) requested version. (#2153) Fix calendar fetcher subsequent timing. (#2160) Rename Greek translation to correct ISO 639-1 alpha-2 code (gr > el). (#2155) Add a space after icons of sunrise and sunset. (#2169) Fix calendar when no DTEND record found in event, startDate overlay when endDate set. (#2177) Fix windspeed convertion error in ukmetoffice weather provider. (#2189) Fix console.debug not having timestamps. (#2199) Fix calendar full day event east of UTC start time. (#2200) Fix non-fullday recurring rule processing. (#2216) Catch errors when parsing calendar data with ical. (#2022) Fix Default Alert Module does not hide black overlay when alert is dismissed manually. (#2228) Weather module - Always displays night icons when local is other then English. (#2221) Update Node-ical 0.12.4 , fix invalid RRULE format in cal entries Fix package.json for optional electron dependency (2378) Update node-ical version again, 0.12.5, change RRULE fix (#2371, #2379) Remove undefined objects from modules array (#2382) Update node-ical version again, 0.12.7, change RRULE fix (#2371, #2379), node-ical now throws error (which we catch) Update simple-git version to 2.31 unhandled promise rejection (#2383)
  • 5 Votes
    71 Posts
    71k Views
    J
    I just donated as well. Hopefully, others are donating without posting, and continue to donate! Thanks to MichMich for MagicMirror, and thanks to the community for all the support, modules, and other contributions. I was amazed when I found MagicMirror and it met my needs exactly.
  • heads up.. develop branch has a big jump to electron 8.5

    1
    0 Votes
    1 Posts
    408 Views
    S
    the next release will upgrade electron and a bunch of other components, and the staging is starting now. so, any pulls of the develop branch will get the next electron update…
  • V2.13.0

    Locked
    1
    0 Votes
    1 Posts
    1k Views
    MichMichM
    [2.13.0] - 2020-10-01 https://github.com/MichMich/MagicMirror/releases/tag/v2.13.0 Special thanks to the following contributors: @bryanzzhu, @bugsounet, @chamakura, @cjbrunner, @easyas314, @larryare, @oemel09, @rejas, @sdetweil & @sthuber90. ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install. Added --dry-run option adde in fetch call within updatenotification node_helper. This is to prevent MagicMirror from consuming any fetch result. Causes conflict with MMPM when attempting to check for updates to MagicMirror and/or MagicMirror modules. Test coverage with Istanbul, run it with npm run test:coverage. Add lithuanian language. Added support in weatherforecast for OpenWeather onecall API. Added config option to calendar-icons for recurring- and fullday-events. Added current, hourly (max 48), and daily (max 7) weather forecasts to weather module via OpenWeatherMap One Call API. Added eslint-plugin for jsdoc comments. Added new configDeepMerge option for module developers. Updated Change incorrect weather.js default properties. Cleaned up newsfeed module. Cleaned up jsdoc comments. Cleaned up clock tests. Move lodash into devDependencies, update other dependencies. Switch from ical to node-ical library. Fixed Fix backward compatibility issues for Safari < 11. Fix the use of “maxNumberOfDays” in the module “weatherforecast depending on the endpoint (forecast/daily or forecast)”. #2018 Fix calendar display. Account for current timezone. #2068 Fix logLevel being set before loading config. Fix incorrect namespace links in svg clockfaces. #2072 Fix weather/providers/weathergov for API guidelines. #2045 Fix “undefined” in weather modules header. #1985 Fix #2110, #2111, #2118: Recurring full day events should not use timezone adjustment. Just compare month/day.
  • V2.12.0

    Locked
    1
    10 Votes
    1 Posts
    2k Views
    MichMichM
    [2.12.0] - 2020-07-01 https://github.com/MichMich/MagicMirror/releases/tag/v2.12.0 Special thanks to the following contributors: @AndreKoepke, @andrezibaia, @bryanzzhu, @chamakura, @DarthBrento, @Ekristoffe, @khassel, @Legion2, @ndom91, @radokristof, @rejas, @XBCreepinJesus & @ZoneMR. ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install. Added Added option to config the level of logging. Added prettier for an even cleaner codebase. Hide Sunrise/Sunset in Weather module. Hide Sunrise/Sunset in Current Weather module. Added Met Office DataHub (UK) provider. Updated Cleaned up alert module code. Cleaned up check_config code. Replaced grunt-based linters with their non-grunt equivalents. Switch to most of the eslint:recommended rules and fix warnings. Replaced insecure links with https ones. Cleaned up all “no-undef” warnings from eslint. Added location title wrapping for calendar module. Updated the BG translation. Deleted Removed truetype (ttf) fonts. Fixed The broken modules due to Socket.io change from last release. #1973 Add backward compatibility for old module code in socketclient.js. #1973 Support multiple instances of calendar module with different config. #1109 Fix the use of “maxNumberOfDays” in the module “weatherforecast”. #2018 Throw error when check_config fails. #1928 Bug fix related to ‘maxEntries’ not displaying Calendar events. #2050 Updated ical library to latest version. #1926
  • Dedicated documentation site.

    6
    9 Votes
    6 Posts
    3k Views
    MichMichM
    It’s vuepress. (https://vuepress.vuejs.org), it converts .md files to a static website. The sourcecode is on GitHub. Whenever a change is pushed tot the repository, my webserver pulls the update and generates the new static files.
  • V2.11.0

    Locked
    1
    6 Votes
    1 Posts
    3k Views
    MichMichM
    [2.11.0] - 2020-04-01 https://github.com/MichMich/MagicMirror/releases/tag/v2.11.0 🚨 READ THIS BEFORE UPDATING 🚨 In the past years the project has grown a lot. This came with a huge downside: poor maintainability. If I let the project continue the way it was, it would eventually crash and burn. More important: I would completely lose the drive and interest to continue the project. Because of this the decision was made to simplify the core by removing all side features like automatic installers and support for exotic platforms. This release (2.11.0) is the first real release that will reflect (parts) of these changes. As a result of this, some things might break. So before you continue make sure to backup your installation. Your config, your modules or better yet: your full MagicMirror folder. In other words: update at your own risk. For more information regarding this major change, please check issue #1860. Deleted Remove installers. Remove externalized scripts. Remove jshint dependency, instead eslint checks your config file now Added Brazilian translation for “FEELS”. Ukrainian translation. Finnish translation for “PRECIP”, “UPDATE_INFO_MULTIPLE” and “UPDATE_INFO_SINGLE”. Added the ability to hide the temp label and weather icon in the currentweather module to allow showing only information such as wind and sunset/rise. The clock module now optionally displays sun and moon data, including rise/set times, remaining daylight, and percent of moon illumination. Added Hebrew translation. Add HTTPS support and update config.js.sample Run tests on long term support and latest stable version of nodejs Added the ability to configure a list of modules that shouldn’t be update checked. Run linters on git commits Added date functionality to compliments: display birthday wishes or celebrate an anniversary Fixed Force declaration of public ip address in config file (ISSUE #1852) Fixes run-start.sh: If running in docker-container, don’t check the environment, just start electron (ISSUE #1859) Fix calendar time offset for recurring events crossing Daylight Savings Time (ISSUE #1798) Fix regression in currentweather module causing ‘undefined’ to show up when config.hideTemp is false Fix FEELS translation for Croatian Fixed weather tests #1840 Fixed Socket.io can’t be used with Reverse Proxy in serveronly mode #1934 Fix update checking skipping 3rd party modules the first time Changed Remove documentation from core repository and link to new dedicated docs site: docs.magicmirror.builders. Updated config.js.sample: Corrected some grammar on config.js.sample comment section. Removed run-start.sh script and update start commands: To start using electron, use npm run start. To start in server only mode, use npm run server. Remove redundant logging from modules. Timestamp in log output now also contains the date Turkish translation. Option to configure the size of the currentweather module.
  • V2.10.0

    Locked
    2
    0 Votes
    2 Posts
    3k Views
    S
    @MichMich please use the new update script. Not just pull, see the new update instructions see here https://forum.magicmirror.builders/topic/10859/new-update-upgrade-script-ready-for-testing official version has a bug, testing fix, hopefully hotifx
  • V2.9.0

    Locked
    1
    3 Votes
    1 Posts
    3k Views
    MichMichM
    https://github.com/MichMich/MagicMirror/releases/tag/v2.9.0 :heart_suit: Donate: Enjoying MagicMirror²? Please consider a donation! With your help we can continue to improve the MagicMirror² core. [2.9.0] - 2019-10-01 :information: Note: This update uses new dependencies. Please update using the following command: git pull && npm install. If you are having issues running Electron, make sure your Raspbian is up to date. Added Spanish translation for “PRECIP”. Adding a Malay (Malaysian) translation for MagicMirror². Add test check URLs of vendors 200 and 404 HTTP CODE. Add tests for new weather module and helper to stub ajax requests. Updated Updatenotification module: Display update notification for a limited (configurable) time. Enabled e2e/vendor_spec.js tests. The css/custom.css will be rename after the next release. We’ve add into run-start.sh a instruction by GIT to ignore with --skip-worktree and rm --cached. #1540 Disable sending of notification CLOCK_SECOND when displaySeconds is false. Fixed Updatenotification module: Properly handle race conditions, prevent crash. Send NEWS_FEED notification also for the first news messages which are shown. Fixed issue where weather module would not refresh data after a network or API outage. #1722 Fixed weatherforecast module not displaying rain amount on fallback endpoint. Notifications CLOCK_SECOND & CLOCK_MINUTE being from startup instead of matched against the clock and avoid drifting.
  • V2.8.0

    Locked
    1
    3 Votes
    1 Posts
    12k Views
    MichMichM
    https://github.com/MichMich/MagicMirror/releases/tag/v2.8.0 ❤️ Donate: Enjoying MagicMirror²? Please consider a donation! With your help we can continue to improve the MagicMirror² core. [2.8.0] - 2019-07-01 ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install. If you are having issues running Electron, make sure your Raspbian is up to date. Added Option to show event location in calendar Finnish translation for “Feels” and “Weeks” Russian translation for “Feels” Calendar module: added nextDaysRelative config option Add broadcastPastEvents config option for calendars to include events from the past maximumNumberOfDays in event broadcasts Added feature to broadcast news feed items NEWS_FEED and updated news items NEWS_FEED_UPDATED in default newsfeed module (when news is updated) with documented default and config.js options in README.md Added notifications to default clock module broadcasting CLOCK_SECOND and CLOCK_MINUTE for the respective time elapsed. Added UK Met Office Datapoint feed as a provider in the default weather module. Added new provider class Added suncalc.js dependency to calculate sun times (not provided in UK Met Office feed) Added “tempUnits” and “windUnits” to allow, for example, temp in metric (i.e. celsius) and wind in imperial (i.e. mph). These will override “units” if specified, otherwise the “units” value will be used. Use Feels Like temp from feed if present Optionally display probability of precipitation (PoP) in current weather (UK Met Office data) Automatically try to fix eslint errors by passing --fix option to it Added sunrise and sunset times to weathergov weather provider #1705 Added “useLocationAsHeader” to display “location” in config.js as header when location name is not returned Added to newsfeed.js: in order to design the news article better with css, three more class-names were introduced: newsfeed-desc, newsfeed-desc, newsfeed-desc Updated English translation for “Feels” to “Feels like” Fixed the example calender url in config.js.sample Update ical.js to solve various calendar issues. Update weather city list url #1676 Only update clock once per minute when seconds aren’t shown Fixed Fixed uncaught exception, race condition on module update Fixed issue #1696, some ical files start date to not parse to date type Allowance HTML5 autoplay-policy (policy is changed from Chrome 66 updates) Handle SIGTERM messages Fixes sliceMultiDayEvents so it respects maximumNumberOfDays Minor types in default NewsFeed README.md Fix typos and small syntax errors, cleanup dependencies, remove multiple-empty-lines, add semi-rule Fixed issues with calendar not displaying one-time changes to repeating events Updated the fetchedLocationName variable in currentweather.js so that city shows up in the header Updated installer give non-pi2+ users (pi0, odroid, jetson nano, mac, windows, …) option to continue install use current username vs hardcoded ‘pi’ to support non-pi install check for npm installed. node install doesn’t do npm anymore check for mac as part of PM2 install, add install option string update pm2 config with current username instead of hard coded ‘pi’ check for screen saver config, “/etc/xdg/lxsession”, bypass if not setup
  • V2.7.0

    Locked
    1
    8 Votes
    1 Posts
    12k Views
    MichMichM
    MagicMirror² version 2.7.0 was just released: https://github.com/MichMich/MagicMirror/releases/tag/v2.7.0 ❤️ Donate: Enjoying MagicMirror²? Please consider a donation! With your help we can continue to improve the MagicMirror² core. [2.7.0] - 2019-04-01 ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install. If you are having issues running Electron, make sure your Raspbian is up to date. Added Italian translation for “Feels” Basic Klingon (tlhIngan Hol) translations Disabled the screensaver on raspbian with installation script Added option to truncate the number of vertical lines a calendar item can span if wrapEvents is enabled. Danish translation for “Feels” and “Weeks” Added option to split multiple day events in calendar to separate numbered events Slovakian translation Alerts now can contain Font Awesome icons Notifications display time can be set in request Newsfeed: added support for ARTICLE_INFO_REQUEST notification Add name config option for calendars to be sent along with event broadcasts Updated Bumped the Electron dependency to v3.0.13 to support the most recent Raspbian. #1500 Updated modernizr code in alert module, fixed a small typo there too More verbose error message on console if the config is malformed Updated installer script to install Node.js version 10.x Fixed Fixed temperature displays in currentweather and weatherforecast modules #1503, #1511. Fixed unhandled error on bad git data in updatenotification module #1285. Weather forecast now works with openweathermap in new weather module. Daily data are displayed, see issue #1504. Fixed analogue clock border display issue where non-black backgrounds used (previous fix for issue 611) Fixed compatibility issues caused when modules request different versions of Font Awesome, see issue #1522. MagicMirror now uses Font Awesome 5 with v4 shims included for backwards compatibility. Installation script problems with raspbian Calendar: only show repeating count if the event is actually repeating #1534 Calendar: Fix exdate handling when multiple values are specified (comma separated) Calendar: Fix relative date handling for fulldate events, calculate difference always from start of day #1572 Fix null dereference in moduleNeedsUpdate when the module isn’t visible Calendar: Fixed event end times by setting default calendarEndTime to “LT” (Local time format). [#1479] Calendar: Fixed missing calendar fetchers after server process restarts #1589 Notification: fixed background color (was white text on white background) Use getHeader instead of data.header when creating the DOM so overwriting the function also propagates into it Fix documentation of useKMPHwind option in currentweather New weather module Fixed weather forecast table display #1499. Dimmed loading indicator for weather forecast. Implemented config option decimalSymbol #1499. Aligned indoor values in current weather vertical #1499. Added humidity support to nunjuck unit filter. Do not display degree symbol for temperature in Kelvin #1503. Weather forecast now works with openweathermap for both, /forecast and /forecast/daily, in new weather module. If you use the /forecast-weatherEndpoint, the hourly data are converted to daily data, see issues #1504, #1513. Added fade, fadePoint and maxNumberOfDays properties to the forecast mode #1516 Fixed Loading string and decimalSymbol string replace #1538 Show Snow amounts in new weather module #1545 Added weather.gov as a new weather provider for US locations
  • V2.6.0

    Locked
    1
    11 Votes
    1 Posts
    6k Views
    MichMichM
    MagicMirror² version 2.6.0 was just released: https://github.com/MichMich/MagicMirror/releases/tag/v2.6.0 A huge, huge, huge thanks to user @fewieden for all his hard work on the new experimental weather module! [2.6.0] - 2019-01-01 ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install. If you are having issues updating, make sure you are running the latest version of Node. ✨ Experimental ✨ New default module weather. This module will eventually replace the current currentweather and weatherforecast modules. The new module is still pretty experimental, but it’s included so you can give it a try and help us improve this module. Please give us you feedback using this forum post. A huge, huge, huge thanks to user @fewieden for all his hard work on the new weather module! Added Possibility to add classes to the cell of symbol, title and time of the events of calendar. Font-awesome 5, still has 4 for backwards compatibility. Missing showEnd in calendar documentation Screenshot for the new feed module Screenshot for the compliments module Screenshot for the clock module Screenshot for the current weather Screenshot for the weather forecast module Portuguese translation for “Feels” Croatian translation Fading for dateheaders timeFormat in Calendar #1464 Documentation for the existing scale option in the Weather Forecast module. Fixed Allow to parse recurring calendar events where the start date is before 1900 Fixed Polish translation for Single Update Info Ignore entries with unparseable details in the calendar module Bug showing FullDayEvents one day too long in calendar fixed Bug in newsfeed when removeStartTags is used on the description #1478 Updated The default calendar setting showEnd is changed to false. Changed The Weather Forecast module by default displays the ° symbol after every numeric value to be consistent with the Current Weather module.
  • V2.5.0

    Locked
    1
    7 Votes
    1 Posts
    10k Views
    MichMichM
    MagicMirror² V2.5.0 was just released. https://github.com/MichMich/MagicMirror/releases/tag/v2.5.0 [2.5.0] - 2018-10-01 Added Support multi-line compliments Simplified Chinese translation for “Feels” Polish translate for “Feels” French translate for “Feels” Translations for newsfeed module Support for toggling news article in fullscreen Hungarian translation for “Feels” and “Week” Spanish translation for “Feels” Add classes instead of inline style to the message from the module Alert Support for events having a duration instead of an end Support for showing end of events through config parameters showEnd and dateEndFormat Fixed Fixed gzip encoded calendar loading issue #1400. Mixup between german and spanish translation for newsfeed. Fixed close dates to be absolute, if no configured in the config.js - module Calendar Fixed the UpdateNotification module message about new commits in the repository, so they can be correctly localized in singular and plural form. Fix for weatherforecast rainfall rounding #1374 Fix calendar parsing issue for Midori on RasperryPi Zero w, related to issue #694. Fix weather city ID link in sample config Fixed issue with clientonly not updating with IP address and port provided on command line. Updated Updated Simplified Chinese translation Swedish translations Hungarian translations for the updatenotification module Updated Norsk bokmål translation Updated Norsk nynorsk translation Consider multi days event as full day events
  • V2.4.0 Update

    Locked
    2
    4 Votes
    2 Posts
    10k Views
    MichMichM
    https://github.com/MichMich/MagicMirror/releases/tag/v2.4.1 [2.4.1] - 2018-07-04 Fixed Fix weather parsing issue #1332.2.4.1
  • MagicMirror in Slack ... we'll see you there.

    14
    0 Votes
    14 Posts
    12k Views
    Krato5K
    honestly we are planning for another way after the administartion agree , plz follow this toppic ! https://forum.magicmirror.builders/topic/6920/discordapp-gitter-for-non-slack-users
  • V2.3.0 Updates

    Locked
    2
    2 Votes
    2 Posts
    5k Views
    MichMichM
    [2.3.1] - 2018-04-01 https://github.com/MichMich/MagicMirror/releases/tag/v2.3.1 Fixed Downgrade electron to 1.4.15 to solve the black screen issue.#1243
  • Looking for Beta-testers!

    56
    0 Votes
    56 Posts
    61k Views
    justjim1220J
    @strawberry-3.141 I used git bash… git clone https://github.com/MichMich/MagicMirror.git
  • V2.2.X Updates

    Locked
    3
    2 Votes
    3 Posts
    8k Views
    MichMichM
    https://github.com/MichMich/MagicMirror/tree/v2.2.2 [2.2.2] - 2018-01-02 Added Add missing package-lock.json.
  • V2.1.X Updates

    Locked
    4
    11 Votes
    4 Posts
    16k Views
    MichMichM
    On this perfect day where Max Verstappen won the Malaysian Grand Prix F1 Race, we can welcome the next release of the MagicMirror framework. Version 2.1.3. A lot of love for everyone that contributed! https://github.com/MichMich/MagicMirror/releases/tag/v.2.1.3 [2.1.3] - 2017-10-01 Note: This update uses new dependencies. Please update using the following command: git pull && npm install Changed Remove Roboto fonts files inside fonts and these are installed by npm install command. Added Add clientonly script to start only the electron client for a remote server. Add symbol and color properties of event when CALENDAR_EVENTS notification is broadcasted from default/calendar module. Add .vscode/ folder to .gitignore to keep custom Visual Studio Code config out of git. Add unit test the capitalizeFirstLetter function of newfeed module. Add new unit tests for function shorten in calendar module. Add new unit tests for function getLocaleSpecification in calendar module. Add unit test for js/class.js. Add unit tests for function roundValue in currentweather module. Add test e2e showWeek feature in spanish language. Add warning Log when is used old authentication method in the calendar module. Add test e2e for helloworld module with default config text. Add ability for currentweather module to display indoor humidity via INDOOR_HUMIDITY notification. Add Welsh (Cymraeg) translation. Add Slack badge to Readme. Updated Changed ‘default.js’ - listen on all attached interfaces by default. Add execution of npm list after the test are ran in Travis CI. Change hooks for the vendors e2e tests. Add log when clientonly failed on starting. Add warning color when are using full ip whitelist. Set version of the express-ipfilter on 0.3.1. Fixed Fixed issue with incorrect allignment of analog clock when displayed in the center column of the MM. Fixed ipWhitelist behaviour to make empty whitelist ([]) allow any and all hosts access to the MM. Fixed issue with calendar module where ‘excludedEvents’ count towards ‘maximumEntries’. Fixed issue with calendar module where global configuration of maximumEntries was not overridden by calendar specific config (see module doc). Fixed issue where this.file(filename) returns a path with two hashes. Workaround for the WeatherForecast API limitation.
  • V2.0.X Updates

    Locked
    5
    0 Votes
    5 Posts
    6k Views
    MichMichM
    Wait no longer. The next update is here: v2.0.5 https://github.com/MichMich/MagicMirror/releases/tag/v2.0.5 [2.0.5] - 2016-09-20 Added Added ability to remove tags from the beginning or end of newsfeed items in ‘newsfeed.js’. Added ability to define “the day after tomorrow” for calendar events (Definition for German and Dutch already included). Added CII Badge (we are compliant with the CII Best Practices) Add support for doing http basic auth when loading calendars Add the abilty to turn off and on the date display in the Clock Module Fixed Fix typo in installer. Add message to unsupported Pi error to mention that Pi Zeros must use server only mode, as ARMv6 is unsupported. Closes #374. Fix API url for weather API. Updated Force fullscreen when kioskmode is active. Update the .github templates and information with more modern information. Update the Gruntfile with a more functional StyleLint implementation.